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

临床试验-MCP服务器

作者:JackKuo66613 星标更新:2025-04-09

项目介绍

ClinicalTrials MCP Server

smithery 徽章

🔍 使AI助手能够通过简单的MCP接口搜索并访问ClinicalTrials.gov的数据。

ClinicalTrials MCP Server通过模型上下文协议(MCP)在AI助手与ClinicalTrials.gov的临床试验存储库之间提供了一个桥梁。它允许AI模型以编程方式搜索临床试验并访问其内容。

🤝 贡献 • 📝 报告错误

✨ 核心功能

  • 🔎 试验搜索:使用自定义搜索字符串或高级搜索参数查询临床试验 ✅
  • 🚀 高效检索:快速访问试验元数据 ✅
  • 📊 元数据访问:使用NCT ID检索特定试验的详细元数据 ✅
  • 📊 研究支持:促进健康科学的研究和分析 ✅
  • 📋 CSV管理:保存、加载和列出包含试验数据的CSV文件 ✅
  • 🗃️ 本地存储:试验被保存到本地以实现更快的访问 ✅
  • 📊 统计信息:获取关于临床试验的统计信息 ✅

🚀 快速开始

通过Smithery安装

要通过Smithery自动安装ClinicalTrials Server for Claude Desktop:

Claude

npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client claude --config "{}"

Cursor

将以下内容粘贴到设置 → Cursor 设置 → MCP → 添加新服务器中:

  • Mac/Linux
npx -y @smithery/cli@latest run ClinicalTrials-mcp-server --client cursor --config "{}" 

Windsurf

npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client windsurf --config "{}"

CLine

npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client cline --config "{}"

手动安装

使用uv进行安装:

uv tool install ClinicalTrials-mcp-server

对于开发:

# 克隆并设置开发环境
git clone https://github.com/JackKuo666/ClinicalTrials-MCP-Server.git
cd ClinicalTrials-MCP-Server

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt

📊 使用方法

启动MCP服务器:

python clinical_trials_server.py

一旦服务器运行,您可以在您的AI助手或应用程序中使用提供的MCP工具。这里有一些如何使用这些工具的例子:

示例1:使用搜索表达式搜索临床试验并将结果保存到CSV

result = await mcp.use_tool("search_clinical_trials_and_save_studies_to_csv", {
    "search_expr": "COVID-19疫苗效力",
    "max_studies": 5
})
print(result)

示例2:按关键词获取研究

result = await mcp.use_tool("get_studies_by_keyword", {
    "keyword": "糖尿病",
    "max_studies": 10
})
print(result)

示例3:获取特定试验的完整研究详情

result = await mcp.use_tool("get_full_study_details", {
    "nct_id": "NCT04280705"
})
print(result)

示例4:使用自定义字段搜索并保存研究

result = await mcp.use_tool("search_clinical_trials_and_save_studies_to_csv", {
    "search_expr": "阿尔茨海默病",
    "max_studies": 20,
    "filename": "alzheimer_studies.csv",
    "fields": ["NCT编号", "研究标题", "简短概述", "条件"]
})
print(result)

这些示例展示了如何使用ClinicalTrials MCP Server提供的主要工具。根据您的具体需求调整参数。

🛠 MCP工具

ClinicalTrials MCP Server提供了以下工具:

search_clinical_trials_and_save_studies_to_csv

使用搜索表达式搜索临床试验并将结果保存到CSV文件。

参数:

  • search_expr (str): 搜索表达式(例如:"冠状病毒+COVID")
  • max_studies (int, 可选): 返回的最大研究数量(默认:10)
  • save_csv (bool, 可选): 是否将结果保存为CSV文件(默认:True)
  • filename (str, 可选): 要保存的CSV文件名(默认:corona_fields.csv)
  • fields (list, 可选): 包含的字段列表(默认:NCT编号,条件,研究标题,简短概述)

返回值: 搜索结果的字符串表示

get_full_study_details

获取特定临床试验的详细信息。

参数:

  • nct_id (str): 临床试验的NCT ID

返回值: 研究详情的字符串表示

get_studies_by_keyword

获取与特定关键词相关的研究。

参数:

  • keyword (str): 要搜索的关键词
  • max_studies (int, 可选): 返回的最大研究数量(默认:20)
  • save_csv (bool, 可选): 是否将结果保存为CSV文件(默认:True)
  • filename (str, 可选): 要保存的CSV文件名(默认:keyword_results_{keyword}.csv)

返回值: 研究的字符串表示

get_study_statistics

获取关于临床试验的统计信息。

参数:

  • condition (str, 可选): 可选的过滤条件

返回值: 统计信息的字符串表示

get_full_studies_and_save

获取完整的研究数据并保存到CSV。

参数:

  • search_expr (str): 搜索表达式(例如:"冠状病毒+COVID")
  • max_studies (int, 可选): 返回的最大研究数量(默认:20)
  • filename (str, 可选): 要保存的CSV文件名(默认:full_studies.csv)

返回值: 表明结果已保存的消息

load_csv_data

加载并显示来自CSV文件的数据。

参数:

  • filename (str): 要加载的CSV文件名

返回值: CSV数据的字符串表示

list_saved_csv_files

列出当前目录下所有可用的CSV文件。

返回值: 可用CSV文件的字符串表示

🔍 MCP资源

ClinicalTrials MCP Server还提供了以下资源:

clinicaltrials://corona_fields

作为资源获取corona字段数据。

clinicaltrials://full_studies

作为资源获取完整的研究数据。

clinicaltrials://csv/{filename}

从特定的CSV文件获取数据。

参数:

  • filename (str): CSV文件名

clinicaltrials://available_files

获取所有可用CSV文件的列表。

clinicaltrials://study/{nct_id}

通过NCT ID获取特定的研究。

参数:

  • nct_id (str): 临床试验的NCT ID

clinicaltrials://condition/{condition}

获取与特定条件相关的研究。

参数:

  • condition (str): 要搜索的条件

使用Claude Desktop

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

(Mac OS)

{
  "mcpServers": {
    "ClinicalTrials": {
      "command": "python",
      "args": ["-m", "ClinicalTrials-mcp-server"]
      }
  }
}

(Windows版本):

{
  "mcpServers": {
    "ClinicalTrials": {
      "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
      "args": [
        "-m",
        "ClinicalTrials-mcp-server"
      ]
    }
  }
}

使用Cline

{
  "mcpServers": {
    "ClinicalTrials": {
      "command": "bash",
      "args": [
        "-c",
        "source /home/YOUR/PATH/ClinicalTrials-MCP-Server/.venv/bin/activate && python /home/YOUR/PATH/ClinicalTrials-MCP-Server/clinical_trials_server.py"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

重启Claude Desktop后,将可用以下功能:

搜索临床试验

您可以要求Claude使用如下查询搜索临床试验:

你能搜索最近关于糖尿病的临床试验吗?

搜索将返回匹配试验的基本信息包括:

  • 试验标题
  • NCT编号
  • 条件
  • 简短概述

获取试验详情

一旦您有了NCT编号,可以要求更多详情:

你能展示一下试验NCT04280705的详情吗?

这将返回:

  • 完整的试验标题
  • 条件
  • 简短概述
  • 其他可用详情

📁 项目结构

  • clinical_trials_server.py: 主要的MCP服务器实现,使用FastMCP
  • clinical_trials.py: 包含与ClinicalTrials.gov API交互的帮助函数

🔧 依赖项

  • Python 3.10+
  • FastMCP
  • pytrials
  • pandas

您可以使用以下命令安装所需的依赖项:

pip install FastMCP pytrials pandas

🤝 贡献

欢迎贡献!请随时提交Pull Request。

📄 许可证

本项目采用MIT许可证。

⚠️ 免责声明

此工具仅用于研究目的。请尊重ClinicalTrials.gov的服务条款,并负责任地使用此工具。