Eurostat数据服务器

一个MCP服务器,使LLMs和AI聊天机器人能够搜索、探索和检索来自欧盟统计局Eurostat的官方统计数据。

  • by alexwall1
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 alexwall1/eurostat-mcp

使用说明

📊 欧盟统计局MCP服务器

MCP服务器,使LLM和AI聊天机器人能够搜索、探索和检索官方统计数据 欧盟统计局 --欧盟统计局。

封面 数千个数据集 涵盖所有欧盟成员国的经济与金融、人口与人口统计、环境、贸易、交通、能源、教育、卫生等领域。


概述

欧盟统计局MCP服务器与欧盟统计局的公共API无缝集成,使LLM能够访问:

  • 经济与金融:国内生产总值、通货膨胀、政府债务、国民账户、商业统计
  • 人口与人口统计:人口规模、出生、死亡、移民、预期寿命
  • 环境:温室气体排放、废物管理、能源消耗、可再生能源
  • 劳动力市场就业、失业率、工资、工作条件
  • 贸易:进口、出口、国际收支、国际货物和服务贸易
  • 运输:客运和货运、道路安全
  • 教育:学生统计、教育支出、终身学习
  • 健康:医疗保健支出、死因、医院资源

数据范围从20世纪50年代到现在,每月、每季度和每年都会定期更新。


主要特点

特性 描述
全面访问 涵盖欧盟所有统计领域的数千个数据集
智能搜索 欧盟统计局目录全文搜索
结构发现 查询前探索数据集维度、代码和标签
灵活过滤 按地理、时间、单位和任何特定于数据集的维度进行筛选
地理代码解析 国家/地区名称的模糊匹配(“Osterreich”→ AT)
预览模式 在提交大型查询之前快速预览数据集
频率限制 遵守欧盟统计局API的内置速率限制
多语言 英文、法文或德文标签

🚀 快速开始

选项1:远程URL(无需安装)

直接使用托管服务器——适用于所有兼容MCP的客户端。

服务器现在支持 两种运输方式:

推荐:流式HTTP(POST/mcp)

与ChatGPT、Claude.ai和大多数MCP客户端的最佳兼容性:

{
  "mcpServers": {
    "eurostat": {
      "type": "http",
      "url": "https://eurostat-mcp.onrender.com/mcp"
    }
  }
}

传统:服务器发送事件(GET/sse)

对于需要SSE的旧MCP客户端:

{
  "mcpServers": {
    "eurostat": {
      "type": "sse",
      "url": "https://eurostat-mcp.onrender.com/sse"
    }
  }
}
客户端 推荐URL 传输
ChatGPT https://eurostat-mcp.onrender.com/mcp HTTP(POST)
Claude.ai https://eurostat-mcp.onrender.com/mcp HTTP(POST)
克劳德桌面 使用stdio(请参阅选项2) stdio
克劳德代码 使用stdio(请参阅选项2) stdio
定制客户 https://eurostat-mcp.onrender.com/mcp HTTP(POST)

无需身份验证。 所有来源都启用了CORS。


选项2:本地安装(Node.js)

对于Claude Code、终端客户端或自托管:

git clone https://github.com/your-username/eurostat-mcp.git
cd eurostat-mcp
npm install
npm run build

克劳德代码(CLI)

claude mcp add eurostat-mcp -- node /path/to/eurostat-mcp/dist/index.js --stdio

MCP配置(stdio)

增添 ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "eurostat": {
      "command": "node",
      "args": ["/path/to/eurostat-mcp/dist/index.js", "--stdio"],
      "type": "stdio"
    }
  }
}

运行自己的HTTP服务器

npm run start        # Starts on port 3000
# or
PORT=8080 npm run start

选项3:Docker

docker build -t eurostat-mcp .
docker run -p 3000:3000 eurostat-mcp

工具

1. search_datasets

按关键字在欧盟统计局数据库中搜索数据集。

search_datasets(query: "GDP", lang: "en", limit: 10)

2. get_dataset_structure

获取数据集的维度和可能的值/代码。

get_dataset_structure(datasetCode: "NAMA_10_GDP")

3. get_dataset_data

使用任何维度的可选过滤器获取数据。

get_dataset_data(
  datasetCode: "NAMA_10_GDP",
  filters: {
    "geo": "DE",
    "unit": "CP_MEUR",
    "na_item": "B1GQ",
    "sinceTimePeriod": "2018"
  }
)

4. preview_data

快速预览--仅获取最新时间段。

preview_data(datasetCode: "NAMA_10_GDP")

5. find_geo_code

将国家/地区名称解析为其欧盟统计局代码。

find_geo_code(query: "Germany")
// Returns: DE — Germany (country)

find_geo_code(query: "Bayern")
// Returns: DE2 — Bayern (nuts1)

最佳实践

问题 解决方案
大数据集? 始终使用 preview_data 首先进行测试
数据太多? 使用 lastTimePeriod=5 或 sinceTimePeriod/untilTimePeriod
错误的代码? 呼叫 get_dataset_structure 第一,不同数据集的代码不同
不知道数据集代码? 使用 search_datasets 带关键字
不确定国家代码? 使用 find_geo_code 带有国家名称
不确定单位? 检查中的尺寸值 get_dataset_structure

例子

德国和法国的国内生产总值(2018-2023)

1. search_datasets(query: "GDP main components")
   → finds NAMA_10_GDP

2. get_dataset_structure(datasetCode: "NAMA_10_GDP")
   → reveals dimensions: freq, unit, na_item, geo, TIME_PERIOD

3. get_dataset_data(
     datasetCode: "NAMA_10_GDP",
     filters: {
       "geo": ["DE", "FR"],
       "unit": "CP_MEUR",
       "na_item": "B1GQ",
       "sinceTimePeriod": "2018",
       "untilTimePeriod": "2023"
     }
   )

欧盟的失业率

1. search_datasets(query: "unemployment rate monthly")
   → finds UNE_RT_M

2. get_dataset_data(
     datasetCode: "UNE_RT_M",
     filters: {
       "geo": "EU27_2020",
       "s_adj": "SA",
       "age": "TOTAL",
       "unit": "PC_ACT",
       "sex": "T",
       "lastTimePeriod": "12"
     }
   )

渲染部署

该项目包括 render.yaml 对于一键部署:

  1. 将此存储库推送到GitHub
  2. 将您的GitHub仓库连接到 渲染
  3. 渲染将自动检测 render.yaml 并部署
  4. 您的MCP服务器将在以下网址提供:
    • HTTP传输(推荐): https://your-service.onrender.com/mcp
    • 苏格兰和南方能源公司运输(传统): https://your-service.onrender.com/sse

可用端点

部署后,您的服务器将公开:

端点 方法 目的
/mcp 职位 主要运输 -JSON-RPC 2.0请求(建议用于ChatGPT,Claude.ai)
/mcp GET 服务器元数据和功能
/sse GET 传统SSE传输(持久连接)
/messages POST 传统SSE消息端点
/health GET 健康检查
/ GET 服务器信息

从ChatGPT连接

  1. 转到ChatGPT设置→ Beta功能→ 启用“操作”
  2. 使用URL添加新的MCP服务器: https://your-service.onrender.com/mcp
  3. 服务器将自动发现工具和功能

API 参考

此服务器使用以下欧盟统计局API:

  • API统计 (JSON stat 2.0)-用于数据检索
  • SDMX 2.1 API --用于数据集结构和元数据
  • API目录 --用于数据集发现(目录)

更多信息: 欧盟统计局API文件


资源

  • 欧盟统计局数据库: https://ec.europa.eu/eurostat/web/main/data/database
  • 数据浏览器: https://ec.europa.eu/eurostat/databrowser/
  • API 文档: https://ec.europa.eu/eurostat/web/user-guides/data-browser/api-data-access
  • MCP协议: https://modelcontextprotocol.io/

致谢

作者亚历山大·沃尔wall.alexander@gmail.com

许可证

GNU通用公共许可证v3.0