⚡ Rust • ~10ms cold start

European energy prices
for AI agents

Real-time German electricity spot prices, cheapest charging windows, and price statistics. One endpoint, near-zero latency.

{
  "mcpServers": {
    "energy": {
      "url": "https://energy-mcp.getbrechtai.com/mcp"
    }
  }
}

Three tools, one endpoint

Everything your agent needs for energy-aware decisions.

📊

get_spot_prices

Current and upcoming hourly EPEX Spot electricity prices for Germany.

🔮

get_price_forecast

Tomorrow's day-ahead hourly prices. Published daily at 14:00 CET.

📈

get_price_stats

Average, min, max, cheapest and most expensive hours.

⚡

find_cheapest_window

Find the optimal time to run an appliance — EV charging, dishwasher, heat pump.

⚖️

compare_tariffs

Dynamic vs fixed tariff simulation for a German household.

💰

calculate_energy_cost

What X kWh costs at current spot prices, with week-over-week comparison.

📉

analyze_price_trends

Weekly averages, volatility, daily breakdowns, and trend direction.

🌍

search_energy_prices

Spot prices for 25+ European countries — any bidding zone, any date.

🔋

get_generation_mix

Real-time power generation by source — solar, wind, gas, nuclear, coal.

🌱

get_carbon_intensity

gCO2/kWh for any European country, derived from live generation mix.

Data source: EPEX Spot via aWATTar • Updated hourly at 14:00 CET with next-day prices

Try it live

Hit the real endpoint — no API key required.

energy-mcp playground
← Select a tool and hit Run to call the live MCP endpoint

Ask anything

No MCP client needed — just ask a question in plain language.

energy assistant — powered by Claude
Hi! I'm your energy assistant. Ask me anything about electricity prices, charging times, grid cleanliness, or tariff comparisons. Try:

• "When should I charge my EV tonight?"
• "Wie sauber ist der Strom gerade?"
• "Compare dynamic vs fixed tariff for my 350 kWh/month"

Works with Home Assistant

No custom integration needed. Use HA's built-in command line sensor to pull live data.

📊 Current spot price sensor

Updates every 15 minutes with today's price stats — average, min, max, cheapest/most expensive hours.

command_line:
  - sensor:
      name: electricity_price_stats
      command: >
        curl -s -X POST https://energy-mcp.getbrechtai.com/mcp
        -H "Content-Type: application/json"
        -H "Accept: application/json, text/event-stream"
        -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_price_stats","arguments":{}}}'
        | grep "^data:" | sed 's/^data: //'
      value_template: >
        {{ (value_json.result.content[0].text | from_json).stats.avg_ct_kwh | round(2) }}
      json_attributes_path: "$.result.content[0].text"
      unit_of_measurement: "ct/kWh"
      scan_interval: 900

⚡ Cheapest EV charging window

Finds the best 3-hour window for 11 kWh. Returns the start time as state, with cost and price as attributes.

command_line:
  - sensor:
      name: cheapest_ev_window
      command: >
        curl -s -X POST https://energy-mcp.getbrechtai.com/mcp
        -H "Content-Type: application/json"
        -H "Accept: application/json, text/event-stream"
        -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_cheapest_window","arguments":{"duration_hours":3,"consumption_kwh":11}}}'
        | grep "^data:" | sed 's/^data: //'
      value_template: >
        {{ (value_json.result.content[0].text | from_json).start }}
      json_attributes_path: "$.result.content[0].text"
      scan_interval: 1800

🔌 Automation: Start charging at cheapest time

Triggers your EV charger when the cheapest window begins. Sends a notification with the cost.

automation:
  - alias: "Start EV charging at cheapest window"
    trigger:
      - platform: template
        value_template: >
          {{ now().isoformat()[:16] ==
             states('sensor.cheapest_ev_window')[:16] }}
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.ev_charger
      - service: notify.mobile_app
        data:
          title: "⚡ EV charging started"
          message: >
            Charging at {{ state_attr('sensor.cheapest_ev_window',
            'avg_price_ct_kwh') }} ct/kWh.
            Estimated cost: €{{ state_attr('sensor.cheapest_ev_window',
            'total_cost_eur') }}

🌱 Carbon intensity sensor

Track how clean the grid is right now. Use to prefer green hours for flexible loads.

command_line:
  - sensor:
      name: grid_carbon_intensity
      command: >
        curl -s -X POST https://energy-mcp.getbrechtai.com/mcp
        -H "Content-Type: application/json"
        -H "Accept: application/json, text/event-stream"
        -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_carbon_intensity","arguments":{"country":"DE"}}}'
        | grep "^data:" | sed 's/^data: //'
      value_template: >
        {{ (value_json.result.content[0].text | from_json).carbon_intensity_gco2_kwh | round(0) }}
      unit_of_measurement: "gCO₂/kWh"
      scan_interval: 1800

No HACS install, no custom components, no dependencies. Just YAML → live data.

Need more than 50 requests/day?

The free tier gives you 50 requests/day with no key. For production workloads, get an API key for up to 10,000 requests/day.

Free 50 req/day • No key needed
Pro 10,000 req/day • API key
Business 100,000 req/day • SLA
Get API Key →