返回市场
临床试验-MCP-服务器

临床试验-MCP-服务器

作者:Augmented-Nature4 星标更新:2025-08-30

项目介绍

Logo

非官方临床试验MCP服务器

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

Augmented Nature开发

概述

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

特性

核心搜索工具

  • search_studies - 带有全面过滤器的一般搜索(条件、干预措施、地点、阶段、状态、年龄、性别)
  • get_study_details - 通过NCT ID获取详细的试验信息及完整元数据
  • search_by_condition - 以条件为中心的搜索,带有资格标准
  • search_by_location - 地理位置为基础的搜索,带有距离半径过滤
  • search_by_sponsor - 组织和赞助商为基础的搜索,带有赞助类型过滤
  • search_by_intervention - 治疗、药物和干预措施为中心的搜索

专业搜索工具

  • get_recruiting_studies - 当前招募中的试验,带有活跃的联系方式
  • search_by_date_range - 通过研究开始和完成日期的时间搜索
  • get_studies_with_results - 已完成且已发布结果的试验
  • search_rare_diseases - 专门针对罕见疾病和孤儿病的搜索
  • get_pediatric_studies - 针对儿童和青少年的儿科特定试验
  • search_international_studies - 多国国际试验

高级分析工具

  • get_similar_studies - 通过条件、赞助商或阶段找到与参考NCT ID相似的研究
  • search_by_primary_outcome - 通过主要结局指标和终点进行搜索
  • search_by_eligibility_criteria - 具有纳入/排除关键词的高级资格筛选
  • get_study_timeline - 当前、已完成和即将进行的研究的时间线分析
  • get_trial_statistics - 具有分组能力的聚合统计和分析

数据质量特性

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

安装

先决条件

  • Node.js 16+(从nodejs.org安装)
  • 不需要API密钥(ClinicalTrials.gov API是公开可访问的)

设置步骤

  1. 导航到您的MCP目录

    cd ~/Documents/Claude/MCP  # 或您首选的MCP目录
    
  2. 服务器已经构建和配置

    ls clinical-trials-server/
    # 应该显示:build/ src/ package.json tsconfig.json README.md
    
  3. 验证构建

    cd clinical-trials-server
    ls build/
    # 应该显示:index.js(可执行文件)
    

配置

在您的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 - 研究阶段:PHASE1, PHASE2, PHASE3, PHASE4, NA
  • status - 招募状态:RECRUITING, NOT_YET_RECRUITING, COMPLETED等

地理位置参数:

  • country - 国家名称
  • state - 州或省
  • city - 城市名称
  • distance - 搜索半径(单位:英里,1-500)

资格参数:

  • sex - ALL, FEMALE, MALE
  • age - CHILD, ADULT, OLDER_ADULT
  • minAge/maxAge - 年龄范围(例如:"18 Years", "65 Years")
  • healthyVolunteers - 是否接受健康志愿者(布尔值)

日期参数:

  • startDateFrom/startDateTo - 研究开始日期范围(YYYY-MM-DD)
  • completionDateFrom/completionDateTo - 完成日期范围(YYYY-MM-DD)

响应格式

所有工具返回结构化的JSON数据,包括:

  • 研究元数据(NCT ID、标题、状态、阶段、赞助商)
  • 地理坐标的位置信息
  • 资格标准和联系方式
  • 时间线数据和关键日期
  • 全面的搜索标准文档

NCT ID格式

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

错误处理

服务器包括全面的错误处理:

  • 网络问题:30秒超时保护及重试逻辑
  • 无效参数:带有描述性错误消息的JSON Schema验证
  • API错误:适当的HTTP状态码处理和错误报告
  • 缺失数据:优雅地处理可选字段和缺失信息
  • 速率限制:内置请求节流和错误恢复

常见的错误响应包括:

{
  "error": "临床试验API错误:无效的NCT ID格式",
  "isError": true
}

开发

从源代码构建

# 安装依赖
npm install

# 将TypeScript编译为JavaScript
npm run build

# 开发模式下监视
npm run watch

项目结构

clinical-trials-server/
├── src/
│   └── index.ts          # 主服务器实现(所有工具)
├── build/
│   └── index.js          # 编译后的可执行文件
├── package.json          # 依赖项和脚本
├── tsconfig.json         # TypeScript配置
└── README.md            # 本文件

关键依赖项

  • @modelcontextprotocol/sdk - MCP服务器框架
  • axios - API请求的HTTP客户端
  • TypeScript用于类型安全和开发

数据来源

API端点https://clinicaltrials.gov/api/v2 数据更新:周一至周五(不包括联邦假日) 覆盖范围:来自220多个国家的400,000多项研究 数据质量:官方FDA/NIH注册表,带有验证的信息

故障排除

  1. 服务器连接问题

    # 手动测试服务器
    cd clinical-trials-server
    node build/index.js
    # 应该显示:“临床试验MCP服务器正在stdio上运行”
    
  2. 无效NCT ID错误

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

    • 检查搜索条件 - 尝试更广泛的术语
    • 一些过滤器可能过于严格
    • 验证条件和干预措施的拼写
  4. 超时问题

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

临床研究用例

  • 患者招募:寻找特定条件下积极招募的试验
  • 竞争分析:通过赞助商或干预措施研究类似的研究
  • 站点选择:识别新研究的最佳地点
  • 监管研究:访问FDA批准的研究方案和结果
  • 学术研究:分析临床试验趋势和统计数据
  • 患者护理:帮助患者找到合适的治疗选项

合规性和伦理

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

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

许可

MIT许可 - 详情见LICENSE文件


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