数据知识图谱服务器

一个公开统计知识图谱的数据共享服务器,为AI客户端提供统计变量和观测数据的查询与导出功能。

  • by cfdude
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 cfdude/datacommons-mcp

使用说明

数据共享MCP服务器

A. 模型上下文协议 (MCP)服务器,它公开 数据共享 面向人工智能客户端的公共统计知识图 如克劳德桌面、克劳德代码和ChatGPT。

Data Commons是一个开放的知识库,统一了数千个公共数据集 (人口普查、健康、经济、气候等)。此服务器允许 启用MCP的客户端发现正确的统计变量和位置,然后获取实际数据 观察结果——自动将大型结果导出到CSV 有界记忆,即使对于非常 大地域(例如。 所有美国人口普查区),因此它们在其他工具中仍然可用。

这是 cfdude/datacommons-mcp一 经过重新设计的下游分支。它建立在谷歌的数据共享基础上,起源于 数据共享代理工具包,但这个叉子是 不 已发布到PyPI,并在此处独立记录。服务器版本 1.4.0.

两个工具

此服务器恰好公开了两个工具:

工具 它做什么
search_indicators 查找统计变量和主题(以及哪些地方实际上有它们的数据)。 先叫这个 发现有效变量+放置DCID。
get_observations 获取变量+位置的实际统计数据。小结果会在线返回;大型结果导出到CSV/JSON文件(带有数据预览),非常大的地理区域通过位置分片在有界内存中处理。

典型流程: search_indicators 查找DCID→ get_observations 提取数字。 请参阅 参考 对于结构化形状,每个工具都会返回并给出示例提示。

选择您的客户

选择与您将如何运行服务器相匹配的指南:

客户端 它是什么 安装模型 指南
克劳德桌面 桌面应用程序(macOS+Windows) 一键 .mcpb 延伸;在UI中配置API键 docs/claude-desktop.md
克劳德代码 CLI/编码代理 从git或本地克隆自行注册MCP服务器;通过环境变量进行配置 docs/claude-code.md
ChatGPT OpenAI的应用程序(测试版,计划门控) 通过开发人员模式实现远程HTTPS MCP端点 docs/chatgpt.md

适用于每位客户的参考资料 docs/reference.md. 构建扩展本身的维护人员想要 docs/building-the-expension.md.

获取API密钥

每个客户端都需要一个数据共享API密钥。

  1. 创建一个 apikeys.datacommons.org (密钥授权 请求 api.datacommons.org).
  2. 将其作为以下内容提供给服务器 DC_API_KEY --无论是在Claude Desktop扩展UI中,还是作为 Claude Code/HTTP服务的环境变量。

输出如何工作

get_observations 根据结果大小在两种输出模式之间做出决定:

  • 屏幕(内联)。 小结果直接在响应中返回(output_mode: "screen").
  • 文件(导出)。 较大的结果将写入磁盘上的文件(output_mode: "file").而非 原始行,响应携带 file_path, rows_written, file_size_bytes, unique_places_count, format,加上a preview (第一排,这样助理就可以看到 不打开文件的内容),a summary, variable_name,以及 columns.

割接由以下人员控制 DC_SCREEN_ROW_THRESHOLD (默认值 500 行)。导出默认值为 逗号分隔值 (DC_OUTPUT_FORMAT),因此结果直接进入电子表格和数据工具。

大型和超大型数据集(内存受限)

数据共享API无法流式传输或分页,并拒绝过大的请求,因此服务器保持 big导出内存限制在两个自动层中——没有额外的标志:

  • 源自动选择。 大型儿童场所出口(例如。 所有美国县×所有年份)是 每个位置提取为单个主源(自动选择),减少峰值内存~10×(≈1 GB→ ≈150 MB),结果相同。传递显式源以进行精确控制。
  • 放置分片。 查询跨越的地点超过 DC_SHARD_SIZE (例如。 全美人口普查 道,~97k)通过将位置列表分片为多个批次导出,每个批次写入一个CSV 大约是一个分片内存。最大的出口需要几分钟;达到API规模的批次 限制会自动拆分并重试。仅限于上述查询 DC_MAX_PLACES 天花板是 拒绝。
  • 覆盖信号。 如果所选来源没有覆盖所有地方(可能 区域来源的变量),结果 places_missing 报告有多少。

数据血缘

CSV导出包括描述每个系列的来源和出处的数据沿袭标题行。 切换至 DC_INCLUDE_LINEAGE (默认值 真).

多文件导出

设置 DC_MULTI_FILE_EXPORT=true (或通过 multi_file: true 一次通话)写入 主导出旁边的配套元数据文件。默认情况下为关闭。

配置(环境变量)

变量 默认值 描述
DC_API_KEY (必填) 来自的数据共享API密钥 apikeys.datacommons.org.
DC_STORAGE_DIR ~/Documents/datacommons-data 写入导出文件的目录。
DC_OUTPUT_FORMAT csv 导出格式: csv 或 json.
DC_SCREEN_ROW_THRESHOLD 500 内联返回的最大行数;较大的响应导出到文件。
DC_MAX_PLACES 150000 每次查询的儿童名额绝对上限;超过此值,查询将被拒绝。
DC_SHARD_SIZE 15000 大于此值的子位置查询通过分片批量导出。
DC_INCLUDE_LINEAGE true 在CSV导出中包含数据沿袭标头。
DC_MULTI_FILE_EXPORT false 在导出的同时写入配套元数据文件。
DC_TYPE base base (datacommons.org)或 custom (自定义数据共享实例)。

添加自定义数据共享实例 CUSTOM_DC_URL, DC_SEARCH_SCOPE, DC_BASE_INDEX,以及 DC_CUSTOM_INDEX --看 自定义数据共享 在参考文献中。

文档地图

许可证和信用证

阿帕奇-2.0。基于Google的 数据共享 起源于 代理工具包数据由Data Commons提供 及其潜在来源;此服务器不会修改或担保底层数据。问题 支持: github/cfude/datacommons-mcp.