strompreis-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@strompreis-mcpWhen is the cheapest time to run my laundry today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ Strompreis MCP — Electricity Price Forecast for AI Agents
MCP server that gives AI agents German electricity prices — real day-ahead auction prices where available, statistical estimates beyond. Tells your smart home agent when to run the dishwasher, charge the car, or schedule power-hungry tasks.
Built for the Model Context Protocol — works with Claude Desktop, Cline, and any MCP-compatible client.
Architecture
┌────────────────────────────┐
│ SMARD (Bundesnetzagentur) │
│ Live-Strompreise 15min │
└──────────┬─────────────────┘
│ API
┌──────────▼─────────────────┐
│ strompreis-collector │
│ (Cron: every 15 min) │
└──────────┬─────────────────┘
│ writes
┌──────────▼─────────────────┐
│ SQLite Database │
│ ~/.strompreis/strompreis.db │
│ ├── price_data (historical) │
│ ├── api_keys (auth) │
│ └── usage_log (rate limit) │
└──────────┬─────────────────┘
│ reads
┌────────────────┼────────────────┐
│ │ │
┌─────────▼──────┐ ┌─────▼──────┐ ┌──────▼─────────┐
│ MCP Server │ │ B2C Site │ │ CLI Tools │
│ (stdio/SSE) │ │ (FastAPI) │ │ status/vacuum │
│ price_forecast │ │ savings │ │ │
│ best_hours │ │ checker │ │ │
│ db_status │ │ affiliate │ │ │
└─────────────────┘ └────────────┘ └─────────────────┘Related MCP server: germany-mcp-server
Quick Start
1. Install
pip install strompreis-mcpOr from source:
git clone https://github.com/DasClown/strompreis-mcp.git
cd strompreis-mcp
pip install -e .2. Initialize database + first data collection
# Automatic setup
bash scripts/setup.sh
# Or manual:
strompreis-collector collect
strompreis-collector status3. Add to Claude Desktop
Edit ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"strompreis": {
"command": "strompreis-mcp"
}
}
}Or with Cline / any MCP client:
{
"mcpServers": {
"strompreis": {
"command": "strompreis-mcp",
"args": []
}
}
}Tools & Resources
Built on the official MCP Python SDK (mcp.server.fastmcp.FastMCP).
Tools
Tool | Parameters | Returns |
|
| JSON array: |
|
| Human-readable cheapest hours recommendation |
| none | Database health: rows, latest timestamp, usage stats (incl. keyless quota) |
Resources (read-only URIs)
URI | Description |
| Most recent SMARD day-ahead series (raw + ct/kWh) |
| Local DB history (last 30 days) |
| Database health snapshot as JSON |
Resources sind nützlich für Clients, die URIs bevorzugen statt Tool-Calls (z. B. zum Einbetten in Kontextfenster).
Each price_forecast entry carries a source field:
auction— verbindlicher Day-Ahead-Auktionspreis (EPEX, via SMARD),confidence = 1.0. Gilt typ. für die nächsten 24–36 h, sobald die Auktion veröffentlicht wurde.statistical— Schätzung aus historischem Stunden-/Wochentagsprofil + kurzfristigem Trend, für Stunden jenseits des Auktionshorizonts.confidencesinkt mit der Distanz.
So weiß der Agent (und der User), ob eine Empfehlung auf echten Preisen beruht oder geschätzt ist.
Example Prompts
"When is the cheapest time to run my laundry today?"
→ Agent callsbest_hours(count=3)→ Empfehlung aus Auktionspreisen (✓) oder Schätzung (~), inkl. Herkunft.
"What's the electricity price forecast for tomorrow?"
→ Agent callsprice_forecast(hours=48)→ Stundenpreise in ct/kWh, gemischt auction/statistical.
"Should I charge my EV now or wait?"
→ Agent callsprice_forecast(hours=24), findet das günstigste Fenster.
Database Persistence
The database lives at ~/.strompreis/strompreis.db. It persists:
Table | Purpose | Retention |
| Historical SMARD prices + generation data; | Unlimited (for ML training) |
| Monetization: tier-based API access | Manual expiration |
| Rate limiting + analytics (auch keyless, mit | Accumulates |
| Schema-Versionierung für automatische Migrationen | Persistent |
Beim Start migriert das Paket ältere Schemata automatisch (siehe CHANGELOG.md).
Cron Setup (recommended)
# Fetch data every 15 minutes
*/15 * * * * cd /path/to/strompreis-mcp && strompreis-collector collect
# Weekly database maintenance (Sunday 03:00)
0 3 * * 0 cd /path/to/strompreis-mcp && strompreis-collector vacuumOr use the provided crontab:
crontab deploy/crontabCLI Commands
# Fetch + store latest SMARD data
strompreis-collector collect
# Show database health
strompreis-collector status
# → 📊 Strompreis DB Status
# Total rows: 1,248
# Latest data: 2026-06-30T21:00:00+00:00
# DB file size: 180 KB
# Weekly maintenance
strompreis-collector vacuumDeployment
Transports
Der Server unterstützt alle MCP-Transporte (über STROMPREIS_TRANSPORT):
Transport | Use Case | Aufruf |
| Lokale Clients (Claude Desktop, Cline) |
|
| Remote, B2C-Site, getunnelt |
|
| Modernes Remote (empfohlen für Produktion) |
|
Konfiguriere Host/Port via --host / --port oder MCP_HOST / MCP_PORT.
systemd (production)
# Edit deploy/strompreis-mcp.service paths for your system, then:
sudo cp deploy/strompreis-mcp.service /etc/systemd/system/
sudo systemctl enable --now strompreis-mcp
# Monitor
journalctl -u strompreis-mcp -fB2C Website (side-stream)
# Install dependencies
pip install strompreis-mcp[b2c]
# Run
python3 -m uvicorn b2c.server:app --host 0.0.0.0 --port 8080Then open http://localhost:8080 — users enter their annual kWh consumption and get:
✅ Savings calculation (fixed vs dynamic tariff)
✅ Tibber/Awattar affiliate comparison
✅ 24h price forecast snippet
B2C Configuration (env vars)
Keine Secrets im Source. Alle IDs/URLs kommen aus der Umgebung:
Variable | Zweck |
| Awin Publisher-ID für Tibber-Affiliate |
| Override: vollständiger Tibber-Link |
| Override: Awattar-Partner-Link |
| Impressum-URL (DSGVO, Footer) |
| Datenschutz-URL (DSGVO, Footer) |
| Avg. Festpreis ct/kWh (Default 28.0) |
| Dynamisch-Aufschlag ct/kWh (Default 5.5) |
Wichtig (kommerzieller Betrieb, DSGVO): Für eine öffentliche B2C-Seite brauchst du Impressum und Datenschutzerklärung. Setze STROMPREIS_IMPRINT_URL und STROMPREIS_PRIVACY_URL — sie erscheinen im Footer.
Smithery
One-click install for Claude Desktop via Smithery.
API Key Mode (keyed mode, for production/Multi-Tenant)
By default the server runs in keyless mode (100 req/day global limit, persisted in DB).
For production use, switch to keyed mode with the strompreis-keys CLI:
# Create a key
strompreis-keys create "my-app" --tier pro --limit 10000
# → sp_xxx... (shown once)
# List keys (masked)
strompreis-keys list
strompreis-keys list --tier pro --inactive
# Verify / revoke
strompreis-keys verify sp_xxx...
strompreis-keys revoke sp_xxx...Then start the server with the key:
export STROMPREIS_API_KEY=sp_your_key_here
strompreis-mcpIn keyed mode:
All requests validated against
api_keystablePer-key daily rate limiting
Usage logged to
usage_logtabledb_statuszeigt aktive Keys und heutige Abrufe
Tiers (Vorschlag für kommerzielle Preisgestaltung)
Tier | Limit/Tag | Use Case |
| 100 | Persönliche Smart-Home-Integration |
| 10.000 | Kleinere SaaS-Produkte, Hobby-Projekte |
| 100.000+ | Kommerzielle Apps, vertraglich |
Limits sind pro Key konfigurierbar (--limit N); die Tier-Bezeichnung ist lediglich ein Label.
Data Sources
Source | Provider | API | Data |
Day-ahead auction prices | Live, hourly (verbindlich für ca. 24–36 h) | ||
Solar generation | SMARD | Chart API | Live, hourly |
Wind generation | SMARD | Chart API | Live, hourly |
Grid load | SMARD | Chart API | Live, hourly |
Wie die Vorhersage zustande kommt (v0.3):
Innerhalb des Day-Ahead-Auktionshorizonts: echte, verbindliche Börsenpreise (
source: "auction").Darüber hinaus: statistische Schätzung aus DB-Historie (Stundenprofil, Wochentag, kurzfristiger Trend) (
source: "statistical").
Geplant für v0.4+:
ENTSO-E Transparency (grenzüberschreitender Stromhandel, Netzengpässe)
DWD BrightSky (Wetter: Solarstrahlung, Windgeschwindigkeit, Temperatur)
ML-Modell (z. B. Random Forest / Gradient Boosting) für die Schätzung jenseits des Auktionshorizonts — solange es gemessene Qualitätsvorteile bringt.
License
MIT
Built by @DasClown — German electricity prices for AI agents.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/DasClown/strompreis-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server