你是否曾经需要快速查询一家法国公司的公开信息,比如它的注册地址、高管名单或主营业务,但却被繁琐的行政网站搜索流程搞得头昏脑涨?或者你希望把这个查询能力集成到你自己的AI应用里,让数据获取变得像聊天一样自然?

datagouv-mcp-server 正是为了解决这个问题而诞生的。它是一个基于模型上下文协议(MCP)的服务器,专门用于与法国公共数据平台 Data.gouv.fr 的 API 进行交互。通过这个项目,你可以让支持 MCP 的 AI 助手(如 Claude)直接替你查询法国企业的实时工商信息,将复杂的 API 调用转化为简单的对话。

项目基本信息

信息项详情
项目名称datagouv-mcp-server
GitHub地址https://github.com/csonigo/datagouv-mcp-server
项目描述MCP server for interacting with Data.gouv.fr API
作者csonigo
开源协议Unknown
开源状态公开状态
LanguagesTypeScript
支持平台Windows / macOS / Linux / Web
最后更新2026-02-26

一、项目介绍

datagouv-mcp-server 是一个轻量级的 MCP 服务器,它封装了 Data.gouv.fr 平台提供的“企业搜索”(API Recherche Entreprises)接口。目前,这个服务器专注于一个非常实用的功能:通过关键词搜索法国公司信息

你只需要给 AI 一个查询词——可以是公司名称、老板名字、或者一个地址——这个服务器就会去调用官方的企业数据库,然后返回这家公司最新的公开信息,包括官方名称、注册地址、主要经营活动(NAF代码)、以及管理层名单等。

该项目使用 TypeScript 编写,并采用现代化的 HTTP + SSE(Server-Sent Events)传输方式,符合 MCP 协议的最新规范。这意味着它不仅可以被本地运行,理论上也可以部署为远程服务,通过网络供多个 AI 客户端调用。

二、核心优势

专注法国企业数据,即查即用
它直接对接法国政府官方的企业数据 API,数据权威、更新及时。你无需再研究官方 API 的鉴权方式和数据结构,只需要一个简单的查询词,就可以获得结构化的企业信息。

基于现代 MCP 协议,支持远程连接
与许多基于标准输入输出的 MCP 服务器不同,这个项目采用了 HTTP + SSE 的传输方式。这使得它可以作为一个独立的网络服务运行,其他设备或 AI 客户端可以通过 URL 来访问它,而不仅仅是和 AI 桌面应用运行在同一台机器上。

TypeScript 编写,类型安全
项目完全由 TypeScript 编写,这意味着如果你打算阅读或修改源码,你将获得完善的类型提示,大大降低了二次开发的心智负担。

社区驱动,有官方替代
有趣的是,作者在项目文档中明确提示这个服务器已弃用,并推荐用户转向官方维护的 Data.gouv MCP 服务器。这从侧面说明了这个项目的价值——它证明了这类工具的需求,并推动了官方解决方案的出现。即便作为学习和参考,它也是一个极佳的范例。

三、适用场景

  • 商业尽调辅助:在与法国公司进行合作前,快速查询对方的工商信息,识别基本的经营风险。
  • 销售与市场分析:批量查询潜在客户公司的行业代码(NAF),从而对客户进行行业分类。
  • 自动化合规流程:将企业信息查询集成到公司的内部审核系统或 KYC(了解你的客户)流程中,自动获取并验证客户信息。
  • 开发个人助手:为你的 AI 聊天机器人增加一个“查询法国企业”的工具,让它在日常对话中能提供更实用的信息。
  • 学习 MCP 服务开发:这个项目代码量不大,结构清晰,是学习如何用 TypeScript 构建一个基于 HTTP/SSE 的 MCP 服务器的绝佳范例。

四、安装教程

根据项目文档,你需要 Node.js 22(即 LTS 的 Jod 版本)和 pnpm 10 包管理器。

第一步:安装 Node.js 和 pnpm

确保你的系统有 Node.js 22 或更高版本。你可以访问 nodejs.org 下载安装。安装完 Node.js 后,打开终端执行以下命令全局安装 pnpm:

npm install -g pnpm

第二步:克隆项目代码

选择一个目录,克隆仓库并进入:

git clone https://github.com/csonigo/datagouv-mcp-server.git
cd datagouv-mcp-server

第三步:安装依赖

使用 pnpm 安装项目依赖:

pnpm install

这个命令会根据 pnpm-lock.yaml 文件精确安装所有需要的包。

第四步:启动服务器

pnpm run dev

如果一切顺利,你会看到类似 Server started on http://localhost:3001 的日志输出,表示服务器已在本地 3001 端口运行。

五、使用示例

服务器运行起来后,你需要配置一个 MCP 客户端(例如 Claude for Desktop,或者任何支持 SSE 连接的 MCP 客户端)来连接它。

1. 配置 MCP 客户端

在你的 MCP 客户端配置文件中(例如 Claude Desktop 的 claude_desktop_config.json),添加如下条目。注意,这里的关键是使用 url 字段,而不是 command 字段。

{
  "mcpServers": {
    "data-gouv": {
      "url": "http://localhost:3001/sse"
    }
  }
}

保存配置并重启你的客户端。

2. 在 AI 中查询公司

连接成功后,你就可以开始对话了。这个服务器目前只提供一个工具:search-company

  • 查询示例 1:按公司名称搜索

    输入:查询一下名为“米其林”的法国公司信息。

    AI 会调用工具,返回米其林公司的注册名称、地址、SIREN号、NAF代码等详细信息。

  • 查询示例 2:按高管姓名搜索

    输入:帮我找找伯纳德·阿尔诺关联的公司。

    虽然结果可能不止一家,但 AI 会列出查询到的公司列表,你可以进一步追问具体哪一家。

  • 查询示例 3:获取精确的行业代码

    输入:搜索“赛诺菲”,并告诉我它的主营业务代码是什么。

    AI 会从返回的数据里提取 NAF 代码,比如 “21.20Z”(制药)。

六、常见问题

问题1:运行 pnpm run dev 后,浏览器无法打开 localhost:3001?

解决方案:这个服务器是一个 JSON API 服务,并不是 Web 页面。它没有可视界面。你可以用浏览器访问 http://localhost:3001/sse,如果看到类似 Cannot GET 或者其他连接相关的错误,反而是正常的,因为 SSE 连接需要特定的 header。真正的测试是看终端日志是否有错误。或者,你可以使用 MCP Inspector 来调试。

问题2:我该如何调试或发送查询?

解决方案:该项目提供了内置的 MCP Inspector。在项目根目录下运行:

pnpm run inspector

然后根据提示访问 http://localhost:5173。这是一个可视化的调试工具,你可以在这里手动测试 search-company 工具,输入参数并查看返回结果。

问题3:为什么项目作者说它已弃用?我还能用吗?

解决方案:作者指出这个项目已被弃用,并推荐使用官方的 Data.gouv MCP 服务器。这意味着官方版本会有更完善的功能和长期的维护。不过,这个项目目前依然是可用的,尤其适合学习 MCP 服务器的开发。如果你在生产环境中使用,建议转向官方版本。

问题4:搜索中文公司名称没有结果?

解决方案:这个 API 是为查询法国公司设计的,所以请使用公司法文名称、注册号或相关法人/地址的法文/英文拼写进行搜索。中文名大概率无法找到对应数据。

七、总结

datagouv-mcp-server 是一个小而精的项目,它精准地解决了一个特定问题:让 AI 能够轻松查询法国公司的公开数据。尽管作者已经声明项目弃用并推荐官方版本,但这丝毫不影响它在技术示范和教学方面的价值。

通过研究这个项目,你可以学到:

  • 如何使用 TypeScript 构建一个基于 HTTP 和 SSE 传输的 MCP 服务器。
  • 如何封装一个第三方 REST API 并通过 MCP 工具暴露给 AI。
  • 现代 Node.js 项目(使用 pnpm)的工程化配置。

对于有查询法国公司信息需求的用户,这个项目(或其官方后继者)是一个效率神器。对于 MCP 开发者,它是一个极佳的起步参考。无论哪种身份,都值得你花几分钟尝试一下。

标签: 搜索与检索

已有 36 条评论

    1. dominiquel dominiquel

      The pnpm run dev command also watches for file changes. Great for development.

    2. francoisb francoisb

      Would be awesome to combine this with a mapping tool to show company locations.

    3. beatricec beatricec

      Simple question: does it support English queries? Or only French keywords?

    4. marcellin marcellin

      Yes, company names in English or Latin characters work fine. Try "Renault".

    5. alexandrel alexandrel

      This tutorial made me realize how easy it is to wrap an API with MCP.