项目简介
Data Commons MCP 服务端是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在将全球公共数据平台 Data Commons 的丰富数据和分析能力,以 LLM 友好的方式暴露给 LLM 客户端。它通过一系列“工具”函数,允许 LLM 检索统计数据、验证地理区域类型、搜索变量和主题,并生成可直接用于数据可视化的图表配置。
主要功能点
- 数据查询: 获取 Data Commons 中指定统计变量在特定地点或其子地点的数据观测值。
- 地点类型验证: 检查某个父地点下,是否存在特定类型的子地点(如国家下的州、省下的市等)。
- 变量与主题发现: 搜索和列出 Data Commons 中可用的统计变量和相关主题。
- 图表配置生成: 根据查询参数,生成 Data Commons 前端组件所需的图表配置,支持多种图表类型如条形图、折线图、地图、饼图、仪表盘等。
- 多传输协议支持: 可通过 HTTP (SSE/Streamable HTTP) 或标准输入/输出 (Stdio) 模式启动服务器。
安装步骤
- 克隆仓库:
git clone https://github.com/datacommonsorg/agent-toolkit.git cd agent-toolkit/packages/datacommons-mcp - 创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # macOS/Linux # 或者 for Windows: .\venv\Scripts\activate - 安装依赖:
pip install -e . - 配置API密钥:
在 'packages/datacommons-mcp' 目录下创建 '.env' 文件,并添加 Data Commons API 密钥。
请将 'YOUR_DATA_COMMONS_API_KEY' 替换为你的实际 Data Commons API 密钥。DC_API_KEY="YOUR_DATA_COMMONS_API_KEY"
服务器配置
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