使用说明
项目简介
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 模式)。
安装步骤
- 安装 Bun: 确保已安装 Bun 运行时环境 (https://bun.sh/)。
- 克隆仓库: 'git clone https://github.com/jmandel/health-record-mcp.git'
- 进入仓库目录: 'cd health-record-mcp'
- 安装依赖: 'bun install'
- 构建 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' 启动。
基本使用方法
-
获取 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 客户端流程以连接和认证 (当前客户端支持有限)。
- Stdio 模式:
-
使用 MCP 客户端连接服务器: 根据选择的服务器模式 (Stdio 或 SSE),配置 MCP 客户端连接到 EHR Search MCP Server。
-
调用工具: 通过 MCP 客户端,可以调用 'grep_record', 'query_record', 'eval_record', 'read_resource', 'read_attachment' 等工具,向服务器发送符合 MCP 协议的请求,以实现 EHR 数据的搜索、查询和分析。工具的具体使用方法和参数可以参考仓库 'src/tools.ts' 文件中定义的 Schema。
注意: SSE 模式的 OAuth 2.1 客户端支持目前可能有限,Stdio 模式更适合本地测试和开发。 使用绝对路径配置服务器启动命令和数据库文件路径,以确保 MCP 客户端能正确连接到服务器。
信息
分类
商业系统