clinicaltrialsgov-mcp-server
MCP server for the ClinicalTrials.gov v2 API. Search trials, retrieve study details and results, and match patients to eligible trials.
7 Tools · 1 Resource · 1 Prompt
](https://www.npmjs.com/package/clinicaltrialsgov-mcp-server) ](https://github.com/users/cyanheads/packages/container/package/clinicaltrialsgov-mcp-server) ](./CHANGELOG.md) 
  
公共托管服务器: https://clinicaltrials.caseyjhand.com/mcp
______________________________________________________________________
概述
用于搜索、发现、分析和匹配临床试验的七种工具:
| 工具名称 | 描述 |
|---|---|
clinicaltrials_search_studies | 使用全文查询、过滤器、分页、排序和字段选择搜索研究。 |
clinicaltrials_get_study_record | 通过NCT ID获取一项研究。返回完整记录:方案、资格、结果、武器、干预措施、联系人和地点。 |
clinicaltrials_get_study_count | 在不获取数据的情况下获取查询的总研究计数。快速统计和细分。 |
clinicaltrials_get_field_values | 发现API字段(状态、阶段、研究类型等)的有效值以及每个值的计数。 |
clinicaltrials_get_field_definitions | 浏览研究数据模型字段树——片段名称、类型、嵌套。支持子树导航和关键字搜索。 |
clinicaltrials_get_study_results | 从已完成的研究中提取结果、不良事件、参与者流量和基线。可选摘要模式将约200KB的有效载荷减少到约5KB。 |
clinicaltrials_find_eligible | 将患者的人口统计数据和病情与符合条件的招募试验相匹配。提供年龄、性别、条件和地点,以找到符合资格标准、联系人和招聘地点的研究。 |
| 资源 | 描述 |
|---|---|
clinicaltrials://{nctId} | 通过NCT ID获取单个临床试验研究。完整JSON。 |
| 提示 | 描述 |
|---|---|
analyze_trial_landscape | 使用计数+搜索工具进行数据驱动的试验景观分析的适应性工作流程。 |
工具
clinicaltrials_search_studies
具有完整ClinicalTrials.gov查询功能的主要搜索工具。
- 全文和特定领域的查询(条件、干预、赞助商、地点、标题、结果)
- 具有类型化枚举值的状态和阶段筛选器
- 按坐标和距离进行地理邻近度过滤
- 高级AREA\[\]复杂查询的Essie表达式支持
- 选择字段以减小有效载荷大小(每条完整记录约为70KB)
- 使用光标标记分页,按任何字段排序
______________________________________________________________________
clinicaltrials_get_study_results
获取已完成研究的已发布结果数据。
- 结果指标,包括统计数据、不良事件、参与者流量、基线特征
- 节级过滤(仅请求您需要的数据)
- 可选摘要模式将完整结果(约200KB)压缩为基本元数据(每项研究约5KB)
- 对每个呼叫批处理多个NCT ID,并报告部分成功
- 单独跟踪没有结果和提取错误的研究
______________________________________________________________________
clinicaltrials_find_eligible
将患者资料与符合条件的招募试验相匹配。
- 将年龄、性别、病情和地点作为患者的人口统计数据
- 使用人口统计过滤器(年龄范围、性别、健康志愿者)构建优化的API查询
- 返回带有资格和位置字段的研究,供呼叫者评估
- 当没有匹配的研究时提供可操作的提示(扩大条件,调整过滤器)
特性
- 具有Zod模式和格式函数的声明性工具/资源/提示定义
- 统一的错误处理——处理程序抛出、框架捕获和分类
- 双重传输:来自同一代码库的stdio和Streamable HTTP
- 可插拔身份验证(
none,jwt,oauth)用于HTTP传输 - 带可选OpenTetry跟踪的结构化日志记录
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"
}
}
}
}或者对于流式HTTP:
MCP_TRANSPORT_TYPE=http
MCP_HTTP_PORT=3010先决条件
- Bun v1.3.0 或更高版本(或Node.js>=24.0.0)
安装
- 克隆存储库:
git clone https://github.com/cyanheads/clinicaltrialsgov-mcp-server.git- 导航到以下目录:
cd clinicaltrialsgov-mcp-server- 安装依赖项:
bun install配置
所有配置都是可选的-服务器使用默认值,不使用API密钥。
| 变量 | 描述 | 默认值 |
|---|---|---|
CT_API_BASE_URL | ClinicalTrials.gov API基础URL | https://clinicaltrials.gov/api/v2 |
CT_REQUEST_TIMEOUT_MS | 每个请求超时(毫秒)。 | 30000 |
CT_MAX_PAGE_SIZE | 最大页面大小上限。 | 200 |
MCP_TRANSPORT_TYPE | 运输: stdio 或 http. | stdio |
MCP_HTTP_PORT | HTTP服务器的端口。 | 3010 |
MCP_AUTH_MODE | 身份验证模式: none, jwt,或 oauth. | none |
MCP_LOG_LEVEL | 日志级别(RFC 5424)。 | info |
LOGS_DIR | 日志文件目录(仅限Node.js)。 | ` |
| /logs` | ||
OTEL_ENABLED | 启用OpenTetry跟踪。 | false |
运行服务器
本地开发
- 构建并运行生产版本:
bun run build
bun run start:http # or start:stdio- 运行检查和测试:
bun run devcheck # Lints, formats, type-checks
bun run test # Runs test suite码头工人
docker build -t clinicaltrialsgov-mcp-server .
docker run -p 3010:3010 clinicaltrialsgov-mcp-server项目结构
| 目录 | 目的 |
|---|---|
src/mcp-server/tools/ | 工具定义(*.tool.ts). |
src/mcp-server/resources/ | 资源定义(*.resource.ts). |
src/mcp-server/prompts/ | 快速定义(*.prompt.ts). |
src/services/clinical-trials/ | ClinicalTrials.gov API客户和类型。 |
src/config/ | 使用Zod进行环境变量解析和验证。 |
tests/ | 单元和集成测试。 |
开发指南
看 CLAUDE.md 了解开发指南和架构规则。简短版本:
- 处理程序抛出,框架捕获——否
try/catch工具逻辑 - 使用
ctx.log对于请求范围的日志记录,否console电话 - 在中注册新工具和资源
index.ts桶形文件
贡献
欢迎问题和拉取请求。提交前运行检查:
bun run devcheck
bun run test许可证
Apache-2.0--参见 许可证 了解详情。
