临床试验数据服务

一个提供ClinicalTrials.gov API访问的模型上下文协议(MCP)服务器,使研究人员、临床医生和开发者能够以编程方式获取实时临床试验数据。

  • by Augmented-Nature
  • JavaScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Augmented-Nature/ClinicalTrials-MCP-Server

使用说明

非官方临床试验MCP服务器

一个全面的模型上下文协议(MCP)服务器,提供对ClinicalTrials.gov API的访问,使研究人员、临床医生和开发人员能够通过编程访问实时临床试验数据。

由开发 增强自然

概述

临床试验MCP服务器通过18个专门的MCP工具公开了完整的ClinicalTrials.gov API v2.0.4功能,允许您直接从启用MCP的环境中搜索、分析和检索有关全球临床试验的详细信息。

特性

核心搜索工具

  • 搜索研究 -使用综合过滤器进行一般搜索(条件、干预、位置、阶段、状态、年龄、性别)
  • get_study_details -按NCT ID提供详细的研究信息,并附有完整的元数据
  • 搜索_条件 -以条件为中心的搜索,符合资格标准
  • 搜索_ _位置 -基于地理的距离半径过滤搜索
  • 搜索_赞助商 -基于组织和赞助商的搜索,具有赞助商类型过滤功能
  • 搜索_干预 -以治疗、药物和干预为重点的搜索

专业搜索工具

  • 获取检索研究 -目前正在招募具有活跃联系信息的试验
  • 搜索_日期_范围 -按研究开始和完成日期进行时间搜索
  • get_studies_with_results -已完成的试验已公布结果
  • 搜索_区域_疾病 -专门搜索罕见病和孤儿疾病
  • get_mediatric_studies -针对儿童和青少年的儿科特异性试验
  • 搜索_国际_研究 -多国国际试验

高级分析工具

  • get_similar_studies -按病情、赞助商或分期查找与参考NCT ID相似的研究
  • 搜索_主要结果 -按主要结局指标和终点搜索
  • 搜索_资格_标准 -使用包含/排除关键字进行高级资格筛选
  • get_study_timeline -对当前、已完成和即将进行的研究进行时间线分析
  • get_trial_statistics -具有分组功能的汇总统计和分析

数据质量特征

  • 实时数据访问(周一至周五每日更新)
  • 使用正则表达式模式进行NCT ID验证
  • 全面的JSON模式验证
  • 研究地点的地理坐标数据
  • 招聘研究的联系信息
  • 强大的错误处理和超时保护

安装

先决条件

  • Node.js 16+(从以下位置安装 nodejs.org)
  • 无需API密钥(ClinicalTrials.gov API可公开访问)

设置步骤

  1. 导航到您的MCP目录:

    cd ~/Documents/Claude/MCP  # or your preferred MCP directory
    
  2. 服务器已构建并配置:

    ls clinical-trials-server/
    # Should show: build/ src/ package.json tsconfig.json README.md
    
  3. 验证构建:

    cd clinical-trials-server
    ls build/
    # Should show: index.js (executable)
    

配置

将此添加到您的claude_desktop_config.json中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %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 -研究阶段:阶段1、阶段2、阶段3、阶段4、NA
  • 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 ID、标题、状态、阶段、赞助商)
  • 带有地理坐标的位置信息
  • 资格标准和联系信息
  • 时间线数据和关键日期
  • 全面的搜索条件文档

NCT ID格式

所有NCT ID必须遵循以下模式: NCT######## (NCT后面跟着8位数字)

错误处理

该服务器包括全面的错误处理功能,用于:

  • 网络问题:具有重试逻辑的30秒超时保护
  • 无效参数:带有描述性错误消息的JSON模式验证
  • 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服务器框架
  • axios -API请求的HTTP客户端
  • TypeScript用于类型安全和开发

数据源

API端点: https://clinicaltrials.gov/api/v2 数据更新:周一至周五(不包括联邦假日) 覆盖:来自220多个国家的400000多项研究 数据质量:美国食品药品监督管理局/美国国立卫生研究院官方注册,信息经过验证

故障排除

  1. 服务器连接问题:

    # Test server manually
    cd clinical-trials-server
    node build/index.js
    # Should show: "Clinical Trials MCP server running on stdio"
    
  2. NCT ID错误无效:

    • 确保NCT ID遵循格式:NCT########
    • 示例:NCT05882279✓,nct123✗
  3. 未返回任何结果:

    • 检查搜索条件-尝试更广泛的术语
    • 某些筛选器可能限制过多
    • 验证条件和干预措施的拼写
  4. 超时问题:

    • 服务器具有30秒超时保护
    • 处理大型结果集可能需要时间
    • 减小页面大小以获得更快的响应

临床研究用例

  • 患者招募:积极寻找针对特定条件的招聘试验
  • 竞品分析:赞助商或干预机构进行的类似研究
  • 选址:确定新研究的最佳地点
  • 监管研究:访问FDA批准的研究方案和结果
  • 学术研究:分析临床试验趋势和统计数据
  • 病人照顾:帮助患者找到合适的治疗方案

合规与道德

此服务器提供从ClinicalTrials.gov访问公开可用的临床试验数据。用户应:

  • 遵循临床研究的机构政策
  • 尊重患者隐私和保密
  • 将数据用于合法的研究和医疗保健目的
  • 引用ClinicalTrials.gov作为出版物的数据来源

许可证

MIT许可证-有关详细信息,请参阅许可证文件


数据源:ClinicalTrials.gov(https://clinicaltrials.gov) API文档: https://clinicaltrials.gov/data-api/api 服务器版本: 0.1.0