US Gov Open Data MCP 服务器

使用说明

  • 项目简介
    • 这是一个使用 TypeScript 编写的 MCP 服务器实现,能够自动扫描 src/apis/ 目录下的各政府数据 API 模块,注册它们的工具、提示(Prompts)和引用资源,并提供一个统一的后端服务,供 LLM 客户端通过 MCP 标准协议进行调用。
    • 服务器核心负责会话管理、能力声明、缓存清理工具以及跨模块整合(如 API Reference、Prompts、Resources 等)的生成与暴露。
    • 同时支持多种传输协议(如 stdio、HTTP Stream),方便在本地、浏览器化环境或远程应用中使用。
  • 主要功能点
    • 模块自动发现与注册:运行时自动加载 src/apis 下的所有模块,聚合工具、Prompts、资源等能力。
    • JSON-RPC 通信:遵循 MCP 规范,客户端通过 JSON-RPC 请求访问资源、调用工具、获取 Prompt、读取 API 提供的能力与上下文。
    • 资源托管与引用:自动生成并提供 API Reference、Prompts 以及其他可查询的资源。
    • 跨传输协议支持:默认 stdio,支持 HTTP Stream 传输,便于集成到网页应用和远程服务。
    • 会话与能力声明:在启动时汇总各模块能力,向客户端声明可用工具、提示和权限(如是否需要 API Key)。
    • 清缓存与缓存策略:提供 clear_cache 工具以清理模块级缓存,确保数据可控与可观测。
  • 安装步骤
    • 克隆仓库并安装依赖(Node.js 环境)。
    • 构建/编译 TypeScript 代码,使服务器能够以 dist/server.js 的形式运行。
    • 启动 MCP 服务器:直接运行命令 npx us-gov-open-data-mcp(快速启动),或通过 dist/server.js 启动。
    • 运行后端服务器将自动加载 apis 目录中的模块,供客户端连接使用。
  • 服务器配置(MCP 客户端配置示例) 以下 JSON 配置用于在 MCP 客户端(如 VS Code Copilot 配置文件)中指向本服务器。请注意:MCP 客户端通常不需要完整实现,关键字段是服务器名称、启动命令与参数。 { "servers": { "us-gov-open-data": { "name": "US Government Open Data MCP", "command": "npx", "args": ["-y", "us-gov-open-data-mcp"], "env": { "FRED_API_KEY": "your_key", "DATA_GOV_API_KEY": "your_key", "USPTO_API_KEY": "your_key", "SEC_CONTACT_EMAIL": "[email protected]" } // 说明:以上环境变量仅为示例,实际使用请根据需要提供相应 API 的密钥或令牌。 } } }
  • 基本使用方法
    • 启动服务器后,客户端通过 MCP 协议向服务器发起 JSON-RPC 请求,取得资源、工具、Prompts 等能力,并按需执行。
    • 可通过服务器日志和返回的能力声明了解当前可用的模块与工具列表。
    • 如需扩展新的 API 模块,只需在 src/apis/ 下新增模块目录并实现相应的 index.ts、meta.ts、sdk.ts、tools.ts、prompts.ts,即可在下一次启动时被服务器自动发现并注册。

服务器信息