Skip to main content
Glama
SofiaFlux

sens-mcp

by SofiaFlux

sens-mcp

An MCP (Model Context Protocol) server and developer starter kit for the SENS Energy Data API — the Polish electricity market data API (distribution operators, tariffs, and composite price calculations).

It solves the "cold start" problem for LLMs and AI agents (Claude Desktop, Cursor, LangChain, n8n, ...) talking to the API: the Polish energy market has its own vocabulary (OSD vs. sprzedawca, tariff groups G11/G12/G12w/...) that models don't know out of the box, and raw REST responses are too large and too easy to miscalculate against by hand.

sens-mcp provides:

  • Zero-shot discoverability — an MCP resource (sens://market/cheat-sheet) and discovery tools (resolve_operator, search_tariffs) that teach the model the market vocabulary in under ~400 tokens.

  • Actionable self-correction — tool errors return structured JSON with suggestions (did you mean G12w?) instead of raw HTTP failures, so an agent in a ReAct loop can repair its own next call.

  • Single source of truth calculations — all price/volume math happens on the SENS backend; the toolkit never re-derives totals client-side.

  • Non-blocking startup — the server boots instantly with an embedded fallback market schema; live tariff metadata refreshes in the background.

Quickstart

Run via uvx (recommended, no install step)

export SENS_API_KEY=sens_live_your_key_here
uvx sens-mcp

Or install with pip

pip install sens-mcp
export SENS_API_KEY=sens_live_your_key_here
python -m sens_mcp

Environment variables

Variable

Required

Default

Description

SENS_API_KEY

Yes

Your SENS API key. Sent as the X-API-KEY header.

SENS_BASE_URL

No

https://api.getsens.energy

Override for staging/self-hosted deployments.

Related MCP server: US ISO Grid MCP

Using it with an AI agent

Claude Desktop

Add to claude_desktop_config.json (see configs/claude_desktop_config.json):

{
  "mcpServers": {
    "sens-energy": {
      "command": "uvx",
      "args": ["sens-mcp"],
      "env": {
        "SENS_API_KEY": "sens_live_your_key_here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json (see configs/cursor_mcp.json) — same shape as above.

Tools exposed

Tool

Purpose

resolve_operator(query, region=None)

Fuzzy-resolve a city or company name (typo-tolerant) to the exact osd/sprzedawca strings the API expects.

search_tariffs(customer_type, zone_preference=None, operator=None)

Discover valid tariff codes for a customer profile (home / small business / industry).

get_prices(osd, taryfa, ...)

Fetch composite electricity prices and rate breakdown; pass annual_kwh for exact volume-weighted totals.

get_tariff_components(tariff_id)

Inspect a tariff's URE-approved fixed/variable rate components.

Resource: sens://market/cheat-sheet — a Markdown cheat sheet of Polish electricity market vocabulary (OSDs, tariff groups, price component structure).

Developer examples (no MCP required)

Standalone snippets that hit the SENS REST API directly:

API reference (essentials)

  • Base URL: https://api.getsens.energy

  • Auth: X-API-KEY: <your key> header (not Bearer, not a query param).

  • GET /api/v1/pricesosd, sprzedawca, taryfa, market, date, annual_kwh, region, since, page, size (max 1000).

  • GET /api/v1/tariffssince/If-Modified-Since for delta queries, page, size.

  • GET /api/v1/tariffs/components?tariff_id=... — component breakdown for a single tariff, also supports since.

Full Swagger/OpenAPI docs: https://api.getsens.energy/api/docs. Full developer documentation (quickstart, MCP integration guide, market vocabulary): docs.getsens.energy.

Development

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest

Tests mock all HTTP calls with respx — nothing in the default test suite hits the live API.

Live integration suite (opt-in)

tests/test_live_integration.py runs the real server as a subprocess over the real MCP stdio protocol against the real production SENS API, and checks byte-for-byte parity between MCP tool responses and raw httpx calls to the same endpoints. Excluded by default; run explicitly with a real key:

SENS_API_KEY=<a real key> pytest -m live tests/test_live_integration.py -v

License

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with structured access to the U.S. EIA Open Data API for energy data including power plants, operations, fuel prices, projections, and state CO2 emissions.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables real-time access to US electricity generation, fuel mix, and demand data through natural language queries.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to access and analyze Spanish electricity consumption data via the Datadis API, providing tools for supply management, consumption analysis, anomaly detection, and executive reporting.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables querying Tibber electricity prices, forecasts, consumption data, cheapest hours, and live Pulse measurements through natural language.
    7
    MIT

View all related MCP servers

Related MCP Connectors

  • Real-time electricity prices for AI agents. 40+ countries, 100+ zones. No auth required.

  • Verified Polish open data for AI agents: debt, budget, 460 MPs, votings, judiciary search, RAG.

  • European day-ahead electricity prices (43 zones), accuracy-published forecasts, carbon, optimize.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SofiaFlux/sens-toolkit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server