Skip to main content
Glama

entsoe-mcp

get_day_ahead_prices

Day-ahead clearing price (EUR/MWh) for a bidding zone.

start/end default to UTC; start inclusive, end EXCLUSIVE. For 'all of April 2026' use start=2026-04-01, end=2026-05-01 (end=2026-04-30 silently drops the final UTC day — and 1–2 local-time hours of April for European zones in CET/CEST). The response's period block shows the resolved window so you can verify (a 30-day month is 720 hours).

tz: pass "local" to interpret start/end as wall-clock in the zone's timezone, or an explicit IANA name like "Europe/Berlin". The server converts to UTC at the boundary.

If you're computing a generation-weighted price metric — capture price, capture rate, value factor, merchant-PPA achieved price — use get_derivation(slug="capture_price", …) instead. It runs server-side over the full window and returns monthly rows; no row cap, no pagination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tzNo
endYes
zoneYes
startYes
aggregationNoraw

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It clearly discloses that start is inclusive, end is exclusive, times default to UTC, the server converts local timezone inputs at the boundary, and the response's period block lets the user verify the resolved window. It does not explicitly disclose pagination or row-cap behavior for this endpoint itself, and the aggregation parameter behavior is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, with each paragraph covering a distinct concern: core purpose, date/time semantics, and alternative routing. Every sentence earns its place, and the most important boundary caveat is front-loaded with a concrete example.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return-value detail need not be spelled out; the description covers the main invocation pitfalls such as EXCLUSIVE end dates, UTC default, and timezone conversion. The only material gap is the undocumented aggregation parameter, which prevents the definition from being fully complete for all call shapes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds strong semantics for start/end and tz, including a concrete April example and the 'local' vs IANA timezone option. However, the aggregation parameter is never explained, which is a significant gap since it has a default of 'raw' but no enum or schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line states the tool returns 'Day-ahead clearing price (EUR/MWh) for a bidding zone,' which is a specific, unambiguous resource. It also distinguishes itself from get_derivation by naming the alternative for generation-weighted metrics, so an agent can immediately tell this endpoint apart from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: if computing generation-weighted metrics, use get_derivation('slug="capture_price"') instead, with reasoning about server-side computation and no row cap. It also explains timezone interpretation and the inclusive/exclusive date boundary, preventing common misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation3/5

Several dedicated getters (get_day_ahead_prices, get_generation, get_load, get_crossborder_flow) overlap with the generic get_series, which explicitly covers the same endpoint families, creating some choice ambiguity. However, the tool names and cross-references like get_derivation vs get_tb_spread and compare_zones vs get_series help an agent distinguish the specific purpose of each tool. Overall there is real overlap, but the descriptions mostly steer an agent correctly.

Naming Consistency5/5

Tool names are lowercase snake_case and consistently follow verb-first patterns: get_ for data retrieval, list_ for reference/discovery, and compare_/data_ for cross-cutting utilities. No mixed casing or erratic verb styles appear. data_coverage is a minor pattern deviation but still reads naturally alongside the other names.

Tool Count5/5

Fourteen tools is well within the appropriate range for an ENTSO-E data platform: several list_ discovery tools, specialized getters, a generic get_series to prevent endpoint-specific tool explosion, plus data_coverage and compare_zones. The count feels comprehensive without being bloated, and the generic query tool keeps the surface scalable.

Completeness5/5

The tool surface covers the core read-only ENTSO-E workflows: endpoint discovery, zone/psr_type reference data, raw time-series via get_series, outages, cross-border flows, load, generation, prices, and server-side derivations. It also adds operational safeguards like data_coverage and analytical shortcuts like compare_zones and get_derivation. There are no obvious dead ends or missing lifecycle stages for the stated domain.

Resources