企业临床试验代理(MCP架构)
该项目使用 模型上下文协议(MCP) 标准。它充当一个集成中间件,可以获取真实世界的临床数据,将其存储在混合数据库(SQL+Vector)中,并将其暴露给LLM客户端进行自主推理。
🚀 主要特点
- REST API集成: 实现自定义ETL管道(
etl_pipeline.py)使用ClinicalTrials.gov API进行分页和错误处理。 - 混合数据架构:
- 结构化(SQL): 使用SQLite进行高精度过滤(试验状态、阶段、条件)。 - 非结构化(矢量数据库): 使用ChromaDB sentence-transformers 用于医疗协议中的语义搜索。
- MCP服务器: 集中式集成服务器(
mcp_server.py)它为任何AI客户端(Claude Desktop、Cursor、IDE)标准化了工具。
______________________________________________________________________
📸 自主代理演示
1.后端验证(MCP检查员)
*服务器通过标准JSON-RPC公开结构化SQL工具和Vector RAG工具。* MCP Inspector
2.结构化推理(SQL工具)
*用户要求“糖尿病试验”。Agent自主选择SQL工具按疾病进行过滤。* SQL Tool Use SQL Results
3.语义推理(RAG工具)
*用户要求特定的“肾功能排除标准”。Agent切换工具以对协议文本执行矢量搜索。* RAG Tool Use RAG Results
______________________________________________________________________
🛠️ 安装
- 克隆存储库:
克隆https://github.com/tonih23/clinical-trials-mcp-agent.git\ cd临床试验mcp制剂
- 设置环境:
python-m venv-venv
# 窗户:
venv\\Scripts\\activate
# Mac/Linux:
源venv/bin/activate
pip安装-r要求.txt
🔄 使用工作流程
1.数据摄取(ETL)
运行管道从API获取实时数据并填充本地数据库。这展示了REST集成模式:
python etl_pipeline.py这将获取与肿瘤学、心脏病学和糖尿病相关的最新试验。
2.运行MCP服务器(开发模式)
启动集成服务器以测试连接:
mcp dev mcp_server.py3.连接到LLM客户端(类似于生产)
要将此配置与MCP兼容的客户端(如Claude Desktop)一起使用,请将此配置添加到您的 claude_desktop_config.json:
注意:将下面的路径替换为项目文件夹的绝对路径。\ 在Windows上,使用双反斜杠(\\).{
"mcpServers": {
"clinical-agent": {
"command": "python",
"args": ["C:\\Users\\YOUR_USER\\Desktop\\clinical-trials-mcp-agent\\mcp_server.py"]
}
}
}🧠 查询示例
连接后,Agent可以执行自主工具调用:
结构化查询(SQL)
“寻找糖尿病的活跃3期试验。”\ (LLM将自动将此路由到 search_trials_sql.)
语义查询(RAG)
“对于试验NCT00528879,关于肾功能的具体排除标准是什么?”\ (LLM将自动将此路由到 get_protocol_details_rag.)
______________________________________________________________________
作为企业人工智能集成的概念验证而开发。
