Model or dataset
datagouv/datagouv-mcp avatar
datagouv/datagouv-mcp

datagouv-mcp: An MCP Server for Querying French Open Data in Chat

Official data.gouv.fr Model Context Protocol (MCP) server that allows AI chatbots to search, explore, and analyze datasets from the French national Open Data platform, directly through conversation.

1,610 stars141 forksPythonMIT

At a glance

What is it?
The official Model Context Protocol server for data.gouv.fr turns a national open data portal into a tool that chatbots can call mid-conversation. The design is deliberately thin: it exposes the catalogue, not the analysis, and the hosted endpoint at mcp.data.gouv.fr/mcp is the intended way in.
Who is it for?
Adopt datagouv-mcp if your users ask questions about French public datasets and you want the catalogue reachable from inside a chatbot without building your own connector. Do not adopt it if you need statistical analysis over the data itself, or if you cannot send user queries to a third-party hosted endpoint.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • datagouv/datagouv-mcp1,610 ★ · +19
Star history
Repository2026-09-122026-11-14
datagouv/datagouv-mcp1.6k1.6k

19 Stars in the last 63 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What datagouv-mcp removes from the workflow

The problem is not that data.gouv.fr lacks data. The problem is the step before the data: knowing which dataset exists, what it is called, and where it lives. Today that step means opening a browser, typing a French-language query into a portal search box, reading result pages, and copying a URL back into whatever tool you were actually using. datagouv-mcp collapses that loop into a tool call. The README frames the goal as letting users ask questions like "Quels jeux de données sont disponibles sur les prix de l'immobilier ?" or "Montre-moi les dernières données de population pour Paris" and get answers without manually browsing the website. The audience is anyone whose chatbot needs to ground an answer in French public data: analysts, journalists, civil servants, and developers building assistants for French-speaking users. It is not a data warehouse and it is not an analytics engine. It is a discovery and exploration layer that sits in front of the portal.

The mechanism: an MCP server over streamable HTTP

The architecture is a single remote MCP server. The README describes it as a Model Context Protocol server, and the connection instructions consistently point clients at one URL, https://mcp.data.gouv.fr/mcp, using the streamable HTTP transport. Clients that speak MCP natively register that URL directly; clients that do not, such as Claude Desktop, are told to bridge through npx mcp-remote. In MCP terms the server publishes tools that the chatbot can invoke during a conversation. The README names three verbs in its description: search, explore, and analyze datasets. What can be confirmed is the data flow: the chatbot decides a tool call is needed, the MCP client sends it to the endpoint, the server queries data.gouv.fr, and the result returns to the model as context for the answer. There is no local index and no cached copy of the portal described in the README, which means every question reaches the live platform.

Getting a client connected, per the README

The README gives a configuration snippet for each supported client, and they are not interchangeable. For Claude Code and Autohand Code the documented command is claude mcp add --transport http datagouv https://mcp.data.gouv.fr/mcp and autohand mcp add --transport http datagouv https://mcp.data.gouv.fr/mcp respectively. For Cursor the JSON uses a url key plus "transport": "http". For Gemini CLI the key is httpUrl rather than url. For IBM Bob it is "type": "streamable-http". AnythingLLM expects "type": "streamable" inside an mcpServers object in anythingllm_mcp_servers.json. Claude Desktop is the odd one out: it needs a command and args pair invoking npx mcp-remote against the hosted URL. The README also documents a Windows-specific failure, where Claude Desktop uses a built-in Node.js runtime that cannot see packages installed with the system npm, and the fix is setting isUsingBuiltInNodeForMcp to false at the root of claude_desktop_config.json before restarting. That is a real configuration trap, and it is documented rather than hidden. ChatGPT support is noted as paid plans only, Plus, Pro, Team and Enterprise, reached through Settings, Apps and connectors, with Developer mode enabled first.

The hosted endpoint is the product, and that is the main constraint

The README states that a public instance is available at https://mcp.data.gouv.fr/mcp with no access restrictions, and recommends it over self-hosting. That choice carries consequences the README does not resolve. Every query a user types passes through an endpoint operated by the project rather than by you, which matters if the questions themselves are sensitive even when the underlying data is public. Self-hosting is mentioned as an option ("If you self-host, swap in your own URL") but the README excerpt does not include the deployment steps, so the cost of running your own instance is unknown from what is provided. There is also a versioning signal worth reading plainly: the project reached v1.0.0 on 2026-09-04 after a long 0.2.x series, and the last push to the repository is dated 2026-09-08.

Where this is the wrong tool

The description says the server lets chatbots search, explore, and analyze datasets. The first two are discovery operations and fit the MCP pattern well. Analysis is a weaker fit. An MCP tool call returns text into a model's context window, and a national open data platform hosts datasets far larger than any context window. If a user asks for a regression across five years of commune-level records, the server can point at the dataset, but the computation has to happen somewhere else. Treat datagouv-mcp as a catalogue assistant, not a compute layer. The second limitation is linguistic and jurisdictional. The portal is French, the example queries in the README are French, and the datasets are French public data. A team whose users need UK, US, or EU-wide statistics will find the tool returns nothing useful, because the server is bound to one platform. The third is dependency on a hosted service you do not control, which is the wrong shape for air-gapped or offline environments unless self-hosting is viable for you, and the README excerpt does not establish that it is.

How it differs from calling the data.gouv.fr API directly

The obvious alternative is the data.gouv.fr public API itself, called from your own code. The difference is who decides what to fetch. With a direct API integration you write the query logic up front: you choose the endpoint, the search parameters, the pagination, and the fields you keep. The model never sees the catalogue. datagouv-mcp inverts that. The model chooses the query at runtime based on what the user asked, which is what makes open-ended questions like the README's real estate example workable without you anticipating them. The trade is control. A direct integration gives you deterministic output, testable behaviour, and no third-party endpoint in the path. datagouv-mcp gives you flexibility and a much smaller integration surface, at the cost of non-deterministic tool selection and a dependency on someone else's server. If your application has a fixed set of known datasets it needs, the direct API is the better engineering choice. If the requirement is genuinely exploratory, the MCP server earns its place.

Licence and maintenance expectations

The repository is MIT licensed, which permits commercial use, modification, and redistribution provided the copyright notice and permission notice are retained. That is permissive and imposes no copyleft obligation on your own code. It does not, however, say anything about the hosted endpoint: an MIT licence on the source code is not a service agreement, and the README's statement of "no access restrictions" is a description of current behaviour, not a contractual commitment. If you depend on https://mcp.data.gouv.fr/mcp in production, that distinction matters. On maintenance, the release history shows a steady cadence through the 0.2.x line and a 1.0.0 cut in September 2026, with repository activity shortly after. The README also links a feedback form and references issue #69 for the Windows Node.js problem, which suggests the project is responsive to configuration bugs. For a self-hosted deployment, the maintenance surface is the Python codebase plus whatever infrastructure the (undocumented here) deployment requires; for the hosted path, maintenance is effectively zero until the endpoint changes or disappears.

Editorial conclusion

Adopt datagouv-mcp if your users ask questions about French public datasets and you want the catalogue reachable from inside a chatbot without building your own connector. Do not adopt it if you need statistical analysis over the data itself, or if you cannot send user queries to a third-party hosted endpoint. Before rolling it out, verify the current tool list from the server, confirm whether the hosted instance applies rate limits, and check that your client's MCP transport matches the streamable HTTP endpoint the README documents.

Frequently asked questions

Is there a free public data.gouv.fr MCP server?

Yes. A hosted instance is published at https://mcp.data.gouv.fr/mcp and is described as available for everyone with no access restrictions, and the connection instructions treat it as the recommended path over self-hosting.

Why does Claude Desktop fail to connect to the datagouv MCP server on Windows?

Claude may be using its built-in Node.js runtime, which does not see packages installed with your system npm, including a global mcp-remote. Setting isUsingBuiltInNodeForMcp to false at the root of the Claude Desktop config file makes npx use your installed Node, after which Claude Desktop needs restarting. Issue 69 tracks it.

What are the runtime dependencies of datagouv-mcp?

Four packages: mcp from 1.25.0 up to but not including 2, niquests from 3.19.1, pyyaml from 6.0 and sentry-sdk from 2.54.0. Python 3.13 or newer is required, with 3.15 excluded by an explicit upper bound.

Which tests does datagouv-mcp run by default?

pytest is configured with addopts excluding the stress and health_check markers, and both are described as requiring a running MCP server. The dev dependency group adds niquests-mock, pytest, pytest-asyncio, ruff and ty.

Official sources

  1. datagouv/datagouv-mcp on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/datagouv-datagouv-mcp.svg)](https://hysenlabs.com/projects/datagouv-datagouv-mcp)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/datagouv-datagouv-mcp.svg)](https://hysenlabs.com/projects/datagouv-datagouv-mcp)

Was this useful?