Token导航 LogoToken导航TokenDH.com
Epic Ehr MCP Server logo
AI代理stdio官方级别未说明来源级核验

Epic Ehr MCP Server

MCP Server

一个全面的电子健康记录(EHR)系统,实现EPIC风格的工作流程,支持WebSocket和JWT认证,提供完整的医疗数据管理功能。

工具数

23

提示词数

0

GitHub Stars

2

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pcjx8

提供方

pcjx8

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

EPIC型EHR MCP服务器

一个全面的电子健康记录(EHR)系统,实现了EPIC风格的工作流,支持WebSocket、JWT身份验证和完整的医疗数据管理。

![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.11+](https://www.python.org/downloads/)

🏥 概述

这是一个生产就绪的模型上下文协议(MCP)服务器,它模拟了一个类似于EPIC的完整EHR系统。它提供了20多种医疗保健工具,用于管理患者数据、预约、药物、实验室结果等。

非常适合:

  • 医疗AI代理开发
  • EHR集成测试
  • 临床工作流程模拟
  • 医学人工智能培训
  • TYPE/HL7原型设计
  • 医疗保健应用程序开发

✨ 特性

完整的EHR功能

  • 患者管理 -人口统计、搜索、保险
  • 临床文档 -病史、过敏史、SOAP记录、护理计划
  • 药物管理 -处方、续药、当前药物
  • 实验室和诊断 -实验室结果、订单、成像报告
  • 生命体征 -记录和历史
  • 预约 -日程安排、取消、状态跟踪
  • 疫苗接种 -疫苗记录
  • 提供商目录 -按专业搜索
  • 账单和保险 -索赔、指控

安全特性

  • 基于JWT令牌的身份验证 (行业标准)
  • 访问令牌(24小时到期)和刷新令牌(30天到期)
  • 令牌撤销(注销功能)
  • 基于角色的访问控制(医生、护士、患者、管理员)
  • 敏感操作的权限验证
  • 使用HS256算法进行安全令牌签名

技术特性

  • WebSocket+stdio传输
  • 20+MCP工具
  • 综合模拟数据
  • 基于会话的身份验证
  • EPIC式操作
  • 生产就绪架构

🚀 快速开始

安装

# Clone repository
git clone https://github.com/YOUR_USERNAME/epic-ehr-mcp-server.git
cd epic-ehr-mcp-server

# Install dependencies
pip install -r requirements.txt

运行服务器

# WebSocket mode (for remote connections)
python ehr_server.py --websocket

# Stdio mode (for local MCP clients like Kiro)
python ehr_server.py

测试

# Run test client
python test_client.py

📚 文档

🔐 认证

测试用户

用户名密码角色描述
史密斯医生医生123医生莎拉·史密斯医生(内科)
护士护士123护士护士约翰·琼斯
patientt_doepatient123patientJohn doe(患者MRN001)
admin_useradmin123admin系统管理员

示例用法

import asyncio
import websockets
import json

async def example():
    async with websockets.connect('ws://localhost:8766') as ws:
        # Authenticate
        auth_msg = {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "tools/call",
            "params": {
                "name": "authenticate",
                "arguments": {
                    "username": "dr_smith",
                    "password": "doctor123"
                }
            }
        }
        await ws.send(json.dumps(auth_msg))
        response = await ws.recv()
        auth_data = json.loads(response)
        
        # Extract access token
        access_token = auth_data['result']['content'][0]['text']['access_token']
        
        # Get patient data
        patient_msg = {
            "jsonrpc": "2.0",
            "id": 2,
            "method": "tools/call",
            "params": {
                "name": "get_patient",
                "arguments": {
                    "access_token": access_token,
                    "mrn": "MRN001"
                }
            }
        }
        await ws.send(json.dumps(patient_msg))
        response = await ws.recv()
        print(response)

asyncio.run(example())

🛠️ 可用工具

认证

  • authenticate -登录并获取JWT代币
  • refresh_token -刷新过期的访问令牌
  • logout -撤销访问令牌

患者管理

  • get_patient -获取患者的人口统计信息
  • search_patients -寻找患者

病历

  • get_medical_history -获取病情和诊断
  • get_allergies -引起患者过敏
  • get_medications -获取当前药物
  • prescribe_medication -开新药

实验室和诊断

  • get_lab_results -获取实验室测试结果
  • order_lab_test -订购新的实验室测试
  • get_imaging_reports -获取成像报告

生命体征

  • get_vital_signs -获取生命体征病史
  • record_vital_signs -记录新的生命体征

预约

  • get_appointments -预约患者
  • schedule_appointment -安排新的预约
  • cancel_appointment -取消预约

临床文档

  • get_clinical_notes -获取临床记录
  • create_clinical_note -创建新笔记

其他

  • get_immunizations -获取免疫史
  • get_care_plan -获取患者护理计划
  • search_providers -搜索医疗服务提供者
  • get_billing_info -获取账单信息

🏗️ 建筑

Client (AI Agent, Web App, Mobile)
    ↓
WebSocket/Stdio Transport (JSON-RPC 2.0)
    ↓
JWT Authentication & Authorization
    ↓
MCP Server Core (Tool Registry)
    ↓
Business Logic Layer (20+ Tools)
    ↓
Data Layer (Mock Data / Database)

📦 项目结构

epic-ehr-server/
├── ehr_server.py              # Main MCP server
├── auth.py                    # JWT authentication
├── ehr_tools.py              # Tool implementations
├── mock_data.py              # Healthcare mock data
├── test_client.py            # Test client
├── requirements.txt          # Dependencies
├── README.md                 # This file
├── AUTHENTICATION.md         # Auth guide
├── DEPLOYMENT.md            # Deployment guide
├── SIMPLE_DEPLOYMENT.md     # VPS deployment
├── QUICKSTART.md            # Quick start
└── JWT_FEATURES.md          # JWT details

🚀 部署

快速部署(铁路)

  1. 推送到GitHub
  2. 将铁路连接到GitHub
  3. 铁路汽车部署
  4. 获取公共URL

VPS部署

简单_部署.md 获取分步指南。

云部署

部署.md AWS、Azure、谷歌云选项。

🔒 安全

  • 基于JWT令牌的身份验证
  • 基于角色的访问控制(RBAC)
  • 令牌过期和刷新
  • 安全密码散列(SHA-256)
  • HTTPS/WSS支持
  • 输入验证
  • 权限检查

🧪 测试

# Run complete workflow test
python test_client.py

# Run appointment booking test
python appointment_booking_example.py

# Run persistence test
python test_persistence.py

📊 模拟数据

服务器包括全面的模拟数据:

  • 2名患者有完整的病历
  • 病史、过敏史、药物
  • 实验室结果、生命体征、免疫接种
  • 预约、临床记录、护理计划
  • 2名提供者(医生)
  • 帐单记录

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持

对于问题、疑问或贡献:

  • 在GitHub上打开一个问题
  • 检查仓库中的文档
  • 查看示例文件

🗺️ 路线图

  • \[\]数据库持久性(PostgreSQL)
  • \[\]符合➤R4标准
  • \[\]HL7 v2消息支持
  • \[\]智能认证系统
  • \[\]实时通知
  • \[\]审核日志记录
  • \[\]多租户支持
  • \[\]GraphQL API

______________________________________________________________________

内置于❤️ 用于医疗AI开发

目录标签

目录标签

PythonAI代理工作流自动化电子健康记录本地部署医疗数据管理JWT认证WebSocket支持EPIC风格工作流

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

23

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP