clinicaltrialsgov-mcp-server
公共托管服务器: https://clinicaltrials.caseyjhand.com/mcp
概览
用于搜索、发现、分析和匹配临床试验的七个工具:
工具名称 | 描述 |
| 使用全文查询、过滤器、分页、排序和字段选择来搜索研究。 |
| 通过 NCT ID 获取单项研究。返回完整记录:方案、资格要求、结果、分组、干预措施、联系人和地点。 |
| 获取查询的研究总数,无需获取数据。用于快速统计和细分。 |
| 发现 API 字段(状态、阶段、研究类型等)的有效值,并提供每个值的计数。 |
| 浏览研究数据模型字段树 — 片段名称、类型、嵌套。支持子树导航和关键字搜索。 |
| 从已完成的研究中提取结果、不良事件、参与者流程和基线数据。可选的摘要模式可将约 200KB 的负载减少至约 5KB。 |
| 将患者人口统计学信息和疾病状况与符合条件的招募中试验进行匹配。提供年龄、性别、疾病状况和地点,以查找具有匹配资格标准、联系人和招募地点的研究。 |
资源 | 描述 |
| 通过 NCT ID 获取单项临床研究。完整 JSON。 |
提示词 | 描述 |
| 使用计数 + 搜索工具进行数据驱动的试验全景分析的自适应工作流。 |
Related MCP server: Healthcare MCP Server
工具
clinicaltrials_search_studies
具备完整 ClinicalTrials.gov 查询能力的主要搜索工具。
全文和特定字段查询(疾病状况、干预措施、申办方、地点、标题、结果)
带有类型化枚举值的状态和阶段过滤器
按坐标和距离进行的地理邻近度过滤
支持复杂查询的高级 AREA[] Essie 表达式
字段选择以减小负载大小(完整记录每条约 70KB)
使用游标令牌进行分页,支持按任意字段排序
clinicaltrials_get_study_results
获取已完成研究的已发布结果数据。
包含统计数据、不良事件、参与者流程、基线特征的结果指标
节级过滤(仅请求您需要的数据)
可选的摘要模式将完整结果(约 200KB)压缩为基本元数据(每项研究约 5KB)
每次调用可批量处理多个 NCT ID,并提供部分成功报告
对无结果的研究和获取错误进行单独跟踪
clinicaltrials_find_eligible
将患者资料与符合条件的招募中试验进行匹配。
以年龄、性别、疾病状况和地点作为患者人口统计学信息
使用人口统计学过滤器(年龄范围、性别、健康志愿者)构建优化的 API 查询
返回包含资格和地点字段的研究,供调用者评估
当没有匹配的研究时提供可操作的提示(扩大疾病状况范围、调整过滤器)
特性
基于 @cyanheads/mcp-ts-core 构建:
带有 Zod 模式和格式化函数的声明式工具/资源/提示词定义
统一的错误处理 — 处理程序抛出异常,框架捕获并分类
双重传输:同一代码库支持 stdio 和 Streamable HTTP
可插拔的身份验证(
none、jwt、oauth),用于 HTTP 传输结构化日志记录,支持可选的 OpenTelemetry 追踪
ClinicalTrials.gov 特定功能:
针对 ClinicalTrials.gov REST API v2 的类型安全客户端
公共 API — 无需身份验证或 API 密钥
带有指数退避(3 次尝试)和速率限制(约 1 次请求/秒)的重试机制
HTML 错误检测和结构化错误工厂
入门指南
公共托管实例
公共实例位于 https://clinicaltrials.caseyjhand.com/mcp — 无需安装。通过 Streamable HTTP 将任何 MCP 客户端指向它:
{
"mcpServers": {
"clinicaltrialsgov-mcp-server": {
"type": "streamable-http",
"url": "https://clinicaltrials.caseyjhand.com/mcp"
}
}
}自托管 / 本地运行
添加到您的 MCP 客户端配置中(例如 claude_desktop_config.json):
{
"mcpServers": {
"clinicaltrialsgov-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["clinicaltrialsgov-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}或者对于 Streamable HTTP:
MCP_TRANSPORT_TYPE=http
MCP_HTTP_PORT=3010先决条件
Bun v1.2.0 或更高版本(或 Node.js >= 22.0.0)
安装
克隆仓库:
git clone https://github.com/cyanheads/clinicaltrialsgov-mcp-server.git进入目录:
cd clinicaltrialsgov-mcp-server安装依赖:
bun install
配置
所有配置均为可选 — 服务器在默认设置下无需 API 密钥即可工作。
变量 | 描述 | 默认值 |
| ClinicalTrials.gov API 基础 URL。 |
|
| 每次请求的超时时间(毫秒)。 |
|
| 最大页面大小限制。 |
|
| 传输方式: |
|
| HTTP 服务器端口。 |
|
| 认证模式: |
|
| 日志级别 (RFC 5424)。 |
|
| 日志文件目录(仅限 Node.js)。 |
|
| 启用 OpenTelemetry 追踪。 |
|
运行服务器
本地开发
构建并运行生产版本:
bun run build bun run start:http # or start:stdio在开发模式下运行(带监听):
bun run dev:http # or dev:stdio运行检查和测试:
bun run devcheck # Lints, formats, type-checks bun run test # Runs test suite
Docker
docker build -t clinicaltrialsgov-mcp-server .
docker run -p 3010:3010 clinicaltrialsgov-mcp-server项目结构
目录 | 用途 |
| 工具定义 ( |
| 资源定义 ( |
| 提示词定义 ( |
| ClinicalTrials.gov API 客户端和类型。 |
| 使用 Zod 进行环境变量解析和验证。 |
| 单元测试和集成测试。 |
开发指南
请参阅 CLAUDE.md 获取开发准则和架构规则。简而言之:
处理程序抛出异常,框架捕获 — 工具逻辑中不要使用
try/catch使用
ctx.log进行请求范围的日志记录,不要使用console调用在
index.ts索引文件中注册新工具和资源
贡献
欢迎提交问题和拉取请求。提交前请运行检查:
bun run devcheck
bun run test许可证
Apache-2.0 — 详情请参阅 LICENSE。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/clinicaltrialsgov-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server