项目简介

'omop_mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在帮助大型语言模型(LLM)将复杂的临床术语映射到 Observational Medical Outcomes Partnership (OMOP) 通用数据模型中的标准化概念。它通过提供特定的工具和上下文资源,使得LLM能够准确地搜索、验证和转换医学概念,从而实现医疗数据的标准化和互操作性。

主要功能点

  • 临床术语映射: 将用户提供的临床术语(如疾病、药物、测量等)映射到OMOP标准概念。
  • OMOP 概念验证: 验证映射结果的准确性和有效性。
  • OMOP 词汇表搜索: 在OMOP词汇表中搜索相关概念,提供详细的元数据。
  • 跨编码系统转换: 支持不同临床编码系统之间的概念转换。
  • 提供OMOP上下文资源: 允许LLM访问OMOP表结构、官方文档和首选词汇表等信息,增强映射的准确性。
  • Prompt 模板管理: 提供预定义的Prompt模板,简化LLM与服务器的交互。

安装步骤

  1. 克隆仓库: 将'omop_mcp' GitHub 仓库克隆到您的本地机器上。

    git clone https://github.com/OHNLP/omop_mcp.git
    cd omop_mcp
  2. 安装依赖: 建议使用 'uv' 或 'pip' 等工具安装项目所需的Python依赖。

    # 使用 uv 安装 (推荐)
    uv sync
    
    # 或者使用 pip 安装
    pip install -e .
  3. 配置环境变量: 在项目根目录创建一个 '.env' 文件,并根据您的OpenAI或Azure OpenAI服务配置相关API密钥和模型信息(此MCP服务器依赖LLM来选择最终的映射结果)。

    例如,这是一个 '.env' 文件的内容示例(请根据您的实际情况填写):

    # 如果使用 Azure OpenAI
    AZURE_OPENAI_ENDPOINT_WEST="YOUR_AZURE_OPENAI_ENDPOINT"
    AZURE_OPENAI_API_KEY_WEST="YOUR_AZURE_OPENAI_KEY"
    AZURE_API_VERSION_WEST="2024-02-01"
    MODEL_NAME="YOUR_AZURE_DEPLOYMENT_NAME"
    
    # 如果使用 OpenAI
    # OPENAI_API_KEY="YOUR_OPENAI_KEY"
    # MODEL_NAME="gpt-4o"

服务器配置 (用于 MCP 客户端)

此MCP服务器是为MCP客户端(如 Claude Desktop 或其他支持 MCP 协议的 LLM 应用)提供服务的。您需要将以下配置添加到您的 MCP 客户端的配置文件中。

例如,在 'claude_desktop_config.json' 文件中添加:

{
  "mcpServers": {
    "omop_mcp": {
      "command": "uv",
      "args": ["--directory", "<path-to-local-repo>", "run", "omop_mcp"]
    }
  }
}
  • '"omop_mcp"': 这是此MCP服务器在客户端中的唯一标识名称。
  • '"command"': 启动服务器的可执行文件命令,这里推荐使用 'uv' (一个快速的 Python 包安装器和运行器)。
  • '"args"': 传递给 'command' 的参数。
    • '"--directory", "<path-to-local-repo>"': 指定您的 'omop_mcp' 本地仓库的绝对路径。
    • '"run", "omop_mcp"': 'uv' 工具的命令,用于运行 'omop_mcp' Python 包中的主函数,从而启动MCP服务器。

基本使用方法 (通过 LLM 客户端)

配置完成后,当您的MCP客户端(如 Claude Desktop)启动并连接到 'omop_mcp' 服务器后,您可以在 LLM 的对话界面中通过自然语言请求OMOP概念映射。

用户 Prompt 示例: "Map 'Temperature Temporal Scanner - RR' for 'measurement_concept_id' in the 'measurement' table."

LLM 响应示例 (由 MCP 服务器的工具处理后生成):

CONCEPT_ID: 46235152
CODE: 75539-7
NAME: Body temperature - Temporal artery
CLASS: Clinical Observation
CONCEPT: Standard
VALIDITY: Valid
DOMAIN: Measurement
VOCAB: LOINC
URL: https://athena.ohdsi.org/search-terms/terms/46235152
REASON: This LOINC concept specifically represents body temperature measured at the temporal artery, which is what a temporal scanner measures. The "RR" in your source term likely refers to "Recovery Room" or another location/department indicator, but in OMOP, the location would typically be captured in a separate field rather than as part of the measurement concept itself.

此过程通常由LLM自动调用 'find_omop_concept' 工具来完成,用户只需提供意图清晰的查询即可。

信息

分类

AI与计算