AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Enpal Pulse

mcp-nbialk-enpal-pulse · by nbialk

Enpal Pulse — The Smart Energy Companion. Turns a household's solar, battery, heat-pump, EV, grid and tariff data into one clear view. Next.js dashboard + Skybridge MCP server.

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add mcp-nbialk-enpal-pulse

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-nbialk-enpal-pulse)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Enpal Pulse? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

▶ Watch the demo video

Enpal Pulse brings a household's solar production, battery state, heat pump and EV load, grid flows, dynamic tariffs and contract terms together in one place. Built for the Enpal Smart Energy Companion challenge, it answers everyday energy questions in plain language and helps you decide when to use power.

It ships as two surfaces over the same data:

  • A Next.js dashboard for the unified energy view.
  • A Skybridge MCP server with interactive React views, so an LLM in ChatGPT

or Claude can reason over the same household data conversationally.

Demo

The unified energy view on the dashboard:

The same household data, reasoned over conversationally in Claude:

Try it

  • Dashboard: pulse.niklas.sh
  • MCP server URL: https://mcp.pulse.niklas.sh/mcp

Add the MCP server URL to any compatible client (ChatGPT, Claude, etc.), then ask things like "why was my bill higher in January?", "when should I charge my car today?", or "what's my energy flow looking like right now?".

To connect the MCP server:

  • ChatGPT — Settings → Connectors → add the URL above (developer mode /

custom connectors).

  • Claude — Settings → Connectors → Add custom connector → paste the URL.

How it works

One Postgres database holds the full household dataset. Both surfaces live in a single pnpm + Turborepo monorepo and share one packages/db package (Prisma schema + client), so the Next.js dashboard and the Skybridge MCP server never duplicate data logic.

flowchart LR
  User((Homeowner)) --> Dash[Next.js dashboard]
  User --> LLM[ChatGPT / Claude]
  subgraph Monorepo["Monorepo · pnpm + Turborepo"]
    Dash --> TRPC[tRPC routers]
    LLM --> MCP[MCP tools]
    TRPC --> DB["packages/db · Prisma"]
    MCP --> DB
  end
  DB --> PG[(Neon Postgres)]

The AI layer

The AI does not sit on top of a chatbot bolted to a database. Each MCP tool is a small, purpose-built function that pulls structured household data, runs the domain logic (bill decomposition, optimal-window search, energy-flow snapshot) and returns both a structured result and an interactive React view. That keeps the model grounded: it answers from real computed numbers rather than guessing, and the user sees the underlying view alongside the explanation. All tools are read-only, so the model can explore freely without side effects.

MCP Tools

Each tool renders an interactive React view alongside its structured result.

| Tool | View | Description | | --- | --- | --- | | daily-energy-flow | Daily energy flow | Live energy-flow snapshot for a household at a moment of the day: solar split into self-use, battery charging and export, plus grid import, battery discharge and SoC. | | explain-bill | Bill driver breakdown | Decomposes the euro difference between two months into drivers (energy cost, feed-in credit, base fee) and charts consumption by area (house, heat pump, EV). | | best-time-to-run | Recommended window | Best window today/tomorrow to run a flexible load (EV, washing machine, dishwasher, heat pump) — lowest cost on dynamic tariffs, most PV self-consumption on fixed. |

All tools are read-only (readOnlyHint: true, openWorldHint: false).

Data

A synthetic full-year 2025 dataset for four households (Familie Becker, Familie Schmidt, Familie Yilmaz, WG Sonnenallee) at 15-minute resolution, backed by Postgres via Prisma:

  • Households, tariffs & contracts — assets (PV, battery, heat pump, EV),

dynamic vs. standard tariffs, full contract terms.

  • Energy records — PV, house load, heat pump, EV, battery SoC, grid

import/export, and price per 15-min interval (~140k rows).

  • Dynamic prices — hourly spot prices for the year.
  • Monthly bills & insight events — pre-computed bills, self-sufficiency,

and detected anomalies/nudges.

Tech Stack

  • Monorepo: pnpm workspaces + Turborepo
  • Web: Next.js 16, tRPC, React Query, Tailwind, shadcn/ui
  • MCP: Skybridge (Vite + React views), @modelcontextprotocol/sdk
  • Data: Prisma 7 with the @prisma/adapter-pg driver adapter, Neon Postgres
  • Hosting: Web and MCP on Vercel, backed by Neon Postgres

Project Structure

├── apps/
│   ├── web/              # Next.js dashboard (tRPC + React Query)
│   │   └── src/
│   │       ├── app/      # App Router pages + API route
│   │       └── server/   # tRPC routers (households, energy, bills, prices, insights)
│   └── mcp/              # Skybridge MCP server
│       └── src/
│           ├── server.ts # Tool + view definitions
│           ├── db.ts     # Prisma client access
│           └── views/    # One React view per tool
├── packages/
│   └── db/               # Shared Prisma schema, client, and seed
├── turbo.json
└── pnpm-workspace.yaml

Getting Started

Prerequisites

  • Node.js 24+
  • pnpm 11+
  • A Postgres database (local via docker-compose.yml, or hosted)

Install

pnpm install

Configure

Copy the example env and set your database URL:

cp .env.example .env
# DATABASE_URL="postgresql://enpal:enpal@localhost:5439/enpal_track?schema=public"

Set up the database

docker compose up -d   # optional: local Postgres
pnpm db:push           # apply the schema
pnpm db:seed           # load the 2025 dataset

Run

pnpm dev

This starts both apps via Turborepo:

  • Web dashboard at http://localhost:3000
  • MCP server at http://localhost:3001/mcp (Skybridge DevTools at http://localhost:3001)

Scripts

| Command | Description | | --- | --- | | pnpm dev | Run web + MCP in dev mode | | pnpm build | Build all apps and packages | | pnpm lint | Lint all packages | | pnpm typecheck | Type-check all packages | | pnpm db:generate | Generate the Prisma client | | pnpm db:push | Push the Prisma schema to the database | | pnpm db:seed | Seed the database with the 2025 dataset | | pnpm db:studio | Open Prisma Studio |

Deployment

Both apps share a single Neon Postgres database:

  • Web (apps/web) — standard Next.js build on Vercel.
  • MCP (apps/mcp) — skybridge build, deployed to Vercel.

Resources

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.