项目简介

Data Commons MCP 服务端是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在将全球公共数据平台 Data Commons 的丰富数据和分析能力,以 LLM 友好的方式暴露给 LLM 客户端。它通过一系列“工具”函数,允许 LLM 检索统计数据、验证地理区域类型、搜索变量和主题,并生成可直接用于数据可视化的图表配置。

主要功能点

  • 数据查询: 获取 Data Commons 中指定统计变量在特定地点或其子地点的数据观测值。
  • 地点类型验证: 检查某个父地点下,是否存在特定类型的子地点(如国家下的州、省下的市等)。
  • 变量与主题发现: 搜索和列出 Data Commons 中可用的统计变量和相关主题。
  • 图表配置生成: 根据查询参数,生成 Data Commons 前端组件所需的图表配置,支持多种图表类型如条形图、折线图、地图、饼图、仪表盘等。
  • 多传输协议支持: 可通过 HTTP (SSE/Streamable HTTP) 或标准输入/输出 (Stdio) 模式启动服务器。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/datacommonsorg/agent-toolkit.git
    cd agent-toolkit/packages/datacommons-mcp
  2. 创建并激活虚拟环境 (推荐):
    python -m venv venv
    source venv/bin/activate  # macOS/Linux
    # 或者 for Windows: .\venv\Scripts\activate
  3. 安装依赖:
    pip install -e .
  4. 配置API密钥: 在 'packages/datacommons-mcp' 目录下创建 '.env' 文件,并添加 Data Commons API 密钥。
    DC_API_KEY="YOUR_DATA_COMMONS_API_KEY"
    请将 'YOUR_DATA_COMMONS_API_KEY' 替换为你的实际 Data Commons API 密钥。

服务器配置

MCP 客户端通过 JSON 格式的配置信息连接到 MCP 服务器。以下是 Data Commons MCP 服务端可能的配置示例(请选择合适的配置项):

{
  "server_name": "Data Commons MCP Server",
  "command": "datacommons-mcp",
  "args": [
    "serve",
    "stdio"
  ],
  "comment": "通过标准输入输出(Stdio)模式启动MCP服务器,适用于本地开发或集成。"
}

或者,如果您希望通过 HTTP 模式启动:

{
  "server_name": "Data Commons MCP Server (HTTP)",
  "command": "datacommons-mcp",
  "args": [
    "serve",
    "http",
    "--host",
    "127.0.0.1",
    "--port",
    "8080"
  ],
  "comment": "通过 HTTP (SSE) 模式启动MCP服务器,监听127.0.0.1:8080端口。此模式下LLM客户端通过HTTP请求交互。"
}

或者,如果您希望通过 Streamable HTTP 模式启动:

{
  "server_name": "Data Commons MCP Server (Streamable HTTP)",
  "command": "datacommons-mcp",
  "args": [
    "serve",
    "streamable_http",
    "--host",
    "127.0.0.1",
    "--port",
    "8080"
  ],
  "comment": "通过 Streamable HTTP 模式启动MCP服务器,监听127.0.0.1:8080端口。此模式下LLM客户端通过HTTP请求交互,支持流式响应。"
}
  • 'server_name': 服务器的名称,用于标识。
  • 'command': 启动 MCP 服务器的可执行命令。这里是 'datacommons-mcp',这是通过 'pip install -e .' 安装后在环境中可用的命令。
  • 'args': 传递给 'command' 的命令行参数列表。
    • '"serve", "stdio"': 以标准输入/输出模式运行服务器。这是最常见的本地开发和集成模式。
    • '"serve", "http", "--host", "127.0.0.1", "--port", "8080"': 以 HTTP (SSE) 模式运行服务器,监听指定主机和端口。LLM 客户端需要能够通过 HTTP 访问此地址。
    • '"serve", "streamable_http", "--host", "127.0.0.1", "--port", "8080"': 以 Streamable HTTP 模式运行服务器,监听指定主机和端口。类似于 HTTP 模式,但支持流式传输。
  • 'comment': 配置的说明或注释,帮助理解其用途。

基本使用方法

通过上述配置启动 MCP 服务器后,LLM 客户端即可通过 MCP 协议(如 JSON-RPC over Stdio 或 HTTP)与该服务器通信,并调用其公开的工具函数。例如,LLM 客户端可以调用 'get_observations' 工具来获取特定变量的观测数据,或者调用 'get_datacommons_chart_config' 来获取图表配置。具体如何集成和调用取决于您使用的 LLM 客户端框架和 MCP 库。

信息

分类

网页与API