使用说明

项目简介

AACT临床试验数据MCP服务器是一个基于Model Context Protocol (MCP) 实现的后端服务,旨在为大型语言模型(LLM)提供对Aggregate Analysis of ClinicalTrials.gov (AACT) 数据库的便捷访问。通过此服务器,LLM应用可以安全、高效地查询和分析海量的临床试验数据,从而支持医学研究、药物研发等领域的智能化应用。

主要功能点

  • 数据访问工具 (Tools):
    • 'list_tables': 快速浏览AACT数据库中所有可用的数据表,帮助用户了解数据结构和内容概况。
    • 'describe_table': 详细查看指定数据表的结构,包括列名和数据类型,为精确查询提供基础信息。
    • 'read_query': 执行自定义SQL查询语句,从数据库中提取所需的临床试验数据,支持灵活的数据分析需求。
    • 'append_insight': 记录分析过程中的关键发现和洞察,方便用户构建分析叙事和知识沉淀。
  • 数据资源 (Resources):
    • 'schema://database': 以JSON格式返回数据库的结构信息(Schema),方便LLM理解数据组织方式。
    • 'memo://insights': 返回会话期间记录的所有洞察,形成结构化的分析备忘录。

安装步骤

  1. 环境准备: 确保已安装Python环境。
  2. 下载仓库: 从GitHub仓库 AACT_MCP 克隆代码到本地。
  3. 配置环境变量:
    • 需要设置访问 AACT 数据库的用户名和密码,创建 '.env' 文件,并添加以下内容,替换为您的数据库凭据:
      DB_USER=your_aact_username
      DB_PASSWORD=your_aact_password
  4. 安装依赖 (可选): 虽然仓库中没有明确的 'requirements.txt' 文件,但根据代码依赖,可能需要安装 'fastmcp', 'psycopg2', 'python-dotenv' 等Python库。可以使用 'pip install fastmcp psycopg2 python-dotenv' 命令安装。
  5. 启动服务器: 在项目根目录下,运行 'uvx mcp-server-aact' 命令即可启动 MCP 服务器。 ('uvx' 命令假定环境中可用,根据实际部署环境可能需要调整启动方式,例如直接运行 'python -m src.server')

服务器配置

MCP客户端(例如Semantic Kernel)需要以下配置信息才能连接到 AACT_MCP 服务器。配置信息通常以JSON格式提供:

{
  "server_name": "aact",
  "command": "uvx",
  "args": [
    "mcp-server-aact"
  ],
  "env": {
    "DB_USER": "your_aact_username",  // [请替换为您的AACT数据库用户名]
    "DB_PASSWORD": "your_aact_password" // [请替换为您的AACT数据库密码]
  }
}

参数说明:

  • 'server_name': 服务器的名称,客户端用于识别和调用。可以自定义,例如 "aact"。
  • 'command': 启动 MCP 服务器的可执行命令。这里使用 'uvx',可能需要根据实际部署环境调整。如果直接运行 'python -m src.server',则 'command' 应该设置为 'python -m', 'args' 应该设置为 '["src.server"]'。
  • 'args': 传递给启动命令的参数,这里是 '["mcp-server-aact"]',用于指定要运行的服务器入口点。
  • 'env': 环境变量配置,用于服务器运行时访问数据库等敏感信息。请务必替换 'DB_USER' 和 'DB_PASSWORD' 为您实际的 AACT 数据库用户名和密码。 这些环境变量需要在启动服务器的环境中设置,也可以通过客户端配置传递。

基本使用方法

  1. 客户端集成: 在您的 MCP 客户端应用(例如 Semantic Kernel)中,配置上述服务器信息。
  2. 连接服务器: 客户端应用根据配置信息尝试连接到 AACT_MCP 服务器。
  3. 调用工具和资源: 通过客户端应用,可以调用服务器提供的工具(如 'list_tables', 'read_query')来查询数据库,或访问资源(如 'schema://database', 'memo://insights')获取数据。
  4. 利用LLM能力: 结合LLM的自然语言处理能力,用户可以使用自然语言指令,通过客户端应用间接操作 AACT_MCP 服务器,实现智能化的临床试验数据分析和应用。

示例 (Semantic Kernel):

from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPStdioPlugin

# 创建 AACT Clinical Trials MCP 插件
aact_mcp = MCPStdioPlugin(
    name="aact",
    description="Clinical Trials Database Plugin",
    command="uvx",
    args=["mcp-server-aact"],
    env={
        "DB_USER": "your_aact_username",
        "DB_PASSWORD": "your_aact_password"
    }
)

# 添加到 Semantic Kernel
kernel = Kernel()
kernel.add_plugin(aact_mcp)

# 现在可以使用 kernel.plugins["aact"]["工具名称"] 调用工具,例如:
# result = await kernel.plugins["aact"]["read_query"].invoke_async(query="SELECT nct_id, brief_title FROM ctgov.studies LIMIT 5")
# print(result)

信息

分类

数据库与文件