mcp-french-energy-open-data
Click on "Deploy 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., "@mcp-french-energy-open-datawhat's the current French electricity mix?"
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.
mcp-french-energy-open-data
MCP server for French open energy data: ODRE, éCO2mix, RTE/Enedis source discovery, and electricity mix helpers.
Tools
Run the MCP and call french_energy_open_data_get_sources first to inspect source coverage. This server also exposes domain-specific tools for the topic described above.
Includes ODRE catalog search, recent éCO2mix rows, and a computed electricity mix summary.
Related MCP server: data-odre
Install
npm install
npm run build
npm test
npm run devClaude Desktop
{
"mcpServers": {
"french-energy-open-data": {
"command": "npx",
"args": ["mcp-french-energy-open-data"]
}
}
}Sources
ODRE OpenDataSoft portal: https://odre.opendatasoft.com/
éCO2mix national real-time dataset: https://odre.opendatasoft.com/explore/dataset/eco2mix-national-tr/
RTE éCO2mix downloads: https://www.rte-france.com/en/data-publications/eco2mix/download-indicators
RTE services portal: https://www.services-rte.com/
Publishing
See docs/publishing.md.
Glama / Docker
The repo includes Dockerfile and glama.json.
Build steps:
["npm install", "npm run build"]CMD arguments:
["node", "dist/index.js"]Safety
This MCP helps agents discover and summarize public sources. It is not an official authority. Verify decisions against the competent public service or original data producer.
License
MIT
Available Tools
5 toolsfrench_energy_open_data_fetch_source_excerptA
Fetch a short text excerpt from a curated source by index or title keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | ||
| source_key | Yes | Source index, title keyword, or URL fragment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It only states the operation without any side effects, permissions, error handling, or output format. While 'fetch' implies a read-only action, it does not disclose potential truncation based on max_chars or what happens if the source is not found, leaving the agent with limited transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording. It front-loads the primary action and resource, making it easily scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool, the description covers the essential context: what is fetched (excerpt), from where (curated source), and how to select it (by index or title keyword). It does not detail the output structure or edge cases, but the simplicity of the operation makes this acceptable. A perfect score would require a bit more about the return format or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers source_key with a clear description and max_chars with constraints. The description adds little beyond referencing 'index or title keyword' for source_key. max_chars is self-explanatory from its name and constraints, so the parameter semantics are adequately covered by the schema, though the description does not enhance them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fetch), the resource (a short text excerpt from a curated source), and the method (by index or title keyword). It is distinct from sibling tools like 'get_sources' (list sources) and 'search_*' (search catalogs), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: to retrieve a specific excerpt from a known source using a source_key (index/title/URL fragment). It does not explicitly mention alternatives or exclusions, but the verb 'fetch' and the reference to 'curated source' suggest direct retrieval rather than searching. The lack of explicit when-not guidance keeps it from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
french_energy_open_data_get_eco2mix_latestA
Fetch recent national éCO2mix rows from ODRE OpenDataSoft.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It conveys a read-only 'fetch' behavior and scopes the data nationally from ODRE OpenDataSoft, which is useful context. It does not disclose defaults, output shape, or any limitations such as time/geographic filters, but for a simple read operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with every word earning its place. It is front-loaded with the verb and conveys the essential resource and source without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is close to viable: it states what is fetched and the operative resource. However, it omits any guidance on the default limit and does not distinguish itself from the sibling fetch/search tools, so an agent operating only on the description might use it even when another tool is better suited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single limit parameter is not described in the description, but the schema provides a meaningful name, default, minimum, and maximum. The description's reference to 'rows' gives enough context to infer that limit controls how many recent rows are returned. More explicit phrasing would help, but this is not a large coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action, resource, and data source: 'Fetch recent national éCO2mix rows from ODRE OpenDataSoft.' This is specific enough to distinguish it from siblings like get_sources or search_odre_catalog, which target other tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over the sibling tools, and it does not mention alternatives or exclusions. The intended use is inferable from the name and description, but that is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
french_energy_open_data_get_sourcesA
List curated sources used by this MCP.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'List' which implies a read-only operation, but fails to disclose return format, any potential side effects, authentication requirements, or rate limits. The behavioral detail is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. There is no filler or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple listing tool, the description is nearly sufficient. However, it does not describe the structure of the returned 'sources' (e.g., what fields are included), and since there is no output schema, this gap is only partially addressed. An agent would need to infer the result format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information, but none is needed since the schema is empty. The description does not conflict with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and a specific resource ('curated sources used by this MCP'). It is clearly distinct from siblings like 'search_data_gouv' or 'get_eco2mix_latest', as it addresses a different action (listing sources vs searching or fetching data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. However, the purpose is self-evident—use when you need to see the curated source list—so the usage is implied rather than stated. No alternatives or exclusions are mentioned, but the sibling names suggest distinct contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
french_energy_open_data_search_data_gouvC
Search data.gouv.fr for French energy datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | énergie consommation électricité | |
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It simply says 'Search' which implies a read operation, but it does not mention any potential network calls, rate limits, result format, pagination, or whether this is safe to call. This is minimal and insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, and the main action is front-loaded. However, it is so brief that it borders on under-specification rather than efficient structure – it lacks the typical components (e.g., context, result, or parameter hints) that make a description usable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters, no output schema, and no annotations, the description should provide enough context for an agent to call it correctly. It does not explain what the query should contain, how page_size affects results, or what a response looks like. The description is inadequate for a tool that relies entirely on textual guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the parameters. However, the description does not mention either 'query' or 'page_size' at all. The schema provides defaults and constraints, but the description adds no meaning to what these parameters do or how to use them effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and a clear resource ('data.gouv.fr for French energy datasets'), which makes the tool's core purpose understandable. However, it does not distinguish it from the sibling 'search_odre_catalog', which also searches a catalog, so it loses a point for lacking differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the alternatives. The description only says what it does, not when to prefer it over the sibling tools like 'search_odre_catalog' or 'get_sources' – no explicit context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
french_energy_open_data_search_odre_catalogC
Search the ODRE OpenDataSoft catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | consommation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only says 'Search'—no mention of result format, pagination behavior, sorting, or that this is a read-only operation. The default limit and query are visible in the schema, but the description adds no behavioral context beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler or repetition. It is efficient but so minimal that it borders on under-specification, which prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters, no annotations, no output schema, and several siblings, the description is too sparse. It does not explain what kinds of queries work, what the returned data looks like, or how this search relates to the sibling tools, leaving an agent to guess at usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but it does not mention the query or limit parameters or clarify how they affect the search. The parameter names are somewhat self-explanatory, but no additional meaning is provided to help an agent construct a good search.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Search') and the resource ('the ODRE OpenDataSoft catalog'), which distinguishes it from searching a different catalog like search_data_gouv. However, it does not clarify what ODRE or the OpenDataSoft catalog contains, leaving some ambiguity about the domain and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings such as get_sources, fetch_source_excerpt, or search_data_gouv. The description implies a search use case but does not state conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
french_energy_open_data_fetch_source_excerpt - First observed
french_energy_open_data_get_eco2mix_latest - First observed
french_energy_open_data_get_sources - First observed
french_energy_open_data_search_data_gouv - First observed
french_energy_open_data_search_odre_catalog
TDQS
Scored across 5 tools
The five tools have mostly distinct purposes: listing curated sources, fetching excerpts, fetching éCO2mix data, searching ODRE catalog, and searching data.gouv. There is minor potential confusion between 'get_eco2mix_latest' and 'search_odre_catalog' since both relate to ODRE data, but their descriptions (fetch recent rows vs search catalog) clarify the distinction.
All tools use the server prefix 'french_energy_open_data_' and verbs like get, fetch, search. The pattern is consistent in structure, though 'get_sources' and 'fetch_source_excerpt' use slightly different verbs for similar retrieval actions, which is a minor deviation from a uniform verb_noun pattern.
Five tools is a reasonable scope for an energy open-data server, not too thin nor too heavy. Each tool addresses a specific function: data source management, data retrieval, and catalog search. It may be slightly lean but appropriate for the stated purpose.
The tool set covers browsing sources, fetching excerpts, retrieving latest éCO2mix data, and searching two catalogs. Notable gaps include lacking ability to query historical éCO2mix data or access full dataset details, which agents might need. The surface is sufficient for basic queries but not exhaustive for the energy domain.
Maintenance
Related MCP Connectors
Rooftop solar potential, RGE installer search and quote requests. France only, no API key.
European power-market data: day-ahead & balancing prices, load, generation, flows, outages. 47 zones
Live and historical electricity prices and demand for 25 grids; carbon intensity for GB.
French address quality, geocoding & routing from official data (BAN, INSEE, OpenStreetMap).
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceProvides tools for Dutch energy market data: day-ahead and imbalance prices, weather forecasts, and battery storage business case calculations.-
- AlicenseNot gradedqualityCmaintenanceProvides tools to search, inspect, and query energy open data from ODRE (electricity & gas production, consumption, grid load, renewables) using natural language or direct tool calls.14MIT
- FlicenseNot gradedqualityCmaintenanceProvides tools to search and retrieve French public procurement data (tenders, awarded contracts) and company information from official open APIs.-
- FlicenseNot gradedqualityCmaintenanceConnects to real-time French power grid data (carbon intensity, consumption, generation mix) to make Kiro carbon-aware, enabling it to defer heavy jobs when the grid is dirty.-