项目简介

MedSchool MCP服务器是为医疗领域LLM应用设计的后端服务,它遵循Model Context Protocol (MCP) 标准,提供对医疗数据、临床术语和外部功能的统一访问接口。该服务器通过集成多种工具,使LLM能够执行如查询FHIR记录、调用OpenFDA数据、执行Python代码进行数据分析等复杂任务,旨在帮助LLM在医疗环境中提升智能和决策能力。

主要功能点

  • FHIR 数据访问: 能够查询、提交和验证FHIR R4标准的医疗记录,支持复杂的搜索和资源读取操作。
  • OpenFDA 外部数据: 提供对美国食品药品监督管理局(FDA)公开数据的访问,包括药物不良事件、药品说明书(SPL)、召回信息和药品短缺情况。
  • 代码执行沙盒: 允许LLM在隔离环境中安全地执行Python脚本和Shell命令,支持数据处理和高级计算任务,避免上下文窗口溢出。
  • 医学术语服务: 提供医学编码(如SNOMED CT, ICD-10-CM, LOINC, RxNorm)的查找和初步的交叉映射功能。
  • 临时记事本: 提供简单的键值对存储功能,方便LLM在会话中暂存和读取上下文信息。
  • 标准化协议: 通过JSON-RPC over HTTP协议与MCP客户端通信,支持会话管理和能力声明。

安装步骤

  1. 克隆仓库: 首先,将MedSchool仓库克隆到本地。
    git clone https://github.com/ToadResearch/MedSchool.git
    cd MedSchool
  2. 准备环境文件: 复制示例 '.env.example' 文件为 '.env',并根据需要配置其中的API密钥和环境变量。
    cp .env.example .env
    # 编辑 .env 文件,填入必要的API密钥,例如 CEREBRAS_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY 等。
  3. 启动所有Docker服务: 使用 'startup.sh' 脚本启动包括FHIR服务器、中间件和MCP服务器在内的所有Docker服务。添加 '--synthea' 参数可以同时下载并加载合成的患者数据到FHIR服务器。
    ./startup.sh --synthea
    这将启动所有必要的后端服务,包括运行在 'http://127.0.0.1:3000/mcp_server/mcp' 的MCP服务器。

服务器配置

MedSchool MCP服务器启动后,将通过 'http://127.0.0.1:3000/mcp_server/mcp' 地址提供服务。您的MCP客户端(如 'api_repl.py' 或其他任何遵循MCP协议的客户端)需要配置此地址才能连接。

以下是MCP客户端 'mcp.json' 配置示例的说明:

{
  "mcpServers": {
    "medschool-mcp": {
      "url": "http://127.0.0.1:3000/mcp_server/mcp"
      // 其他可选配置,例如:
      // "headers": {
      //   "Authorization": "Bearer YOUR_AUTH_TOKEN" // 如果服务器需要认证
      // },
      // "transport": "http" // 或者 "sse", "websocket",默认为自动推断
    }
  }
}
  • 'medschool-mcp': 这是您为MCP服务器定义的名称,可以根据您的偏好命名。
  • 'url': 这是MedSchool MCP服务器的访问地址。默认情况下,它会在Docker环境中映射到 'http://127.0.0.1:3000/mcp_server/mcp'。

基本使用方法

MCP服务器启动并配置到您的客户端后,您可以通过客户端发送请求来调用服务器提供的工具。

  1. 使用 'api_repl.py' 客户端: MedSchool仓库提供了一个交互式API REPL客户端 'api_repl.py',您可以连接到它并使用MCP服务器。

    # 例如,连接到Cerebras模型,并通过MCP服务器启用工具
    python api_repl.py \
      -m gpt-oss-120b \
      -k CEREBRAS_API_KEY \
      -b https://api.cerebras.ai/v1 \
      --mcp-config configs/mcp.json \
      --tools

    在REPL中,您可以:

    • 通过 '/tools on' 命令启用工具调用。
    • 通过 '/mcp enable medschool-mcp' 命令连接到 MedSchool MCP 服务器。
    • 使用 '/tools list' 查看当前可用的工具列表。
    • 直接向LLM提问,LLM会根据其能力决定是否调用MCP服务器上的工具来回答问题。例如,您可以询问 "Find the latest HbA1c for Patient 123" 或 "What are the adverse events for Aspirin?"。
  2. 通过其他MCP客户端集成: 如果您开发自己的MCP客户端或使用其他兼容的客户端,只需按照其文档配置上述MCP服务器的URL和可选参数即可。客户端将通过JSON-RPC协议发送请求,调用MedSchool服务器上注册的工具。

信息

分类

AI与计算