使用说明

项目简介

EHR Search MCP Server 是一个专门为大型语言模型 (LLM) 和其他 AI 代理设计的 MCP 服务器,旨在安全且标准化地访问和分析电子健康记录 (EHR) 数据。它利用 SMART on FHIR 标准进行安全数据访问,并通过 Model Context Protocol (MCP) 暴露了一系列强大的数据分析工具,使得 AI 应用无需直接访问 EHR 系统即可安全地查询和分析患者数据。

主要功能点

  • 资源管理 (Resources): 虽然仓库本身不直接管理“资源”的概念,但它将从 EHR 系统检索的 FHIR 数据(例如患者信息、诊断、药物等)作为可操作的数据集提供给工具使用,可以理解为隐式地管理了 EHR 数据资源。
  • 工具注册和执行 (Tools): 实现了 'grep_record', 'query_record', 'eval_record', 'read_resource', 'read_attachment' 等工具,允许 LLM 客户端通过 MCP 协议调用这些工具来搜索、查询和分析 EHR 数据。
    • 'grep_record': 在整个 EHR 记录中执行文本或正则表达式搜索,适用于关键词查找。
    • 'query_record': 对结构化的 FHIR 数据执行 SQL 查询,用于精确的数据检索。
    • 'eval_record': 执行自定义 JavaScript 代码以进行复杂的数据分析和处理。
    • 'read_resource': 根据资源类型和 ID 读取特定的 FHIR 资源。
    • 'read_attachment': 读取 FHIR 资源附件的内容。
  • Prompt 模板 (Prompts): 仓库本身未显式定义 Prompt 模板功能。
  • 多种传输协议支持: 支持 Stdio (标准输入/输出) 和 SSE (Server-Sent Events) 两种传输协议,满足不同应用场景的需求。
  • OAuth 2.1 认证: 通过 OAuth 2.1 协议进行客户端身份验证,增强了服务器的安全性 (SSE 模式)。

安装步骤

  1. 安装 Bun: 确保已安装 Bun 运行时环境 (https://bun.sh/)。
  2. 克隆仓库: 'git clone https://github.com/jmandel/health-record-mcp.git'
  3. 进入仓库目录: 'cd health-record-mcp'
  4. 安装依赖: 'bun install'
  5. 构建 ehretriever 客户端: 运行 'bun run build:ehretriever' 构建用于数据获取的 Web 客户端 (仅在 '--create-db' 模式下需要)。

服务器配置

1. 本地 MCP 服务器 (Stdio 模式)

适用于本地开发和测试,通过标准输入/输出与 MCP 客户端通信。

MCP 客户端配置示例 (JSON):

{
  "mcpServers": {
    "local-ehr": {
      "name": "Local EHR Search",
      "command": "bun",
      "args": [
          "/path/to/health-record-mcp/src/cli.ts", // 请替换为 cli.ts 文件的绝对路径
          "--db",
          "/path/to/ehr-data/my_record.sqlite"    // 请替换为数据库文件的绝对路径
        ]
    }
  }
}

参数说明:

  • 'command': 设置为 'bun' (或 Bun 运行时的绝对路径)。
  • 'args': 参数数组,包含:
    • '/path/to/health-record-mcp/src/cli.ts': 'cli.ts' 脚本的绝对路径。
    • '--db': 指定数据库文件路径的标志。
    • '/path/to/ehr-data/my_record.sqlite': SQLite 数据库文件的绝对路径,用于存储 EHR 数据。 请确保使用绝对路径,并根据实际情况修改数据库文件路径。

2. 完整 MCP 服务器 (SSE 模式)

适用于需要网络连接的场景,通过 Server-Sent Events 协议与 MCP 客户端通信。

MCP 客户端配置: SSE 模式的服务器主要通过 OAuth 2.1 进行认证,客户端配置会更复杂,并且需要客户端支持 OAuth 2.1 客户端凭据流程。当前仓库的 SSE 模式仍处于实验阶段,标准 MCP 客户端可能尚不支持此认证方式。

服务器启动: SSE 模式服务器可以通过运行 'bun run src/sse.ts' 启动。

基本使用方法

  1. 获取 EHR 数据 (Stdio 模式 或 SSE 模式):

    • Stdio 模式:
      a. 运行命令 'bun run src/cli.ts --create-db --db ./data/my_record.sqlite' (示例) 以启动临时 Web 服务器并打开浏览器。 b. 在浏览器中完成 SMART on FHIR 流程以连接到 EHR 系统并获取数据。数据将保存到指定的 SQLite 数据库文件中。 c. 数据库文件创建完成后,配置 MCP 客户端连接到本地 Stdio 服务器 (参考上面的 "服务器配置 - 1. 本地 MCP 服务器 (Stdio 模式)")。
    • SSE 模式: SSE 模式服务器 ('bun run src/sse.ts') 启动后,客户端需要实现 OAuth 2.1 客户端流程以连接和认证 (当前客户端支持有限)。
  2. 使用 MCP 客户端连接服务器: 根据选择的服务器模式 (Stdio 或 SSE),配置 MCP 客户端连接到 EHR Search MCP Server。

  3. 调用工具: 通过 MCP 客户端,可以调用 'grep_record', 'query_record', 'eval_record', 'read_resource', 'read_attachment' 等工具,向服务器发送符合 MCP 协议的请求,以实现 EHR 数据的搜索、查询和分析。工具的具体使用方法和参数可以参考仓库 'src/tools.ts' 文件中定义的 Schema。

注意: SSE 模式的 OAuth 2.1 客户端支持目前可能有限,Stdio 模式更适合本地测试和开发。 使用绝对路径配置服务器启动命令和数据库文件路径,以确保 MCP 客户端能正确连接到服务器。

信息

分类

商业系统