Skip to main content
Glama
Paszymaja

elicznik-mcp

by Paszymaja

elicznik-tauron

Unoffizieller CLI- und MCP-Server für das Tauron eLicznik-Portal (https://elicznik.tauron-dystrybucja.pl). Rufen Sie Energieverbrauch, Energieerzeugung und Zählerstände von der Kommandozeile ab oder stellen Sie sie KI-Agenten über das Model Context Protocol bereit.

Keine Verbindung zu Tauron. Verwendet dieselbe interne Web-API, die auch das Portal verwendet.

Funktionen

  • Login per Keycloak-Formular-POST (kein Browser nötig); Sitzungscookies werden auf der Festplatte zwischengespeichert und automatisch erneuert.

  • CLI (elicznik) zum Auflisten von Messstellen, Abrufen von Energiedaten und Erfassen von Zählerständen.

  • MCP-Server (elicznik-mcp, stdio), der dieselben Daten als Tools für MCP-Clients wie OpenCode oder Claude bereitstellt.

Verfügbare Daten:

Daten

Auflösung

Verbrauch / Erzeugung / Netto

hour, day, month, year

Tarifzone pro Stunde (zone)

hour

Kumulierte Zählerstände

day

Related MCP server: Enapter MCP Server

Voraussetzungen

Python 3.10+ und uv.

Einrichtung

uv sync --extra mcp
cp .env.example .env   # then fill in your credentials

.env:

ELICZNIK_USERNAME=your-login-or-email
ELICZNIK_PASSWORD=your-password
# Optional: pick a specific metering point if you have more than one
# ELICZNIK_SITE=5842033_61898031_5842033

Sitzungscookies werden in elicznik_session.json zwischengespeichert (von Git ignoriert), sodass Sie sich nur einmal anmelden müssen; der Client authentifiziert sich automatisch neu, wenn die Sitzung abläuft.

CLI

# List metering points
uv run elicznik meters

# Hourly consumption for a day (defaults: today, metric=consumption, resolution=hour)
uv run elicznik energy --metric consumption --from 2026-08-24 --to 2026-08-24

# Daily / monthly / yearly totals
uv run elicznik energy --metric consumption --resolution day   --from 2026-08-01 --to 2026-08-26
uv run elicznik energy --metric consumption --resolution month --from 2026-01-01 --to 2026-08-26
uv run elicznik energy --metric generation  --resolution year  --from 2026-01-01 --to 2026-08-26

# Output formats: table (default), csv, json
uv run elicznik energy --metric consumption --resolution day --from 2026-08-01 --to 2026-08-26 --format json

# Cumulative meter register readings (billing readings)
uv run elicznik readings --from 2026-08-01 --to 2026-08-26
uv run elicznik readings --from 2026-08-01 --to 2026-08-26 --generation   # returned energy

Metriken: consumption, generation, net_consumption, net_generation.

MCP-Server

Der Server stellt vier Tools bereit:

  • list_meters — listet Messstellen auf

  • get_energy(metric, start_date, end_date, resolution) — eine Metrik, mit einer Gesamtsumme und Werten pro Messstelle

  • get_readings(start_date, end_date, resolution) — alle vier Metriken pro Messstelle

  • get_meter_readings(start_date, end_date, generation) — kumulierte Zählerstände

OpenCode

Fügen Sie Folgendes in ~/.config/opencode/opencode.json ein:

{
  "mcp": {
    "elicznik": {
      "type": "local",
      "command": ["uv", "run", "--directory", "/home/paszymaja/github_projects/elicznik-tauron", "elicznik-mcp"],
      "enabled": true
    }
  }
}

Claude for Desktop

Fügen Sie Folgendes in claude_desktop_config.json ein:

{
  "mcpServers": {
    "elicznik": {
      "command": "uv",
      "args": ["--directory", "/ABSOLUTE/PATH/TO/elicznik-tauron", "run", "elicznik-mcp"]
    }
  }
}

Der Server liest die Zugangsdaten aus .env im Projektverzeichnis (oder aus den Umgebungsvariablen ELICZNIK_USERNAME / ELICZNIK_PASSWORD).

Docker

Ein Container-Image wird im GitHub Container Registry veröffentlicht (ghcr.io/paszymaja/elicznik-tauron). Die Zugangsdaten werden aus den Umgebungsvariablen ELICZNIK_USERNAME / ELICZNIK_PASSWORD gelesen (kein .env erforderlich); der Sitzungscache wird nach /tmp geschrieben (temporär).

# CLI
docker run --rm \
  -e ELICZNIK_USERNAME -e ELICZNIK_PASSWORD \
  ghcr.io/paszymaja/elicznik-tauron:latest meters

docker run --rm \
  -e ELICZNIK_USERNAME -e ELICZNIK_PASSWORD \
  ghcr.io/paszymaja/elicznik-tauron:latest \
  energy --metric consumption --resolution day --from 2026-08-01 --to 2026-08-26

# MCP server over stdio (note the -i flag for stdin)
docker run -i --rm \
  -e ELICZNIK_USERNAME -e ELICZNIK_PASSWORD \
  ghcr.io/paszymaja/elicznik-tauron:latest mcp

So erstellen Sie das Image lokal:

docker build -t elicznik-tauron .

Entwicklung

uv sync --extra mcp
uv run pytest

Hinweise

  • Der TLS-Server des Portals handelt Cipher-Suiten aus, die von der Standard-OpenSSL-Richtlinie von Python abgelehnt werden; der Client bindet als Workaround einen DEFAULT@SECLEVEL=1-Adapter ein (siehe session.py).

  • Stündliche CSV-Zeitstempel kennzeichnen die endende Stunde; der Client normalisiert sie auf Zeitstempel zum Stundenbeginn, entsprechend der Konvention der Chart-API.

  • Zeitstempel sind in lokaler Zeit (Europe/Warsaw) angegeben, ohne Zeitzonen-Offset.

Lizenz

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents and LLMs access to the Nikola TEST MCP API through standardized MCP tools for seamless integration and interaction.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that exposes European day-ahead electricity prices for ~41 bidding zones via tools like hourly prices, cheapest hours, current price, and cross-zone summary, enabling AI agents to query energy market data.
    1
    -