临床试验代理服务

基于MCP架构的临床试验数据检索与生成代理,集成REST API、SQL和向量数据库,为LLM客户端提供结构化与语义搜索功能。

  • by tonih23
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tonih23/clinical-trials-mcp-agent

使用说明

企业临床试验代理(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工具。

2.结构化推理(SQL工具)

用户要求“糖尿病试验”。Agent自主选择SQL工具按疾病进行过滤。

3.语义推理(RAG工具)

用户要求特定的“肾功能排除标准”。Agent切换工具以对协议文本执行矢量搜索。


🛠️ 安装

  1. 克隆存储库:

    克隆https://github.com/tonih23/clinical-trials-mcp-agent.git
    cd临床试验mcp制剂

  2. 设置环境:

    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.py

3.连接到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.)


作为企业人工智能集成的概念验证而开发。