使用说明
临床试验MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供对ClinicalTrials.gov API的访问,使研究人员、临床医生和开发人员能够以编程方式访问实时临床试验数据。
由……开发 bachstudio(巴赫工作室)
🚀 使用 npx 快速入门(推荐)
无需安装!使用 npx 直接运行服务器:
{
"mcpServers": {
"clinical-trials": {
"command": "npx",
"args": ["-y", "bach-clinical-trials"]
}
}
}
保存此配置并重新启动您的MCP客户端 npx 该命令将自动从npm下载并运行最新版本。
包URLhttps://www.npmjs.com/package/bach-clinical-trials 的中文翻译是:“https://www.npmjs.com 上的 bach-clinical-trials 包”。不过,通常我们不会直接翻译网址,而是说明其含义或用途,比如“这是一个在 npmjs.com 上的 Bach 临床试验相关包的链接”。但按照您的要求,直接翻译网址部分如上所示
概述
临床试验MCP服务器通过18个专门的MCP工具,提供了ClinicalTrials.gov API v2.0.4的全部功能,使您能够在支持MCP的环境中直接搜索、分析和检索全球临床试验的详细信息。
特点/特性
核心搜索工具
- 搜索研究 - 带有全面筛选条件(条件、干预措施、地点、阶段、状态、年龄、性别)的通用搜索
- 获取学习详情 - 以NCT ID为标识的详细研究信息,包含完整元数据
- 按条件搜索 - 以条件为中心的搜索,附带资格标准
- 按位置搜索 - 基于地理位置的搜索,带距离半径过滤功能
- 按赞助商搜索 - 基于组织和赞助商的搜索,并带有赞助商类型的筛选功能
- 按干预措施搜索 - 以治疗、药物和干预为重点的搜索
专业搜索工具
- 获取招聘研究资料 - 目前正在招募试验,提供有效的联系方式
- 按日期范围搜索 - 按照研究开始和完成日期进行时间搜索
- 获取带有结果的研究 - 已完成试验并发表结果
- 搜索罕见病 - 针对罕见病和孤儿病的专项搜索
- 获取儿童研究资料 - 针对儿童和青少年的专门儿科试验
- 搜索国际研究 - 多国国际试验
高级分析工具
- 获取相似研究 - 按条件、赞助商或阶段查找与参考NCT ID相似的研究
- 按主要结果搜索 - 按主要结局指标和终点进行搜索
- 按资格标准搜索 - 高级资格筛选,支持包含/排除关键词
- 获取学习时间线 - 时间线分析:涵盖当前进行中、已完成及即将开展的研究
- 获取试验统计数据 - 具有分组功能的聚合统计与分析
数据质量特性
- 实时数据访问(周一至周五每日更新)
- 使用正则表达式模式进行NCT ID验证
- 全面的JSON Schema验证
- 研究地点的地理坐标数据
- 招募研究的联系信息
- 强大的错误处理和超时保护
安装
先决条件
- Node.js 16+(从[安装源]安装) nodejs.org 翻译为中文是“Node.js 官方网站”)
- 无需API密钥(ClinicalTrials.gov API对公众开放)
设置步骤
-
导航到您的MCP目录:
cd ~/Documents/Claude/MCP # or your preferred MCP directory -
服务器已经构建并配置完毕:
ls clinical-trials-server/ # Should show: build/ src/ package.json tsconfig.json README.md -
验证构建:
cd clinical-trials-server ls build/ # Should show: index.js (executable)
配置
将此添加到你的 claude_desktop_config.json 文件中:
- macOS(苹果电脑操作系统):
~/Library/Application Support/Claude/claude_desktop_config.json - Windows(操作系统):
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"clinical-trials": {
"command": "node",
"args": ["path/to/clinical-trials-server/build/index.js"],
"autoApprove": [
"search_studies",
"get_study_details",
"search_by_condition",
"search_by_location",
"get_recruiting_studies",
"search_by_sponsor",
"search_by_intervention",
"get_trial_statistics"
]
}
}
}
注替换 path/to/clinical-trials-server 附上您服务器目录的绝对路径。
使用示例
搜索癌症试验
{
"condition": "cancer",
"phase": "PHASE3",
"status": "RECRUITING",
"pageSize": 10
}
获取详细的学习信息
{
"nctId": "NCT05882279"
}
按地点查找试验
{
"country": "United States",
"city": "Boston",
"distance": 50,
"pageSize": 5
}
搜索儿童研究相关资料
{
"condition": "diabetes",
"ageRange": "CHILD",
"recruitmentStatus": "RECRUITING"
}
获取带联系人的招聘试用机会
{
"condition": "alzheimer",
"location": "California",
"pageSize": 5
}
查找相似研究
{
"nctId": "NCT12345678",
"similarityType": "CONDITION",
"pageSize": 10
}
高级资格搜索
{
"minAge": "18 Years",
"maxAge": "65 Years",
"sex": "ALL",
"healthyVolunteers": false,
"condition": "hypertension",
"inclusionKeywords": "medication",
"exclusionKeywords": "pregnant"
}
获取试验统计数据
{
"groupBy": "phase",
"filters": {
"condition": "diabetes",
"status": "RECRUITING"
}
}
API 参考文档
搜索参数
公共参数:
pageSize- 结果数量(1-100,默认:10)condition- 医学状况或疾病phase- 研究阶段:第一阶段、第二阶段、第三阶段、第四阶段、不适用(或“无”)status- 招聘状态:招聘中、尚未开始招聘、已完成等。
位置参数:
country- 国家名称state- 州或省city- 城市名称distance- 搜索半径(英里)(1-500)
资格参数:
sex- 全部,女性,男性age- 儿童,成人,老年人minAge/maxAge- 年龄范围(例如,“18岁”,“65岁”)healthyVolunteers- 健康志愿者接受情况的布尔值(或:健康志愿者是否接受的布尔标志)
日期参数:
startDateFrom/startDateTo- 学习开始日期范围(YYYY-MM-DD)completionDateFrom/completionDateTo- 完成日期范围(YYYY-MM-DD)
响应格式
所有工具返回的都是结构化的JSON数据,包括:
- 研究元数据(NCT编号、标题、状态、阶段、资助方)
- 带有地理坐标的定位信息
- 资格标准及联系方式
- 时间线数据和关键日期
- 全面的搜索标准文档
NCT ID 格式
所有NCT编号必须遵循以下格式: NCT######## (NCT后接8位数字)
错误处理
服务器包含针对以下内容的全面错误处理:
- 网络问题30秒超时保护并带有重试逻辑
- 无效参数带有描述性错误信息的JSON Schema验证
- API错误正确的HTTP状态码处理和错误报告
- 缺失数据优雅地处理可选字段和缺失信息
- 速率限制内置请求限流和错误恢复功能
常见的错误响应包括:
{
"error": "Clinical Trials API error: Invalid NCT ID format",
"isError": true
}
发展
从源代码构建
# Install dependencies
npm install
# Build TypeScript to JavaScript
npm run build
# Development with watch mode
npm run watch
项目结构
clinical-trials-server/
├── src/
│ └── index.ts # Main server implementation (all tools)
├── build/
│ └── index.js # Compiled executable
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
关键依赖项
@modelcontextprotocol/sdk- MCP服务器框架axiosAPI请求的HTTP客户端- 使用TypeScript确保类型安全和开发
数据来源
API终端点https://clinicaltrials.gov/api/v2 翻译为中文是:“https://临床试验.gov/应用程序接口/v2”。不过,通常我们不会直接翻译网址,而是保留原样,因为网址是国际通用的,且直接使用原网址在中文语境下更为常见和准确。如果非要给出一种“翻译”形式(尽管这不是常规做法),上述翻译即为一种表达方式。在实际应用中,我们更倾向于直接使用原网址 数据更新周一至周五(不包括联邦假日) 覆盖范围来自220多个国家的400,000多项研究 数据质量官方FDA/NIH注册数据库,信息经核实
故障排除
-
服务器连接问题:
# Test server manually cd clinical-trials-server node build/index.js # Should show: "Clinical Trials MCP server running on stdio" -
无效的NCT ID错误:
- 确保NCT编号遵循格式:NCT########
- 示例:NCT05882279 ✓,nct123 ✗(注:这里的✓和✗分别表示“正确”和“错误”,在中文语境中,可以理解为“有效”和“无效”或“符合要求”和“不符合要求”,具体根据上下文来判断。)
-
未返回结果:
- 检查搜索条件 - 尝试使用更宽泛的关键词
- 有些过滤器可能过于严格
- 验证条件和干预措施的拼写
-
超时问题:
- 服务器设有30秒超时保护
- 大型结果集可能需要一些时间来处理
- 减小页面大小以加快响应速度
临床研究用例
- 患者招募查找针对特定病症的积极招募临床试验
- 竞争分析研究由赞助方或干预措施所进行的类似研究
- 选址确定新研究的最佳地点
- 监管研究访问FDA批准的研究方案和结果
- 学术研究分析临床试验趋势和统计数据
- 患者护理帮助患者找到合适的治疗方案
合规与道德
此服务器提供访问ClinicalTrials.gov上公开可用的临床试验数据的权限。用户应:
- 遵循临床研究的制度政策
- 尊重患者隐私和保密性
- 将数据用于合法的研究和医疗保健目的
- 在出版物中引用ClinicalTrials.gov作为数据来源
许可证
MIT 许可证 - 详情请参见 LICENSE 文件
数据源ClinicalTrials.gov(网址:https://clinicaltrials.gov) API 文档https://clinicaltrials.gov/data-api/api 翻译为中文是:“https://临床试验.gov/数据接口/接口”。 但通常在实际应用中,我们可能会简化或调整表述以更符合中文语境,比如可以翻译为“https://临床试验数据库.gov/数据API/接口”或“https://临床试验数据.gov/API接口”,具体取决于上下文和使用场景。不过,直接翻译上述网址的结构,保持原网址的格式,可以是“https://临床试验.gov/数据-应用程序编程接口/应用程序编程接口” 服务器版本1.0.0 仓库https://github.com/BACH-AI-Tools/ClinicalTrials-MCP-Server 翻译为中文是:“https://github.com/BACH-AI-工具/ClinicalTrials-MCP-服务器”(但通常我们不会直接翻译网址中的内容,这里只是为了说明其含义)。更自然的表达可能是:“这是GitHub上的一个项目链接:BACH-AI-Tools的ClinicalTrials-MCP-Server服务器”或者简化为“GitHub上的BACH-AI-Tools/ClinicalTrials-MCP-Server项目”