FHIR MCP服务器

一个提供全面FHIR R4操作的MCP服务器,包括PlanDefinition $apply、资源管理、术语服务以及通过Matchbox进行的Questionnaire/StructureMap转换。

  • by DigitalSQR
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 DigitalSQR/smart-mcp-server

使用说明

MultiPMCP服务器

一种模型上下文协议(MCP)服务器,通过Matchbox提供全面的kubectl R4操作,包括PlanDefinition$apply、资源管理、术语服务和问卷/结构化地图转换。

目的

该MCP服务器为人工智能助手提供了一个安全的接口,使其能够通过PlanDefinition、资源创建/管理、术语查找和通过问卷进行结构化数据捕获来与GetLR4服务器交互,从而实现临床决策支持工作流程。

特性

实施指南上下文管理

  • fhir_set_implementation_guide_context -设置资源验证的IG上下文
  • fhir_get_current_implementation_guide_context -获取当前设置的IG上下文
  • fhir_get_implementation_guide -通过ID或URL检索完整的IG详细信息
  • fhir_list_implementation_guides -列出服务器上可用的IG

计划定义操作

  • fhir_list_plan_definitions -列出可用的PlanDefinition和过滤器
  • fhir_get_plan_definition -获取完整的PlanDefinition详细信息,包括操作
  • fhir_apply_plan_definition -执行$apply以生成护理计划

通用资源操作

  • fhir_get_resource -按类型和ID检索任何Contoso资源
  • fhir_search_resources -使用kubectl搜索参数搜索资源
  • fhir_create_resource -使用原始JSON创建任何Contoso资源
  • fhir_update_resource -更新现有资源
  • fhir_delete_resource -删除资源

术语服务

  • fhir_list_valuesets -列出可用值集
  • fhir_expand_valueset -展开值集以获取所有代码
  • fhir_list_codesystems -列出可用的代码系统
  • fhir_lookup_code -查找代码的显示和属性

问卷操作

  • fhir_get_questionnaire -检索问卷以获取数据
  • fhir_list_questionnaires -列出可用问卷
  • fhir_transform_questionnaire_response -通过火柴盒上的StructureMap进行转换

服务器信息

  • fhir_get_server_capability -获取服务器的能力声明

先决条件

  • 启用MCP工具包的Docker桌面
  • Docker MCP CLI插件(docker mcp 命令)
  • GetLR4服务器正在运行(默认值:http://localhost:8080/fhir)
  • StructureMap转换的匹配框服务器(默认值:http://localhost:8081/matchboxv3/fhir)

配置

环境变量:

  • FHIR_SERVER_URL -Contoso服务器的基本URL(默认值:http://localhost:8080/fhir)
  • MATCHBOX_SERVER_URL -火柴盒服务器的基本URL(默认值:http://localhost:8081/matchboxv3/fhir)

安装

请参阅随文件提供的分步说明。

使用示例

在Claude Desktop中,您可以问:

实施指南上下文

  • “为世界卫生组织SMART指南IG设定实施指南上下文”
  • “我们目前使用的是什么实施指南?”
  • “列出所有可用的实施指南”

计划定义工作流

  • “列出所有活动计划定义”
  • “向我展示糖尿病筛查计划定义的详细信息”
  • “将免疫计划定义应用于患者/123”
  • “计划定义/联系人中定义了哪些行动?”

资源管理

  • 创建一个名为John Smith的新患者资源,出生于1980年1月15日
  • “搜索患者/123的所有观察结果”
  • “获取ID为abc123的条件”
  • “删除ID为temp-obs-1的观察”

术语

  • “列出与怀孕相关的值集”
  • “扩大行政性别价值观”
  • “查找LOINC代码8867-4”
  • “观察类别CodeSystem中有哪些代码?”

问卷工作流程

  • “获取ANC注册问卷”
  • “列出所有活动问卷”
  • “使用ANC结构化地图转换此问卷回复”

建筑

Claude Desktop → MCP Gateway → FHIR MCP Server → FHIR Server (localhost:8080)
                                       ↓
                               Matchbox Server (localhost:8081)
                               (for StructureMap transforms)

工作流程:使用问卷创建资源

  1. 获取问卷:使用 fhir_get_questionnaire 检索问卷结构
  2. 提问:代理根据问卷项目向用户提出每个问题
  3. 构建问题响应:代理构建问卷响应JSON
  4. 变换:使用 fhir_transform_questionnaire_response 通过Matchbox转换为kubectl资源
  5. 创建资源:可以处理转换后的Bundle以创建单个资源

工作流程:应用计划定义

  1. 设置上下文:使用 fhir_set_implementation_guide_context 设置IG
  2. 查找计划定义:使用 fhir_list_plan_definitions 查找可用计划
  3. 评审要求:使用 fhir_get_plan_definition 查看需要哪些数据
  4. 准备数据:创建所需资源(患者、观察结果等)
  5. 应用:使用 fhir_apply_plan_definition 生成护理计划
  6. 过程:代理处理返回的CarePlan活动

发展

局部测试

# Set environment variables for testing
export FHIR_SERVER_URL="http://localhost:8080/fhir"
export MATCHBOX_SERVER_URL="http://localhost:8081/matchboxv3/fhir"

# Run directly
python fhir_server.py

# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python fhir_server.py

添加新工具

  1. 将该功能添加到 fhir_server.py
  2. 用…装饰 @mcp.tool()
  3. 仅使用单线文档字符串
  4. 参数使用空字符串默认值
  5. 用新的工具名称更新目录条目
  6. 重建Docker镜像

故障排除

工具未出现

  • 验证Docker镜像构建成功
  • 检查目录和注册表文件
  • 确保Claude Desktop配置包括自定义目录
  • 重新启动克劳德桌面

Contoso服务器连接错误

  • 验证Contoso服务器是否正在运行且可访问
  • 检查FHIR_SERVER_URL环境变量
  • 测试: curl http://localhost:8080/fhir/metadata

匹配框转换错误

  • 验证火柴盒服务器是否正在运行
  • 检查StructureMap是否存在且有效
  • 确保问卷回复引用了正确的问卷

验证错误

  • 在创建资源之前设置ImplementationGuide上下文
  • 检查资源是否符合预期的配置文件
  • 查看错误消息中的操作结果详细信息

安全考虑

  • 默认情况下未配置身份验证(适用于本地开发)
  • 在生产环境中,配置Contoso服务器身份验证
  • 在Docker中以非root用户身份运行
  • 从未记录敏感数据

Contoso资源

  • MultiPR4规范:https://hl7.org/fhir/R4/
  • 计划定义:https://hl7.org/fhir/R4/plandefinition.html
  • $apply操作:https://hl7.org/fhir/R4/plandefinition-operation-apply.html
  • 问卷调查:https://hl7.org/fhir/R4/questionnaire.html
  • 结构化地图:https://hl7.org/fhir/R4/structuremap.html

许可证

MIT许可证