SkillAgentSearch skills...

datagouv-mcp

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.

Install / Use

claude mcp add datagouv -- npx -y github:datagouv/datagouv-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

94/100

Supported Platforms

Claude Code
Claude Desktop

Tags

data.gouv.fr MCP Server

<img width="1200" height="675" alt="image" src="https://github.com/user-attachments/assets/5d20e992-349a-4b3b-9a0a-ebe308735cc9" />

[!TIP] Got feedback? Tell us about it here

CircleCI License: MIT

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

Instead of manually browsing the website, you can simply 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 instant answers.

[!TIP] Use it now: A public instance is available for everyone at https://mcp.data.gouv.fr/mcp with no access restrictions. To connect your favorite chatbot, simply follow the connection instructions below.

🌐 Connect your chatbot to the MCP server

Use the hosted endpoint https://mcp.data.gouv.fr/mcp (recommended). If you self-host, swap in your own URL.

The MCP server configuration depends on your client. Use the appropriate configuration format for your client:

AnythingLLM | Autohand Code | ChatGPT | Claude Code | Claude Desktop | Cursor | Gemini CLI | HuggingChat | IBM Bob | Kiro CLI | Kiro IDE | Le Chat (Mistral) | Mistral Vibe | OpenCode | VS Code | Windsurf

AnythingLLM

  1. Locate the anythingllm_mcp_servers.json file in your AnythingLLM storage plugins directory:

    • Linux: ~/.config/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json
    • MacOS: ~/Library/Application Support/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json
    • Windows: C:\Users\<username>\AppData\Roaming\anythingllm-desktop\storage\plugins\anythingllm_mcp_servers.json
  2. Add the following configuration:

{
  "mcpServers": {
    "datagouv": {
      "type": "streamable",
      "url": "https://mcp.data.gouv.fr/mcp"
    }
  }
}

For more details, see the AnythingLLM MCP documentation.

Autohand Code

Use the Autohand Code CLI to register the hosted endpoint:

autohand mcp add --transport http datagouv https://mcp.data.gouv.fr/mcp

Add --scope project to keep the registration in the current workspace.

ChatGPT

Available for paid plans only (Plus, Pro, Team, and Enterprise).

  1. Access Settings: Open ChatGPT in your browser, go to Settings, then Apps and connectors.
  2. Enable Dev Mode: Open Advanced settings and enable Developer mode.
  3. Add Connector: Return to Settings > Connectors > Browse connectors and click Add a new connector.
  4. Configure the connector: Set the URL to https://mcp.data.gouv.fr/mcp and save to activate the tools.

Claude Code

Use the claude mcp command to add the MCP server:

claude mcp add --transport http datagouv https://mcp.data.gouv.fr/mcp

Claude Desktop

Add the following to your Claude Desktop configuration file (typically ~/.config/Claude/claude_desktop_config.json on Linux, ~/Library/Application Support/Claude/claude_desktop_config.json on MacOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "datagouv": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.data.gouv.fr/mcp"
      ]
    }
  }
}

Claude Desktop on Windows: If the server appears in the list but never connects (no handshake, tools missing), 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). Set isUsingBuiltInNodeForMcp to false at the root of the same config file so npx uses your installed Node — then restart Claude Desktop:

{
  "isUsingBuiltInNodeForMcp": false,
  "mcpServers": {
    "datagouv": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.data.gouv.fr/mcp"
      ]
    }
  }
}

See issue #69 for background.

Cursor

Cursor supports MCP servers through its settings. To configure the server:

  1. Open Cursor Settings
  2. Search for "MCP" or "Model Context Protocol"
  3. Add a new MCP server with the following configuration:
{
  "mcpServers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp",
      "transport": "http"
    }
  }
}

Gemini CLI

Add the following to your ~/.gemini/settings.json file (Linux: ~/.gemini/settings.json, MacOS: ~/.gemini/settings.json, Windows: %USERPROFILE%\.gemini\settings.json):

{
  "mcpServers": {
    "datagouv": {
      "httpUrl": "https://mcp.data.gouv.fr/mcp"
    }
  }
}

HuggingChat

  1. Access Settings: In the chat interface, click the + icon, select MCP Servers, and click Manage MCP Servers.
  2. Add Server: Click the + Add Server button in the server management window.
  3. Configure the Server: Enter a Server Name (e.g., "Data Gouv") and set the Server URL to https://mcp.data.gouv.fr/mcp. Click Add Server to save.
  4. Verify Connection: Click the Health Check button on the new server card to confirm it displays as Connected. Ensure the toggle is activated to use the tools in your chat.

IBM Bob

IBM Bob supports MCP servers through its settings. To configure the server:

  1. Click the setting icon in the Bob panel.
  2. Select the MCP tab.
  3. Click the appropriate button:
  • Edit Global MCP: Opens the global mcp_settings.json file
  • Edit Project MCP: Opens the project-specific .bob/mcp.json file (Bob creates it if it does not exist)

Both files use JSON format with an mcpServers object containing named server configurations.

{
  "mcpServers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp",
      "type": "streamable-http"
    }
  }
}

Kiro CLI

Add the following to ~/.kiro/settings/mcp.json (Linux: ~/.kiro/settings/mcp.json, MacOS: ~/.kiro/settings/mcp.json, Windows: %USERPROFILE%\.kiro\settings\mcp.json):

{
  "mcpServers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp"
    }
  }
}

Kiro IDE

Add the following to your Kiro MCP configuration file (.kiro/settings/mcp.json in your workspace, or for global config: Linux: ~/.kiro/settings/mcp.json, MacOS: ~/.kiro/settings/mcp.json, Windows: %USERPROFILE%\.kiro\settings\mcp.json):

{
  "mcpServers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp"
    }
  }
}

Le Chat (Mistral)

Available on all plans, including free.

  1. Go to Connectors: Open Mistral in your browser, then go to Intelligence > Connectors.
  2. Add a custom connector: Click Add connector > Custom MCP Connector, give it a name (for example DataGouv), and set the server URL to https://mcp.data.gouv.fr/mcp.
  3. No authentication: Leave authentication disabled.
  4. Create: Click Create.

Mistral Vibe CLI

Edit your Vibe config (default: Linux: ~/.vibe/config.toml, MacOS: ~/.vibe/config.toml, Windows: %USERPROFILE%\.vibe\config.toml) and add the MCP server:

[[mcp_servers]]
name = "datagouv"
transport = "streamable-http"
url = "https://mcp.data.gouv.fr/mcp"

See the full Vibe MCP options in the official docs: MCP server configuration.

OpenCode

Add to opencode.json (e.g. ~/.config/opencode/opencode.json or your project root). Remote servers use the top-level mcp object with type: "remote". See OpenCode MCP servers.

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "datagouv": {
      "type": "remote",
      "url": "https://mcp.data.gouv.fr/mcp",
      "enabled": true
    }
  }
}

VS Code

Add the following to your VS Code mcp.json file (Linux: ~/.config/Code/User/mcp.json, MacOS: ~/Library/Application Support/Code/User/mcp.json, Windows: %APPDATA%\Code\User\mcp.json). Run MCP: Open User Configuration from the Command Palette to open it.

{
  "servers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp",
      "type": "http"
    }
  }
}

Windsurf

Add the following to your ~/.codeium/windsurf/mcp_config.json (Linux: ~/.codeium/windsurf/mcp_config.json, MacOS: ~/.codeium/windsurf/mcp_config.json, Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json):

{
  "mcpServers": {
    "datagouv": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.data.gouv.fr/mcp"
      ]
    }
  }
}

Note:

  • The hosted endpoint is https://mcp.data.gouv.fr/mcp. If you run the server yourself, replace it with your own URL (see “Run locally” below for the default local endpoint).
  • This MCP server only exposes read-only tools for now, so no API key is required.

🖥️ Run locally

1. Run the MCP server

Before starting, clone this repository and browse into it:

git clone git@github.com:datagouv/datagouv-mcp.git
cd datagouv-mcp

Docker is required for the recommended setup. Install it via Docker Desktop or any compatible Docker Engine before continuing.

🐳 With Docker (Recommended)

# With default settings (port 8000, prod environment)
docker compose up -d

# With custom environment variables
MCP_PORT=8007 DATAGOUV_API_ENV=demo LOG_LEVEL=DEBUG docker compose up -d

# Stop
docker compose down

Environment variables:

  • MCP_HOST: host to bind to (defaults to 0.0.0.0). Set to 127.0.0.1 for local development to follow MCP security best practices.
  • MCP_PORT: port for the MCP HTTP server (defaults to 8000 when unset).
  • MCP_ENV: environment name reported to Sentry (defaults to local when unset). Set explicitly to prod, preprod, or demo in your deployment.
  • DATAGOUV_API_ENV: prod (default) or demo. This controls which data.gouv.fr environement it uses the data from (https://www.data.gouv.fr or https://demo.data.gouv.fr). By default the MCP server talks to the production data.gouv.fr. Set DATAGOUV_API_ENV=demo if you specifically need the demo environment.
  • LOG_LEVEL: Python logging level for the application (defaults to INFO). Common values: DEBUG, INFO, WARNING, ERROR, CRITICAL.
  • SENTRY_DSN: Sentry DSN to enable error and performance monitoring. Monitoring is disabled when unset.
  • SENTRY_SAMPLE_RATE: sampling rate for Sentry traces and profiles (float 0.01.0, defaults to 1.0).

⚙️ Manual Installation

You will need uv to install dependencies and run the server.

  1. Install dependencies
uv sync
  1. Prepare the environment file

Copy the example environment file to create your own .env file:

cp .env.example .env

Then optionally edit .env and set the variables that matter for your run:

MCP_HOST=127.0.0.1  # (defaults to 0.0.0.0, use 127.0.0.1 for local dev)
MCP_PORT=8007  # (defaults to 8000 when unset)
MCP_ENV=local  # environment name sent to Sentry (defaults to local when unset)
DATAGOUV_API_ENV=prod  # 

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars1.6k
CategoryCustomer
Updated13d ago
Forks139

Languages

Python

Security Score

100/100

Audited on Sep 8, 2026

No findings