Token导航 LogoToken导航TokenDH.com
Datagouv MCP logo
数据服务stdio官方级别未说明来源级核验

Datagouv MCP

MCP Server

一款允许AI聊天机器人通过对话搜索、探索和分析法国国家开放数据平台data.gouv.fr的数据集的服务。

工具数

12

提示词数

0

GitHub Stars

1,460

资源数

0
开放数据PythonClaude数据分析Claude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

datagouv

提供方

datagouv

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run main.py

详细介绍

data.gov.fr MCP服务器

\[!提示\] 收到反馈了吗? 在这里告诉我们

![CircleCI](https://circleci.com/gh/datagouv/datagouv-mcp) ![License: MIT](https://opensource.org/licenses/MIT)

模型上下文协议(MCP)服务器,允许AI聊天机器人(Claude、ChatGPT、Gemini等)搜索、探索和分析来自 data.gov.fr,法国国家开放数据平台,直接通过对话。

与手动浏览网站不同,您可以简单地问一些问题,如“有哪些房价数据集?”或“向我展示巴黎的最新人口数据”,并获得即时答案。

\[!提示\] 立即使用:每个人都可以在以下位置使用公共实例https://mcp.data.gouv.fr/mcp没有访问限制。 要连接您最喜欢的聊天机器人,只需按照以下步骤操作 下面的连接说明.

🌐 将您的聊天机器人连接到MCP服务器

使用托管端点 https://mcp.data.gouv.fr/mcp (推荐)。如果您是自主机,请交换您自己的URL。

MCP服务器配置取决于您的客户端。为您的客户端使用适当的配置格式:

万物皆可LLM | ChatGPT | 克劳德代码 | 克劳德桌面版 | 光标 | Gemini CLI | 拥抱聊天 | IBM Bob | Kiro命令行界面 | 开发 IDE | Le Chat(米斯特拉尔) | 米斯特拉尔·维贝 | OpenCode | VS Code | 帆板运动

万物皆可LLM

  1. 找到 anythingllm_mcp_servers.json AnythingLLM存储插件目录中的文件:

- Linux: ~/.config/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json - MacOS: ~/Library/Application Support/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json - 视窗: C:\Users\\AppData\Roaming\anythingllm-desktop\storage\plugins\anythingllm_mcp_servers.json

  1. 添加以下配置:
{
  "mcpServers": {
    "datagouv": {
      "type": "streamable",
      "url": "https://mcp.data.gouv.fr/mcp"
    }
  }
}

有关更多详细信息,请参阅 LLM MCP文件.

ChatGPT

*仅适用于付费计划(Plus、Pro、Team和Enterprise)。*

  1. 访问设置:在浏览器中打开ChatGPT,转到 Settings那么 Apps and connectors.
  2. 启用开发模式:打开 Advanced settings 并启用 开发者模式.
  3. 添加连接器:返回 Settings > Connectors > Browse connectors 然后单击 添加新连接器.
  4. 配置连接器:将URL设置为 https://mcp.data.gouv.fr/mcp 并保存以激活工具。

克劳德代码

使用 claude mcp 添加MCP服务器的命令:

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

克劳德桌面版

将以下内容添加到您的Claude Desktop配置文件中(通常 ~/.config/Claude/claude_desktop_config.json 在Linux上, ~/Library/Application Support/Claude/claude_desktop_config.json 在MacOS上,或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):

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

Windows上的克劳德桌面: 如果服务器出现在列表中但从未连接(没有握手,缺少工具),Claude可能正在使用其内置的Node.js运行时,该运行时看不到随系统安装的包 npm (包括全球 mcp-remote).集 isUsingBuiltInNodeForMcpfalse 相同的配置文件,因此 npx 使用已安装的Node,然后重新启动Claude Desktop:

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

问题#69 作为背景。

光标

Cursor通过其设置支持MCP服务器。要配置服务器,请执行以下操作:

  1. 打开光标设置
  2. 搜索“MCP”或“模型上下文协议”
  3. 添加具有以下配置的新MCP服务器:
{
  "mcpServers": {
    "datagouv": {
      "url": "https://mcp.data.gouv.fr/mcp",
      "transport": "http"
    }
  }
}

Gemini CLI

将以下内容添加到您的 ~/.gemini/settings.json 文件(Linux: ~/.gemini/settings.json,MacOS: ~/.gemini/settings.json,Windows: %USERPROFILE%\.gemini\settings.json):

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

拥抱聊天

  1. 访问设置: 在聊天界面中,单击+图标,选择 MCP Servers,然后单击 Manage MCP Servers.
  2. 添加服务器: 点击+ Add Server 服务器管理窗口中的按钮。
  3. 配置服务器: 输入a 服务器名称 (例如,“Data Gouv”)并设置 服务器URLhttps://mcp.data.gouv.fr/mcp。单击 Add Server 为了拯救。
  4. 验证连接: 点击 Health Check 新服务器卡上的按钮,确认其显示为 连接。确保已激活切换以使用聊天中的工具。

IBM Bob

IBM Bob通过其设置支持MCP服务器。要配置服务器,请执行以下操作:

  1. 单击Bob面板中的设置图标。
  2. 选择MCP选项卡。
  3. 单击相应的按钮:
  • 编辑全局MCP:打开全局 mcp_settings.json 文件
  • 编辑项目MCP:打开特定于项目的 .bob/mcp.json 文件(如果不存在,则由Bob创建)

这两个文件都使用JSON格式,其中mcpServers对象包含命名服务器配置。

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

Kiro命令行界面

添加以下内容 ~/.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"
    }
  }
}

开发 IDE

将以下内容添加到Kiro MCP配置文件中(.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"
    }
  }
}

Le Chat(米斯特拉尔)

*适用于所有计划,包括免费。*

  1. 转到连接器:在浏览器中打开Mistral,然后转到 Intelligence > Connectors.
  2. 添加自定义连接器:单击 Add connector > Custom MCP Connector,给它起个名字(例如 DataGouv),并将服务器URL设置为 https://mcp.data.gouv.fr/mcp.
  3. 无身份验证:禁用身份验证。
  4. 创建:单击 创建.

Mistral Vibe命令行界面

编辑您的Vibe配置(默认:Linux: ~/.vibe/config.toml,MacOS: ~/.vibe/config.toml,Windows: %USERPROFILE%\.vibe\config.toml)并添加MCP服务器:

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

请参阅官方文档中的完整Vibe MCP选项: MCP服务器配置.

OpenCode

增添 opencode.json (例如。 ~/.config/opencode/opencode.json 或您的项目根)。远程服务器使用顶级 mcp 对象与 type: "remote"。参见 OpenCode MCP服务器.

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

VS Code

将以下内容添加到您的VS代码中 mcp.json 文件(Linux: ~/.config/Code/User/mcp.json,MacOS: ~/Library/Application Support/Code/User/mcp.json,Windows: %APPDATA%\Code\User\mcp.json).跑 MCP:打开用户配置 从命令选项板打开它。

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

帆板运动

将以下内容添加到您的 ~/.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"
      ]
    }
  }
}

注:

  • 托管端点为 https://mcp.data.gouv.fr/mcp。如果您自己运行服务器,请将其替换为您自己的URL(有关默认的本地终结点,请参阅下面的“本地运行”)。
  • 此MCP服务器目前仅公开只读工具,因此不需要API密钥。

🖥️ 在本地运行

1.运行MCP服务器

开始之前,克隆此存储库并浏览其中:

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

推荐的设置需要Docker。通过安装 或任何兼容的Docker引擎。

🐳 使用Docker(推荐)

# 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

环境变量:

  • MCP_HOST:要绑定的主机(默认为 0.0.0.0).吃起来 127.0.0.1 本地开发遵循MCP安全最佳实践。
  • MCP_PORT:MCP HTTP服务器的端口(默认为 8000 未设置时)。
  • MCP_ENV:向Sentry报告的环境名称(默认为 local 未设置时)。明确设置为 prod, preprod,或 demo 在您的部署中。
  • DATAGOUV_API_ENV: prod (默认)或 demo。这控制了它使用来自哪个data.gov.fr环境的数据(https://www.data.gouv.fr或https://demo.data.gouv.fr).默认情况下,MCP服务器与生产数据.gouv.fr.Set进行通信 DATAGOUV_API_ENV=demo 如果你特别需要演示环境。
  • LOG_LEVEL:应用程序的Python日志级别(默认为 INFO).常见值: DEBUG, INFO, WARNING, ERROR, CRITICAL.
  • SENTRY_DSN:启用错误和性能监视的哨兵DSN。未设置时禁用监视。
  • SENTRY_SAMPLE_RATE:哨兵痕迹和轮廓的采样率(浮动 0.01.0,默认为 1.0).

⚙️ 手动安装

你需要 紫外线 安装依赖项并运行服务器。

  1. 安装依赖项
uv sync
  1. 准备环境文件

复制 示例环境文件 创建自己的 .env 文件:

cp .env.example .env

然后可选择编辑 .env 并设置对您的跑步很重要的变量:

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  # Allowed values: demo | prod (defaults to prod when unset)
LOG_LEVEL=INFO  # Python log level (default: INFO)

使用您喜欢的方法加载变量,例如:

set -a && source .env && set +a
  1. 启动HTTP MCP服务器
uv run main.py

2.将您的聊天机器人连接到本地MCP服务器

按照中的步骤进行操作 将您的聊天机器人连接到MCP服务器 只需将托管URL替换为本地端点(默认值: http://127.0.0.1:${MCP_PORT:-8000}/mcp).

🚚 运输支持

MCP服务器是使用 MCP服务器和客户端的官方Python SDK 并使用 仅支持流式HTTP传输.

不支持STDIO和SSE.

📋 可用端点

可流式HTTP传输(符合标准):

  • POST /mcp -JSON-RPC消息(客户端→ 服务器)
  • GET /health -健康检查端点:运行完整的MCP握手和工具调用。退货 {"status":"ok",...} 如果健康,则使用HTTP 200,或 {"status":"mcp_unavailable"} 如果MCP栈没有正确响应,则使用HTTP 503。

🛠️ 可用工具

MCP服务器提供了与平台上编目的data.gov.fr数据集和第三方API进行交互的工具。

注: data.gouv.fr通过HTTP在 dataservices 资源路径;它与data.gouv.fr自己的内部API(主/表格/度量)是分开的,这些API为这个MCP服务器提供动力。

数据集(静态数据文件)

  • search_datasets -按关键字搜索数据集。返回包含元数据(标题、描述、组织、标签、资源计数)的数据集。

参数: query (必填), page (可选,默认值:1), page_size (可选,默认值:20,最大值:100)

  • search_organizations -在data.gov.fr上列出或搜索发布组织。返回修剪后的行(id、name、slug、首字母缩略词、徽章、指标、URL)。

参数: query (可选;AND风格关键字搜索;省略或留空浏览), page (可选,默认值:1), page_size (可选,默认值:20,最大值:100), sort (可选;例如。 datasets, -datasets), badge (可选;例如。 public-service, certified, association, company, local-authority), name (可选的精确名称过滤器), business_number_id (可选)。

  • get_dataset_info -获取特定数据集的详细信息(元数据、组织、标签、日期、许可证等)。

参数: dataset_id (必填)

  • list_dataset_resources -列出数据集中的所有资源(文件)及其元数据(格式、大小、类型、URL)。

参数: dataset_id (必填)

  • get_resource_info -获取有关特定资源的详细信息(格式、大小、MIME类型、URL、数据集关联、表格API可用性)。

参数: resource_id (必填)

  • query_resource_data -通过表格API查询特定资源中的数据。从资源中获取行以回答问题。

参数: resource_id (必填), page (可选,默认值:1), page_size (可选,默认值:20,最大值:200)

注:推荐工作流程:1)使用 search_datasets 要查找数据集,2)使用 list_dataset_resources 要查看可用资源,3)使用 query_resource_data 默认情况下 page_size (20) 预览数据结构。对于小数据集(\1000行),继续分页或使用 get_resource_info 检索原始文件URL并直接获取。适用于API表格大小限制(CSV≤100 MB,XLSX≤12.5 MB)内的CSV/XLS资源。

第三方API

这些工具使用data.gouv.fr下的HTTP路径 dataservices;工具和参数名称与API匹配(search_dataservices, dataservice_id).

  • search_dataservices -按关键字搜索data.gov.fr上编目的第三方API。返回包含元数据的条目(标题、说明、组织、基本API URL、标记)。

参数: query (必填), page (可选,默认值:1), page_size (可选,默认值:20,最大值:100)

  • get_dataservice_info -获取第三方API的详细元数据(标题、说明、组织、基础API URL、OpenAPI规范URL、许可证、日期、相关数据集)。

参数: dataservice_id (必需)-与data.gouv.fr API和 id 从搜索结果中。

  • get_dataservice_openapi_spec -获取并总结第三方API的OpenAPI/Swagger规范。返回可用端点及其参数的简明概述。

参数: dataservice_id (必填)

注:推荐工作流程:1)使用 search_dataservices 查找API,2)使用 get_dataservice_info 对于元数据和文档URL,3)使用 get_dataservice_openapi_spec 对于端点和参数,4)使用 base_api_url 根据规范。

指标

  • get_metrics -获取数据集和/或资源的指标(访问量、下载量)。

参数: dataset_id (可选), resource_id (可选), limit (可选,默认值:12,最大值:100)

返回每月的统计数据,包括访问量和下载量,按月份降序排列(最近的先到)。至少一个 dataset_idresource_id 必须提供。 注: 此工具仅适用于生产环境(DATAGOUV_API_ENV=prod).度量API没有演示/预编写环境。

🧪 测试

✅ 使用pytest进行自动化测试

使用pytest运行测试(这些包括辅助模块;MCP服务器接线最好通过MCP检查器进行):

# Run all tests
uv run pytest

# Run with verbose output
uv run pytest -v

# Run specific test file
uv run pytest tests/test_tabular_api.py

# Run with custom resource ID
RESOURCE_ID=3b6b2281-b9d9-4959-ae9d-c2c166dff118 uv run pytest tests/test_tabular_api.py

# Run with prod environment
DATAGOUV_API_ENV=prod uv run pytest

🔥 压力测试

压力测试向正在运行的MCP服务器发送许多并发请求。它们需要一个正在运行的服务器并发出真正的HTTP请求,因此它们被排除在默认设置之外 pytest 跑。

# Start the server first, then in another terminal:
uv run pytest -m stress

目前包括一个测试,该测试将正常请求与突然的客户端TCP断开连接混合在一起,验证服务器在中断的情况下保持健康并继续服务。它使用 MCP_PORT (默认值: 8000)连接到本地服务器。

🩺 从CLI运行运行状况检查

运行完整的MCP握手和呼叫 search_datasets 验证端到端堆栈健康状况。需要一个正在运行的服务器,并且被排除在默认设置之外 pytest 跑。

# Start the server first, then in another terminal:
uv run pytest -m health_check

🛠️ 本地工具测试脚本

scripts/call_tool.py 允许您直接调用任何MCP工具,而无需手动管理curl握手。需要正在运行的服务器。

# Start the server first, then in another terminal:
python scripts/call_tool.py search_datasets '{"query": "IRVE"}'
python scripts/call_tool.py get_resource_info '{"resource_id": ""}'

🔍 使用MCP检查器进行交互式测试

使用官方 MCP检查员 以交互方式测试服务器工具和资源。

先决条件:

  • Node.js与 npx 可用的

步骤:

  1. 启动MCP服务器(见上文)
  2. 在另一个终端中,启动检查器:
   npx @modelcontextprotocol/inspector --http-url "http://127.0.0.1:${MCP_PORT}/mcp"

如果您在另一个主机/端口上暴露了服务器,请调整URL。

🤝 贡献

我们欢迎捐款!为了保持项目的稳定和审查的可管理性,请在提交前遵守以下规则:

  • 人工审查和问责制: 问题和拉取请求 不得是未经审查的原始AI输出。您必须已经阅读、完全理解并(对于代码)测试了您提交的内容。 通过打开问题或拉取请求,您可以证明您可以在审查中解释和辩护,而无需依赖人工智能助手。
  • 保持小: 我们严格遵守 1个特征=1个PR 工作流程。
  • 常规提交: 使用 约定式提交 格式为 git提交消息PR标题 (例如。 feat: add dataset search, fix: handle empty API response).有关允许的类型、范围和中断更改标记,请参阅规范。

我们使用标准的审查和部署流程:

  1. 提交PR: 通过Pull Request提出您的更改 main 支。
  2. 持续集成: CI在拉取请求上自动运行。 所有必需的检查必须通过 在合并PR之前(测试、linting、格式化和类型检查)。在本地运行相同的检查——按 测试,和lint/格式/类型通过 代码过滤和格式化预提交挂钩--以避免意外的CI失败。
  3. 评审: 所有PR在合并之前必须经过维护人员的审查和批准。
  4. 部署过程: 一旦合并到 main,维护人员定期部署更改 生产前的 在更广泛的发布之前进行更多的测试和验证。

🧹 代码抓取和格式化

本项目遵循PEP 8风格指南,使用 拉夫 用于修剪和格式化,以及 吨年 用于类型检查。

手动运行这些命令或 安装预提交挂钩 在提交捐款之前需要。

# Lint (including import sorting) and format code
uv run ruff check --fix && uv run ruff format

# Type check (ty)
uv run ty check

🔗 预提交钩子

此存储库使用 预承诺 在每次提交之前勾选哪个lint和格式化代码。强烈建议安装预提交挂钩,以便检查自动运行。

安装预提交挂钩:

uv run pre-commit install

预提交钩子会自动执行以下操作:

  • 检查YAML语法
  • 修复文件结尾问题
  • 删除尾随空格
  • 检查大文件
  • 运行Ruff linting和格式化

🏷️ 发布和版本控制

先决条件: 必须安装并验证,并且您必须在主分支上拥有干净的工作目录。

# Create a new release
./tag_version.sh 

# Example
./tag_version.sh 2.5.0

# Dry run to see what would happen
./tag_version.sh 2.5.0 --dry-run

脚本会自动执行以下操作:

  • 提取自上次标记以来的提交,并将其格式化为CHANGELOG.md
  • 识别突破性更改(提交 !: 在主题中)
  • 创建一个git标签并将其推送到远程存储库
  • 创建包含变更日志内容的GitHub版本

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

开放数据PythonClaude数据分析数据集搜索本地部署AI集成数据可视化

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP