mcpField
S
Stroomr Mcp

Stroomr Mcp

Local
github.com/nixman2Other0Updated 22w ago

About Stroomr Mcp

Stroomr Mcp provides European household energy data and timing advice for EV charging, heat pumps, and home batteries. It combines Nord Pool day-ahead prices with weather and solar forecasts in structured results for AI-assisted load shifting.

Key features

  1. 01Fetch European Nord Pool day-ahead prices
  2. 02Retrieve weather, sunshine, and rain forecasts
  3. 03Recommend use windows and periods to avoid
  4. 04Estimate savings and account for solar overlap
  5. 05Resolve locations to price areas

Use cases

  1. 01Schedule EV charging during lower-price hours
  2. 02Choose heat-pump hours using price and sunshine data
  3. 03Combine weather and prices for load-shifting plans
  4. 04Find cheaper electricity-use hours during the week

MCP support

The MCP server exposes five tools for prices, weather, location resolution, and timing advice for EVs, heat pumps, or batteries. It runs over stdio and makes read-only calls to Open-Meteo and the public Nord Pool day-ahead API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

StroomR MCP

Helps AI assistants answer “when should I use electricity?” in one call — with live Nord Pool prices, local solar forecasts, and ready-to-use load-shift advice.

Built by StroomR. Specialized for European day-ahead energy markets and home energy timing — not a general weather or finance API.


What your agent can do

JobWithout this serverWith StroomR MCP
EV charging adviceAgent guesses or asks user to check multiple appsOne tool call → optimal window, savings estimate, hours to avoid
Heat pump / battery timingManual price lookup + weather checkCombined price + solar overlap in structured output
“Is tomorrow sunny?” + “Are prices low?”Two separate lookups, agent merges contextSingle combined snapshot for load-shifting decisions

Outcome, not plumbing: your agent completes energy-timing tasks with fewer steps, pre-merged context, and structured fields (recommendedWindows, avoidWindows, estimatedSavingsVsAvgEur) instead of raw API dumps.


Best use cases

  1. “When should I charge my EV tomorrow?” — cheapest consecutive window, estimated savings vs. average, evening peak to avoid.
  2. “Optimal times for my heat pump today” — price-ranked hours with solar overlap for self-consumption.
  3. “Will it be sunny tomorrow, and are electricity prices low?” — weather + Nord Pool snapshot for solar/load decisions.
  4. “What are the cheapest hours to use power this week?” — day-ahead slots for today and tomorrow.
  5. “How much sun will I get today?” — sun hours, sun windows, and rain periods for a given location.

Scope: Nord Pool day-ahead markets in Europe (NL, GER, DK1, SE3, etc.). Not for real-time trading, grid operator data, or non-European utilities.


Supported clients

Works with any MCP-compatible assistant, including:

  • Cursor (local stdio — config included in this repo)
  • Claude Desktop (add to claude_desktop_config.json)
  • Other MCP hosts that support stdio servers (ChatGPT desktop integrations, custom agents, etc.)

Requires Node.js 20+. Runs locally on your machine — no StroomR account required to use the MCP.


Auth & safety

RunsLocally via stdio (node dist/index.js)
CredentialsNone — no API keys, no StroomR login
NetworkRead-only outbound calls to Open-Meteo (weather) and Nord Pool public day-ahead API (prices)
WritesNone — does not control devices, meters, or your home
Data sentLocation (city or coordinates) and Nord Pool area — only what you pass in tool args or env config

Set a default location in env so the agent does not need to ask every time:

"env": {
  "STROOMR_CITY": "Amsterdam",
  "STROOMR_PRICE_AREA": "NL"
}

Examples

Example 1 — EV charging (primary use case)

User prompt:

When should I charge my EV tomorrow?

Agent action: get_load_shift_advice · { "device": "ev", "day": "tomorrow" }

Agent reply (from structured output):

Charge between 10:00–14:00 tomorrow. Estimated savings: €3.73 vs. average wholesale price for a 4 h session at 11 kW. Avoid 17:00–23:00 (evening peak). Overlaps with expected sunshine — good for solar self-consumption.


Example 2 — Heat pump today

User prompt:

Optimal times for heat pump today?

Agent action: get_load_shift_advice · { "device": "heat_pump", "day": "today" }

Agent reply:

Run intensive heating between 14:00–18:00 today (~€0.68 cheaper than average for 12 kWh). Avoid 19:00–23:00.


Example 3 — Weather + prices in one step

User prompt:

Is tomorrow good for cheap charging and solar?

Agent action: get_weather_and_prices · { "days": 2 }

Agent reply:

Tomorrow: ~15 h sunshine (07:00–21:00), day-ahead prices near zero mid-day. Strong day for shifting loads to midday.


Tools (5, purpose-built)

ToolAgent job
get_load_shift_adviceMain tool. Optimal + avoid windows for EV, heat pump, or battery; savings estimate; solar overlap
get_weather_and_pricesCombined snapshot when the agent needs both sun and price context
get_energy_pricesCheapest/expensive hours, current and tomorrow Nord Pool day-ahead slots
get_weather_forecastSun windows, rain periods, precipitation — when solar matters
resolve_locationValidate city/coordinates and resolve Nord Pool price area

Defaults for load-shift advice:

DevicedevicePowerDuration
EV chargerev11 kW4 h
Heat pumpheat_pump3 kW4 h
Home batterybattery5 kW2 h

Override with power_kw and duration_hours.


Install

From npm (after publish)
{
  "mcpServers": {
    "stroomr": {
      "command": "npx",
      "args": ["-y", "@nixman2/stroomr-mcp"],
      "env": {
        "STROOMR_CITY": "Amsterdam",
        "STROOMR_PRICE_AREA": "NL"
      }
    }
  }
}
From source
npm install
npm run build
Cursor (local dev)

.cursor/mcp.json:

{
  "mcpServers": {
    "stroomr": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "STROOMR_CITY": "Amsterdam",
        "STROOMR_PRICE_AREA": "NL",
        "STROOMR_OUTPUT_FORMAT": "structured"
      }
    }
  }
}

Restart Cursor after changing MCP config.

Claude Desktop
{
  "mcpServers": {
    "stroomr": {
      "command": "node",
      "args": ["/absolute/path/to/stroomr-mcp/dist/index.js"],
      "env": {
        "STROOMR_CITY": "Amsterdam",
        "STROOMR_PRICE_AREA": "NL"
      }
    }
  }
}

Configuration

VariableDescription
STROOMR_CITYDefault city (geocoded)
STROOMR_LAT / STROOMR_LONDefault coordinates
STROOMR_PRICE_AREANord Pool area (e.g. NL)
STROOMR_CURRENCYDefault EUR
STROOMR_TIMEZONETimezone override
STROOMR_OUTPUT_FORMATfriendly (default) or structured

Priority: tool arguments → env vars → clear error (no silent default city).

Structured responses include a stroomr branding block and fields optimised for agent parsing (recommendedWindows, cheapestSlot, summary_nl).


Verify

npm run smoke-test

About StroomR

This MCP is a free demo of the load-shifting logic in StroomR — energy management that automatically times EV charging, heat pumps, and batteries against dynamic tariffs and solar production.

Want it to run 24/7 without asking an assistant? Join the free pilot →


Data sources & disclaimer

  • Weather: Open-Meteo (CC BY 4.0)
  • Prices: Nord Pool Group day-ahead via community-documented public API (unofficial; may change)

Load-shift advice uses wholesale day-ahead prices. Retail bills include taxes, grid fees, and supplier markups — savings estimates are indicative, not guaranteed.

Supported Nord Pool areas: DK1, DK2, FI, NO1–NO5, SE1–SE4, EE, LT, LV, AT, BE, FR, GER, NL, PL, BG, TEL


Publish to MCP Registry

Prepared for the official MCP Registry quickstart:

StepStatus
1. mcpName in package.json✅ io.github.nixman2/stroomr-mcp
2. Publish to npm⏳ Run locally (requires npm login)
3. Install mcp-publisher✅
4. Create server.json✅ Validated
5. mcp-publisher login github—
6. mcp-publisher publish—

Step 2 — publish to npm:

npm adduser          # if not logged in
npm publish --access public

Steps 5–6 — publish registry metadata:

mcp-publisher login github
mcp-publisher publish

Verify listing:

curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.nixman2/stroomr-mcp"

Registry name: io.github.nixman2/stroomr-mcp · npm: @nixman2/stroomr-mcp


Submit to Cursor Directory

cursor.directory scans the repo root for Open Plugins components. This repo includes:

PathPurpose
mcp.jsonMCP server config (required for directory scan)
.cursor-plugin/plugin.jsonPlugin manifest
skills/stroomr-energy/SKILL.mdAgent skill for energy-timing questions

After pushing to GitHub, re-scan at Submit a Plugin → Auto (GitHub) with https://github.com/nixman2/stroomr-mcp.

Note: mcp.json uses npx @nixman2/stroomr-mcp — npm publish must succeed first. Local dev still uses .cursor/mcp.json.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.