mcpField
O
openEHR MCP Server

openEHR MCP Server

本地服务
github.com/deak-ai健康医疗1873 周前更新

关于 openEHR MCP Server

这是一个连接 openEHR REST API(具体为 EHRbase)的 MCP 服务,面向需要管理模板、EHR 和组合,或执行 AQL 查询的集成场景。

主要功能

  1. 01列出并获取模板
  2. 02生成示例组合
  3. 03创建和读取 EHR
  4. 04创建、读取、更新及删除组合
  5. 05执行临时 AQL 查询

适用场景

  1. 01查看可用的 openEHR 模板
  2. 02根据模板创建组合
  3. 03管理 EHR 记录和组合
  4. 04使用 AQL 查询 EHRbase 数据

MCP 相关

向 MCP 客户端提供模板、EHR、组合和 AQL 操作工具,以及生命体征采集提示词,连接目标为 EHRbase。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"openehr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
启动命令docker run -i --rm compose

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocicompose

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

openEHR MCP 服务

这是一个用于对接 openEHR REST API 的 MCP(Model Context Protocol)服务,专为 EHRbase 实现设计。
此服务可让 Claude Desktop 等 MCP 客户端为 openEHR 模板创建组合,并将其提交到服务端。
对于生产级 EHR 集成,必须使用能够确保数据隐私的 AI 模型。

如需了解更多 MCP 信息,请参阅 https://modelcontextprotocol.io/introduction。

版本

当前版本:0.1.0

本项目遵循语义化版本规范。有关版本策略的详细信息,请参阅 VERSIONING.md。

MCP 工具

  • openehr_template_list:列出 EHRbase 服务端上所有可用的 openEHR 模板
  • openehr_template_get:根据唯一标识符获取指定的 openEHR 模板
  • openehr_template_example_composition:根据指定模板生成示例 openEHR 组合
  • openehr_ehr_create:在系统中创建新的 EHR
  • openehr_ehr_get:根据 ID 获取 EHR
  • openehr_ehr_list:列出系统中所有可用的 EHR
  • openehr_ehr_get_by_subject:根据受试者 ID 和命名空间获取 EHR
  • openehr_composition_create:在电子健康记录中创建新的 openEHR 组合
  • openehr_composition_get:根据唯一标识符获取现有的 openEHR 组合
  • openehr_composition_update:更新电子健康记录中现有的 openEHR 组合
  • openehr_composition_delete:从电子健康记录中删除现有的 openEHR 组合
  • openehr_query_adhoc:对 openEHR 服务端执行临时 AQL 查询

MCP 提示词

  • vital_signs_capture:为指定的 EHR ID 采集生命体征

MCP 资源

尚未实现

使用 Docker 快速入门

最简单的入门方式是使用 Docker Hub 上提供的预构建 Docker 镜像。

1. 前提条件

确保你有正在运行的 EHRbase 服务端。如需在本地运行,请参阅下文。

2. 配置 Claude Desktop

编辑 Claude Desktop 配置文件(claude_desktop_config.json),并在 "mcpServers" 部分中添加 "openEHR" 配置块。

此文件通常位于以下位置:

  • macOS:~/Library/Application Support/Claude
  • Windows:%APPDATA%\Claude
{
  "mcpServers": {
    "openEHR": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--network=host",
        "-e","EHRBASE_URL=http://localhost:8080/ehrbase/rest",
        "-e","EHRBASE_JSON_FORMAT=wt_flat",
        "ctodeakai/openehr-mcp-server:latest"
      ]
    }
  }
}

你可以将 EHRBASE_URL 指向自己的 EHRbase 服务端,也可以使用提供的 docker-compose 设置。

JSON 格式配置

此 MCP 服务支持不同的 JSON 序列化格式,用于与 EHRbase API 交互。你可以使用可选的 EHRBASE_JSON_FORMAT 环境变量配置格式:

"-e", "EHRBASE_JSON_FORMAT=wt_flat"

可用格式选项:

  • wt_flat(默认):使用基于扁平 Web 模板格式的简化数据类型(SDT)
  • canonical:在所有操作中统一使用规范的 openEHR JSON 格式
  • wt_structured:使用基于结构化 Web 模板格式的 SDT(目前无法正常工作)

有关如何将 Claude Desktop 配置为使用 MCP 服务的更多信息,请参阅 https://modelcontextprotocol.io/quickstart/user。

设置

前提条件

要使此 MCP 服务正常工作,目前需要:

本地 EHRBase 设置

前提条件
  • 可正常使用的 Docker 安装
  • Python 3(本项目使用 Python 3.12 构建,较早版本可能也可用)
  • Python 虚拟环境(pip、conda 或 uv)
  • 在 Python 环境中安装所需依赖:
    pip install -r requirements.txt
    
运行 EHRbase 服务
  1. 进入 docker-compose 目录:

    cd docker-compose
    
  2. 以分离模式启动 EHRbase 服务:

    docker compose up -d
    
  3. 检查日志,确认服务正常运行:

    docker compose logs -f
    
  4. EHRbase 服务将在 http://localhost:8080/ehrbase/ 上运行。

  5. EHRBase API 文档位于此处:http://localhost:8080/ehrbase/swagger-ui/index.html

上传生命体征模板

设置好 EHRbase 服务和 Python 环境后,即可上传生命体征模板:

python scripts/upload_template.py

你也可以指定自定义模板或 EHRbase URL:

python scripts/upload_template.py --template path/to/template.opt --ehrbase-url http://custom-url:8080/ehrbase/rest

你应该会看到输出,确认模板已成功上传到 EHRbase 服务。

创建 EHR

上传模板后,你需要创建一个电子健康记录(EHR)来存储组合:

python scripts/create_ehr.py

此操作将创建一个带有随机生成的受试者 ID 的 EHR。你也可以指定自定义受试者 ID:

python scripts/create_ehr.py --subject-id "patient_12345"

脚本将输出 EHR ID,创建组合或使用 MCP 服务时需要用到该 ID。

运行集成测试

运行测试前,你需要先安装测试依赖项:

pip install -r requirements-test.txt

安装测试依赖项并上传模板后,即可运行测试:

python -m pytest tests/test_*.py -v

这将运行 tests 目录中的所有测试。

使用 Docker 运行 openEHR MCP 服务

构建 Docker 镜像

在项目根目录下构建 Docker 镜像:

docker build -t openehr-mcp-server .
运行 Docker 容器
docker run -i --rm --network=host openehr-mcp-server

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。