Energy-Charts (Fraunhofer ISE) MCP — European electricity generation, prices, and capacity.
Energy-Charts MCP defines 6 tools with complete input schemas and detailed descriptions. All tools follow verb_noun naming (generation_mix, public_power, electricity_price, total_power, installed_power, renewable_share). Descriptions are comprehensive (150-350 chars), exceeding the 10-1024 char baseline and providing context on use cases. All required parameters are documented. However, output schemas are described in prose only (e.g., 'Returns {unix_seconds, production_types:[{name, data}]}') rather than as formal JSON Schema, limiting LLM ability to parse responses reliably. No error handling guidance, no parameter validation rules (e.g., date format constraints), and no tool annotations (readOnlyHint, idempotentHint). All tools are read-only and stateless, but this is not explicitly declared.
Day-ahead spot electricity prices for a bidding zone over a date range. Returns {unix_seconds, price, unit}; the price array is timestamp-aligned to unix_seconds. Prices in EUR/MWh.
The CURRENT ELECTRICITY GENERATION MIX BY FUEL for a European country — how much power is coming from solar, wind, nuclear, gas, coal, hydro, biomass right now, with each fuel's MW and percentage share. Answers "what is Germany's generation mix", "how much of France's electricity is nuclear", "Germany power generation by source", "what fuels are generating electricity in <country>". Accepts a country NAME ("Germany", "France") or 2-letter code. Also returns renewable vs fossil vs nuclear totals. Source: Fraunhofer ISE energy-charts, keyless.
Installed generation capacity by production type for a country, as an annual or monthly series. Returns {time:["2002",...], production_types:[{name, data}]}; data arrays are aligned to the time array. Capacity in GW.
Electricity generation broken down by production type (solar, wind, nuclear, gas, etc.) for a country over a date range. Returns {unix_seconds, production_types:[{name, data}]}; each series' data array is timestamp-aligned to unix_seconds. Power in MW.
Renewable share of a country's electricity load — what share / percent of load is currently being covered by renewables (wind, solar, hydro combined). Keyless, no API key. Answers "what share of Germany's electricity load is renewable right now". Returns a list of series [{name, data, ...}] where each data point is a percent of load; values are timestamp-ordered, most recent last (read the last value for the current share). Dates optional (defaults to the last 7 days).
Output schemas are prose-only, not formal JSON Schema. LLMs cannot reliably parse 'Returns {unix_seconds, production_types:[{name, data}]}', they need explicit type definitions with field names, types, and descriptions.
No parameter validation rules documented. Date parameters (start, end, at) lack format constraints (YYYY-MM-DD). Country/bzn parameters lack enum constraints or valid value lists. LLMs will hallucinate invalid values.
No error handling guidance. If an invalid country code is passed, the tool will fail silently or return a cryptic API error. No recovery hints like 'Try search_countries() first' or 'Valid codes: de, fr, es, pl, ...'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Total electricity generation / load for a country over a date range. Returns {unix_seconds, production_types:[{name, data}]}; data arrays are timestamp-aligned to unix_seconds. Power in MW.
Tool annotations missing. All 6 tools are read-only and idempotent, but this is not declared via readOnlyHint or idempotentHint. LLMs cannot infer safety properties and may incorrectly treat them as stateful.
No pagination or result-limit guidance. Tools returning time series (public_power, total_power, renewable_share) over 7-day defaults could return hundreds of data points. No mention of max results, pagination, or truncation behavior.