@cyanheads/cdc-health-mcp-server
MCP server for the CDC Open Data portal. Search ~1,487 public health datasets, inspect schemas, and execute SoQL queries across disease surveillance, mortality, vaccinations, behavioral risk, and more. STDIO or Streamable HTTP.
3 Tools • 2 Resources • 1 Prompt
公共托管服务器: https://cdc.caseyjhand.com/mcp
______________________________________________________________________
工具
发现和查询美国疾病控制与预防中心公共卫生数据的三种工具:
| 工具 | 说明 |
|---|---|
cdc_discover_datasets | 按关键字、类别或标签搜索目录。所有查询的入口点。 |
cdc_get_dataset_schema | 获取数据集的列架构、行数和元数据。编写SoQL查询之前必不可少。 |
cdc_query_dataset | 执行SoQL查询——过滤、聚合、排序、全文搜索和字段选择。 |
cdc_discover_datasets
搜索CDC数据集目录以查找相关数据集。
- 跨数据集名称和描述的全文搜索
- 按领域类别筛选(例如,“NNDSS”、“疫苗接种”、“行为风险因素”)
- 按域标签过滤(例如。,
["covid19", "surveillance"]) - 返回数据集ID、名称、描述、列列表和更新时间戳
- 通过偏移分页浏览大型结果集
______________________________________________________________________
cdc_get_dataset_schema
获取特定数据集的完整列架构。
- 列名、数据类型和描述
- 行数和上次更新的时间戳
- 写作前理解列类型至关重要
$where条款 - 接受四乘四的数据集标识符(例如。,
bi63-dtpu)
______________________________________________________________________
cdc_query_dataset
对任何CDC数据集执行SoQL查询。
- 完整的SoQL支持:
$select,$where,$group,$having,$order - 通过以下方式在所有文本列中进行全文搜索
$q - 每个请求最多5000行,带分页
- 返回组装好的SoQL查询字符串以进行调试
- 所有响应值都是字符串(根据SODA v2.1)——基于列类型元数据进行解析
资源和提示
| 类型 | 名称 | 描述 |
|---|---|---|
| 资源 | cdc://datasets | 按受欢迎程度排名的前50个数据集 |
| 资源 | cdc://datasets/{datasetId} | 数据集元数据和列模式(相当于模式工具) |
| 提示 | analyze_health_trend | 指导5步工作流程:发现、检查、基线查询、比较、综合 |
特性
- 声明性工具定义——每个工具一个文件,框架处理注册和验证
- 跨所有工具的统一错误处理
- 可插拔身份验证(
none,jwt,oauth) - 可交换存储后端:
in-memory,filesystem,Supabase,Cloudflare KV/R2/D1 - 带可选OpenTetry跟踪的结构化日志记录
- 在本地(stdio/HTTP)或Cloudflare Workers上从同一代码库运行
美国疾病控制与预防中心特定:
- 包裹 索克拉塔SODA API v2.1 --无需身份验证,可选应用令牌可实现更高的速率限制
- 异构目录的发现优先方法(跨许多健康领域的约1487个数据集)
- 遵守速率限制的保守请求间距(Socrata未返回速率限制标头)
- 处理SODA字符串类型的响应——所有值都以字符串形式返回,通过列类型元数据解析
入门
公共托管实例
公共实例可在以下网址获得 https://cdc.caseyjhand.com/mcp --无需安装。通过Streamable HTTP将任何MCP客户端指向它:
{
"mcpServers": {
"cdc-health": {
"type": "streamable-http",
"url": "https://cdc.caseyjhand.com/mcp"
}
}
}自托管/本地
将以下内容添加到MCP客户端配置文件中。
{
"mcpServers": {
"cdc-health": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/cdc-health-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}或者使用npx(不需要Bun):
{
"mcpServers": {
"cdc-health": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/cdc-health-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}或者使用Docker:
{
"mcpServers": {
"cdc-health": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/cdc-health-mcp-server:latest"]
}
}
}对于Streamable HTTP,设置传输并启动服务器:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp先决条件
- Bun v1.3.2 或更高。
- 可选: Socrata应用代币 对于更高的速率限制。
安装
- 克隆存储库:
git clone https://github.com/cyanheads/cdc-health-mcp-server.git- 导航到以下目录:
cd cdc-health-mcp-server- 安装依赖项:
bun install配置
所有配置在启动时通过Zod模式进行验证 src/config/server-config.ts.关键环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_TRANSPORT_TYPE | 运输: stdio 或 http | stdio |
MCP_HTTP_PORT | HTTP服务器端口 | 3010 |
MCP_AUTH_MODE | 身份验证: none, jwt,或 oauth | none |
MCP_LOG_LEVEL | 日志级别(debug, info, warning, error等等) | info |
LOGS_DIR | 日志文件目录(仅限Node.js) | ` |
| /logs` | ||
STORAGE_PROVIDER_TYPE | 存储后端: in-memory, filesystem, supabase, cloudflare-kv/r2/d1 | in-memory |
CDC_APP_TOKEN | Socrata应用程序令牌用于更高的费率限制 | 无 |
CDC_BASE_URL | SODA API请求的基本URL | https://data.cdc.gov |
CDC_CATALOG_URL | Socrata Discovery API的基本URL | https://api.us.socrata.com/api/catalog/v1 |
OTEL_ENABLED | 启用开放遥测 | false |
运行服务器
本地开发
- 构建并运行生产版本:
# One-time build
bun run rebuild
# Run the built server
bun run start:http
# or
bun run start:stdio- 运行检查和测试:
bun run devcheck # Lints, formats, type-checks, and more
bun run test # Runs the test suite项目结构
| 目录 | 目的 |
|---|---|
src/mcp-server/tools | 工具定义(*.tool.ts).美国疾病控制与预防中心的三个数据工具。 |
src/mcp-server/resources | 资源定义。目录概述和数据集详细信息。 |
src/mcp-server/prompts | 快速定义。健康趋势分析工作流程。 |
src/services/socrata | Socrata SODA API服务层-HTTP客户端,目录搜索,元数据,查询。 |
src/config | 使用Zod解析和验证特定于服务器的环境变量。 |
发展指南
看 CLAUDE.md 了解开发指南和架构规则。简短版本:
- 处理程序抛出,框架捕获——否
try/catch工具逻辑 - 使用
ctx.log对于日志记录,ctx.state用于存储 - 在中注册新工具和资源
createApp()数组
贡献
欢迎问题和拉取请求。提交前进行检查和测试:
bun run devcheck
bun run test许可证
此项目根据Apache 2.0许可证获得许可。看 许可证 文件以获取详细信息。
