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 等)。
      • 提供本地开发与远程部署的配置示例、脚本和指南。
  • 安装步骤

    • 依赖与构建
      • 需要 Go 1.25 及以上版本。
      • 使用 Makefile 进行构建:进入仓库根目录执行 make build。
    • 运行方式(两种传输模式可选)
      • stdio 模式(适配 Claude Desktop 等本地代理)
        • 直接运行生成的二进制,或通过配置文件指定配置路径。
      • HTTP 模式(Streamable HTTP,适用于 MCP 客户端远程接入)
        • 启动时启用 HTTP 传输(-http),配置端口(-port)以及 TLS(如需要)。
    • 启动后码头端点
      • 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 的本地整合,服务器端不暴露网络端点。
    • 重要说明
      • 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、审计日志、速率限制和相应的身份鉴权策略。

服务器信息