关于 ClinicalTrials MCP Server
面向健康科学研究的 ClinicalTrials.gov MCP 服务,可让 AI 助手搜索临床试验、获取 NCT 编号对应的详细资料,并将研究数据保存为 CSV。
主要功能
- 01按表达式或关键词搜索试验
- 02按 NCT 编号获取研究详情
- 03查询试验统计数据
- 04保存、读取和列出 CSV 文件
- 05通过资源访问研究数据
适用场景
- 01检索特定疾病的临床试验
- 02查看某项试验的详细资料
- 03保存搜索结果以供后续分析
MCP 相关
向 MCP 客户端提供临床试验搜索、详情与统计工具,以及试验和 CSV 数据资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
临床试验 MCP 服务
🔍 通过简单的 MCP 接口,让 AI 助手能够搜索和访问 ClinicalTrials.gov 数据。
ClinicalTrials MCP 服务通过模型上下文协议(MCP),在 AI 助手与 ClinicalTrials.gov 临床试验库之间搭建桥梁。它允许 AI 模型以编程方式搜索临床试验并访问其内容。
🤝 参与贡献 • 📝 报告 Bug
✨ 核心功能
- 🔎 试验搜索:使用自定义搜索字符串或高级搜索参数查询临床试验 ✅
- 🚀 高效检索:快速访问试验元数据 ✅
- 📊 元数据访问:使用 NCT ID 获取特定试验的详细元数据 ✅
- 📊 研究支持:助力健康科学研究与分析 ✅
- 📋 CSV 管理:保存、加载和列出包含试验数据的 CSV 文件 ✅
- 🗃️ 本地存储:在本地保存试验数据,以便更快访问 ✅
- 📊 统计信息:获取临床试验统计信息 ✅
🚀 快速开始
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 ClinicalTrials Server:
Claude
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client claude --config "{}"
Cursor
将以下内容粘贴到 Settings → Cursor Settings → MCP → Add new server:
- 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
用于开发:
# Clone and set up development environment
git clone https://github.com/JackKuo666/ClinicalTrials-MCP-Server.git
cd ClinicalTrials-MCP-Server
# Create and activate virtual environment
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 vaccine efficacy",
"max_studies": 5
})
print(result)
示例 2:按关键词获取研究
result = await mcp.use_tool("get_studies_by_keyword", {
"keyword": "diabetes",
"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": "alzheimer",
"max_studies": 20,
"filename": "alzheimer_studies.csv",
"fields": ["NCT Number", "Study Title", "Brief Summary", "Conditions"]
})
print(result)
这些示例展示了如何使用 ClinicalTrials MCP 服务提供的主要工具。请根据具体用例调整参数。
🛠 MCP 工具
ClinicalTrials MCP 服务提供以下工具:
search_clinical_trials_and_save_studies_to_csv
使用搜索表达式搜索临床试验,并将结果保存到 CSV 文件。
参数:
search_expr(str):搜索表达式(例如,“Coronavirus+COVID”)max_studies(int,可选):返回的研究数量上限(默认值:10)save_csv(bool,可选):是否将结果保存为 CSV 文件(默认值:True)filename(str,可选):要保存的 CSV 文件名(默认值:corona_fields.csv)fields(list,可选):要包含的字段列表(默认值:NCT Number、Conditions、Study Title、Brief Summary)
**返回:**搜索结果的字符串表示
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):搜索表达式(例如,“Coronavirus+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 使用以下查询搜索临床试验:
Can you search for recent clinical trials about diabetes?
搜索结果将返回匹配试验的基本信息,包括:
• 试验标题
• NCT 编号
• 病症
• 简要摘要
获取试验详情
获得 NCT ID 后,你可以请求更多详情:
Can you show me the details for trial NCT04280705?
返回内容包括:
• 完整试验标题
• 病症
• 简要摘要
• 其他可用详情
📁 项目结构
clinical_trials_server.py:使用 FastMCP 实现的 MCP 服务主程序clinical_trials.py:包含用于调用 ClinicalTrials.gov API 的辅助函数
🔧 依赖项
- Python 3.10+
- FastMCP
- pytrials
- pandas
你可以使用以下命令安装所需依赖项:
pip install FastMCP pytrials pandas
🤝 贡献
欢迎贡献!欢迎提交 Pull Request。
📄 许可证
本项目采用 MIT License 许可。
⚠️ 免责声明
此工具仅用于研究目的。请遵守 ClinicalTrials.gov 的服务条款,并负责任地使用此工具。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。