LangCare MCP FHIR Server
使用说明(Markdown 格式)
-
项目简介
- LangCare MCP FHIR Server 是一个基于 MCP 协议的后端服务,作为 AI 代理的上下文和工具提供者。它对接各种 FHIR R4 服务器(GCP Healthcare、EPIC、Cerner、通用服务器),通过 4 个通用的 MCP 工具(fhir_read、fhir_search、fhir_create、fhir_update)提供对患者及医疗数据的访问与修改能力,并内置 MCP Apps 实现交互式 UI,方便人工智能/代理在 Claude、ChatGPT 等场景中获取医疗上下文。
- 服务端实现了 MCP 的核心能力:注册工具、托管资源、处理 MCP 请求与 JSON-RPC 风格的调用(如 tools/call、initialize),并提供多传输通道(stdio、Streamable HTTP)以及健康检查与安全控制。
-
主要功能点
- MCP 服务端核心
- 注册并暴露工具:fhir_read、fhir_search、fhir_create、fhir_update,支持任意 FHIR 资源类型。
- 注册 MCP Apps:将 UI 资源嵌入并注册为 MCP Resource,同时提供与 UI 关联的工具入口。
- 会话与能力声明:通过 MCP SDK 提供标准化的能力描述。
- FHIR 代理与数据访问
- 支持多种后端 Provider:GCP、EPIC、Cerner、Generic(通用 HTTP/FHIR 服务)。
- 统一的资源操作:Read、Search、Create、Update 的 FHIR 请求封装与错误处理。
- 安全与审计
- 基于 TLS、PHI 警戒、无 PHI 持久化、审计日志等机制,尽量降低数据泄露风险。
- HTTP 传输支持 MCP 客户端 token 校验与速率限制。
- 开发与部署
- 提供 stdio 与 HTTP 两种传输模式,支持本地 Claud Desktop 场景与云端部署(Fly.io 等)。
- 提供本地开发与远程部署的配置示例、脚本和指南。
- MCP 服务端核心
-
安装步骤
- 依赖与构建
- 需要 Go 1.25 及以上版本。
- 使用 Makefile 进行构建:进入仓库根目录执行 make build。
- 运行方式(两种传输模式可选)
- stdio 模式(适配 Claude Desktop 等本地代理)
- 直接运行生成的二进制,或通过配置文件指定配置路径。
- HTTP 模式(Streamable HTTP,适用于 MCP 客户端远程接入)
- 启动时启用 HTTP 传输(-http),配置端口(-port)以及 TLS(如需要)。
- stdio 模式(适配 Claude Desktop 等本地代理)
- 启动后码头端点
- HTTP 模式下,默认 /mcp 为 MCP 入口,/health(/healthz)用于健康检查。
- 依赖与构建
-
服务器配置(给 MCP 客户端的配置信息示例,描述性文本,不含代码块)
- 配置项说明
- server_name: 将要启动的 MCP 服务器名称,用于客户端识别与日志区分。
- command: 启动命令,一般为 langcare-mcp-fhir。
- args: 启动参数数组,包含 -config 指向 YAML 配置文件的路径,以及传输模式相关开关(如 -http、-stdio、-port 等)。
- 可信示例(JSON 表示,用于 MCP 客户端的初始连接描述):
- 示例一(本地 HTTP 模式,默认端口 8080)
- server_name: "langcare-mcp-fhir"
- command: "langcare-mcp-fhir"
- args: ["-config", "/path/to/configs/config.yaml", "-http", "-port", "8080"] 注释:使用 HTTP 传输,端口为 8080,配置文件包含连接到 FHIR 后端、Auth、速率限制等信息。
- 示例二(本地 stdio 模式,适合 Claude Desktop)
- server_name: "langcare-mcp-fhir-stdio"
- command: "langcare-mcp-fhir"
- args: ["-config", "/path/to/configs/config.yaml", "-stdio"] 注释:使用 stdio 传输,通常用于 Claude Desktop 的本地整合,服务器端不暴露网络端点。
- 示例一(本地 HTTP 模式,默认端口 8080)
- 重要说明
- MCP 客户端只需要 server_name、command 与 args,用于启动并连接 MCP 服务器。实际的 YAML 配置(config.yaml 等)由服务器端决定,包括要连接的 FHIR 提供者、传输设置、认证策略、速率限制等。客户端无需了解内部实现细节,但需要能够启动并连接到服务器。
- 配置项说明
-
基本使用方法
- 启动与连接
- 通过命令行启动 LangCare MCP FHIR Server,指定配置文件路径和传输模式(stdio 或 http)。
- 在 Claude Desktop 等 MCP 客户端中,将服务器配置为一个可用的 MCP 源,提供启动命令与参数。
- 使用流程
- 客户端初始化与能力协商(initialize)。
- 调用工具(tools/call)执行 fhir_read、fhir_search、fhir_create、fhir_update 中的任意操作。
- 如需要,可通过嵌入的 MCP Apps 在 UI 内进行交互式操作。
- 典型工作流
- 指向 EMR 的 FHIR 服务,完成患者数据查询、资源创建/更新等临床任务;结合 40+ 临床技能库和 UI 应用,提升 AI 代理的临床工作流能力。
- 注意事项
- 如配置了 HTTP 传输,需要正确配置 MCP_AUTH_TOKENS,确保客户端请求能够通过身份认证。
- 生产环境应开启 TLS、审计日志、速率限制和相应的身份鉴权策略。
- 启动与连接