🔍 使AI助手能够通过简单的MCP接口搜索并访问ClinicalTrials.gov的数据。
ClinicalTrials MCP Server通过模型上下文协议(MCP)在AI助手与ClinicalTrials.gov的临床试验存储库之间提供了一个桥梁。它允许AI模型以编程方式搜索临床试验并访问其内容。
🤝 贡献 • 📝 报告错误
要通过Smithery自动安装ClinicalTrials Server for Claude Desktop:
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client claude --config "{}"
将以下内容粘贴到设置 → Cursor 设置 → MCP → 添加新服务器中:
npx -y @smithery/cli@latest run ClinicalTrials-mcp-server --client cursor --config "{}"
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client windsurf --config "{}"
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工具。这里有一些如何使用这些工具的例子:
result = await mcp.use_tool("search_clinical_trials_and_save_studies_to_csv", {
"search_expr": "COVID-19疫苗效力",
"max_studies": 5
})
print(result)
result = await mcp.use_tool("get_studies_by_keyword", {
"keyword": "糖尿病",
"max_studies": 10
})
print(result)
result = await mcp.use_tool("get_full_study_details", {
"nct_id": "NCT04280705"
})
print(result)
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提供的主要工具。根据您的具体需求调整参数。
ClinicalTrials MCP Server提供了以下工具:
使用搜索表达式搜索临床试验并将结果保存到CSV文件。
参数:
search_expr (str): 搜索表达式(例如:"冠状病毒+COVID")max_studies (int, 可选): 返回的最大研究数量(默认:10)save_csv (bool, 可选): 是否将结果保存为CSV文件(默认:True)filename (str, 可选): 要保存的CSV文件名(默认:corona_fields.csv)fields (list, 可选): 包含的字段列表(默认:NCT编号,条件,研究标题,简短概述)返回值: 搜索结果的字符串表示
获取特定临床试验的详细信息。
参数:
nct_id (str): 临床试验的NCT ID返回值: 研究详情的字符串表示
获取与特定关键词相关的研究。
参数:
keyword (str): 要搜索的关键词max_studies (int, 可选): 返回的最大研究数量(默认:20)save_csv (bool, 可选): 是否将结果保存为CSV文件(默认:True)filename (str, 可选): 要保存的CSV文件名(默认:keyword_results_{keyword}.csv)返回值: 研究的字符串表示
获取关于临床试验的统计信息。
参数:
condition (str, 可选): 可选的过滤条件返回值: 统计信息的字符串表示
获取完整的研究数据并保存到CSV。
参数:
search_expr (str): 搜索表达式(例如:"冠状病毒+COVID")max_studies (int, 可选): 返回的最大研究数量(默认:20)filename (str, 可选): 要保存的CSV文件名(默认:full_studies.csv)返回值: 表明结果已保存的消息
加载并显示来自CSV文件的数据。
参数:
filename (str): 要加载的CSV文件名返回值: CSV数据的字符串表示
列出当前目录下所有可用的CSV文件。
返回值: 可用CSV文件的字符串表示
ClinicalTrials MCP Server还提供了以下资源:
作为资源获取corona字段数据。
作为资源获取完整的研究数据。
从特定的CSV文件获取数据。
参数:
filename (str): CSV文件名获取所有可用CSV文件的列表。
通过NCT ID获取特定的研究。
参数:
nct_id (str): 临床试验的NCT ID获取与特定条件相关的研究。
参数:
condition (str): 要搜索的条件将此配置添加到您的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编号,可以要求更多详情:
你能展示一下试验NCT04280705的详情吗?
这将返回:
clinical_trials_server.py: 主要的MCP服务器实现,使用FastMCPclinical_trials.py: 包含与ClinicalTrials.gov API交互的帮助函数您可以使用以下命令安装所需的依赖项:
pip install FastMCP pytrials pandas
欢迎贡献!请随时提交Pull Request。
本项目采用MIT许可证。
此工具仅用于研究目的。请尊重ClinicalTrials.gov的服务条款,并负责任地使用此工具。