README
🚀 openEHR MCP 服务器
openEHR MCP 服务器是一个基于 Model Context Protocol (MCP) 的服务器,用于与 openEHR REST API(特别是 EHRbase 实现)进行交互。它使得 MCP 客户端(如 Claude Desktop)能够为 openEHR 模板创建组成并提交到服务器。对于生产级别的 EHR 集成,必须使用能确保数据隐私的 AI 模型。
有关更多关于 MCP 的信息,请访问 https://modelcontextprotocol.io/introduction
🚀 快速开始
使用预建的 Docker 镜像(在 Docker Hub 上可用)是开始的最简单方法。
1. 前提条件
确保有一个正在运行的 EHRbase 服务器。如果需要,可以参考文档中的设置指南。
2. 安装 Docker
按照官方文档安装并配置 Docker 环境:https://docs.docker.com/get-docker/
3. 拉取 Docker 镜像
从 Docker Hub 下载 openEHR MCP Server 镜像:
docker pull openehr-mcp-server:latest
4. 运行 Docker 容器
以交互模式运行容器,并将其连接到主机网络:
docker run -it --network host openehr-mcp-server:latest
这将启动 MCP 服务器,您可以在终端中看到日志输出。默认情况下,服务器将在 http://localhost:8080 上运行。
5. 验证安装
打开浏览器或使用命令行工具访问 http://localhost:8080。您应该会看到 MCP 服务器的欢迎页面或 API 文档。
✨ 主要特性
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 的生命体征
📦 安装指南
安装依赖项
在开始之前,请确保系统上已安装以下软件:
- Python 3.6 或更高版本
- pip(Python 包管理器)
- Docker(如果需要使用容器化部署)
克隆仓库
从 GitHub 克隆此仓库:
git clone https://github.com/yourusername/openehr-mcp-server.git
cd openehr-mcp-server
安装 Python 包
在项目根目录中,安装所需的 Python 包:
pip install -r requirements.txt
配置设置
创建一个 config.py 文件(或复制现有的示例配置文件),并根据需要进行调整。
# config.py 示例
DEBUG = True
PORT = 8080
HOST = 'localhost'
启动服务器
运行以下命令启动 MCP 服务器:
python app.py
服务器将在指定的端口上启动,并准备处理请求。
💻 使用示例
命令行工具
所有 MCP 工具都可以通过命令行使用。例如:
基础用法
列出所有模板
openehr_template_list --server http://localhost:8080
创建新 EHR
openehr_ehr_create --subject-id "patient_1234" --server http://localhost:8080
API 文档
完整的 API 文档可通过 Swagger UI 访问:http://localhost:8080/swagger
📚 详细文档
测试
单元测试
运行以下命令来执行单元测试:
pytest tests/test_*.py -v
这将运行所有测试用例,并输出详细结果。
集成测试
在集成环境中运行更全面的测试:
pytest integration_tests/ --cov=openehr_mcp_server
问题排查
如果遇到问题,请检查以下内容:
- 确保 Docker 正确安装并正在运行。
- 检查容器的日志输出,以获取可能的错误信息:
docker logs <container-id> - 查看服务器日志文件(通常位于
logs/目录)。
贡献指南
如果您希望为项目做出贡献,请遵循以下步骤:
- Fork 仓库。
- 创建新的功能分支:
git checkout -b feature/<your-feature> - 提交您的更改,并创建 Pull Request 到主分支。
- 在 Pull Request 中详细说明您的变更内容。
📄 许可证
该项目遵循 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
如果有任何问题或需要进一步帮助,请随时与我们联系!
Scan to contact