专业领域

FHIR MCP Server:让智能体读写任意 FHIR 医疗数据

WSO2 出品,把任意 FHIR 服务器包装成 MCP:搜索、读取、增改删资源,支持 SMART-on-FHIR 授权和 FHIRPath 字段过滤。

项目与安装文档

查看项目

https://github.com/wso2/fhir-mcp-server

医院和医疗软件之间交换数据,主流标准是 FHIR:病人、检验、用药都是标准化的资源,通过 REST API 读写。WSO2 的 FHIR MCP Server 把这套接口直接交给智能体,不管后面是开源的 HAPI FHIR 还是 Epic 这样的电子病历系统,智能体都按同一组工具操作。它由集成软件公司 WSO2 维护,截至 2026-10-06 约 140 star。

能做什么

  • 探查能力:get_capabilities 返回某个资源类型支持的检索参数和自定义操作,智能体先看清楚再查询。
  • 检索和读取:search 按 FHIR 检索参数查找,read 按 ID 读取,也能调用 $everything 这类扩展操作。
  • 写入:create、update、delete 对应 FHIR 的增改删操作。
  • 只取需要的字段:response_filter_fhirpaths 用 FHIRPath 表达式过滤返回内容,比如只要 Patient.name 和 Patient.birthDate,省上下文。
  • 授权:支持 SMART-on-FHIR 的 OAuth 2.0 授权码流程,README 有接 Epic 沙箱的演示视频;get_user 返回当前登录用户对应的病人资料。

适合谁

  • 医疗信息化团队,想在测试环境里让智能体按自然语言查询病历数据。
  • 做临床 AI 应用的开发者,需要一个标准接口连多个 FHIR 后端。

接入方式

需要 Python 3.8 以上、uv,以及一个可访问的 FHIR 服务器。设置 FHIR_SERVER_BASE_URL(以及授权用的 client ID、secret、scopes,或设 FHIR_SERVER_DISABLE_AUTHORIZATION=True)后启动,默认监听 http://localhost:8000:

uvx fhir-mcp-server

客户端连 Streamable HTTP 端点即可:

"servers": {
  "fhir": {
    "type": "http",
    "url": "http://localhost:8000/mcp"
  }
}

仓库里的 docker-compose.yml 能一次拉起 HAPI FHIR 和 PostgreSQL,适合先在本地试。

编辑点评

FHIR 类 MCP 里,这个是通用性最好的一个:不绑定某家厂商,工具直接映射 FHIR 的标准操作,FHIRPath 过滤解决了 FHIR 返回体太大的老问题。最需要小心的是写权限,update 和 delete 作用在真实的临床记录上,接生产系统前应只给只读 scope,并在客户端开启调用确认。病历属于敏感个人信息,部署要符合当地的隐私法规;智能体的回答也不能当作医疗建议。许可证为 Apache-2.0。