项目简介

CharmHealth MCP 服务器是一个功能强大的中间件,专为大语言模型(LLM)和MCP客户端设计,旨在实现与CharmHealth EHR(电子健康档案)系统的无缝集成。它通过 Model Context Protocol (MCP) 协议,将复杂的医疗操作抽象为标准化的工具,允许LLM以安全、受控的方式访问和操作患者数据。该服务器提供了14个核心工具,涵盖了电子健康档案的全面功能,包括患者管理、诊疗记录、药物管理、预约调度等。

主要功能点

  • 全面的患者管理: 支持创建、更新、激活、停用患者档案,管理详细的人口统计、联系方式、地址、社会历史、家庭信息等。
  • 诊疗和病史审查: 能够创建、审查和签署诊疗记录(Encounter),并全面回顾患者的医疗史、当前用药、过敏、诊断和近期就诊情况。
  • 药物与过敏管理: 统一管理患者的处方药、补充剂和维生素,并提供自动过敏检查及药物安全工作流。同时,精确记录和更新患者的过敏信息,并发出安全警报。
  • 诊断与生命体征追踪: 维护患者的诊断列表,支持添加、更新和删除诊断,并可记录、追踪患者的生命体征趋势。
  • 预约与文件管理: 灵活调度、重新安排、取消患者预约,并支持上传患者照片、身份文件及发送个人健康记录(PHR)门户邀请。
  • 实验室结果管理: 查看、上传和管理患者的实验室检测结果及详细报告。
  • 实践信息查询: 获取诊所设施、提供者和生命体征模板等关键实践设置信息。
  • 符合HIPAA标准: 严格遵循HIPAA法规,在处理受保护健康信息(PHI)时确保数据安全和隐私。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/CharmHealth/charm-mcp-server.git
    cd charm-mcp-server
  2. 安装依赖: 使用 'uv' 工具(推荐):
    uv sync
    或者使用 'pip':
    pip install -e .
  3. 配置环境变量: 创建 '.env' 文件,并填写您的CharmHealth API凭据。请确保所有必填项已正确设置,否则服务器将无法启动。
    # .env 文件示例
    CHARMHEALTH_BASE_URL=您的CharmHealth API基础URI (例如: https://sandbox3.charmtracker.com/api/ehr/v1)
    CHARMHEALTH_API_KEY=您的CharmHealth API密钥
    CHARMHEALTH_REFRESH_TOKEN=您的CharmHealth OAuth刷新令牌
    CHARMHEALTH_CLIENT_ID=您的CharmHealth OAuth客户端ID
    CHARMHEALTH_CLIENT_SECRET=您的CharmHealth OAuth客户端密钥
    CHARMHEALTH_REDIRECT_URI=您的CharmHealth OAuth重定向URI
    CHARMHEALTH_TOKEN_URL=您的CharmHealth OAuth令牌URL
    
    # 可选: 设置为 "prod" 以用于生产环境日志
    ENV=dev
    
    # 启用或禁用使用OTEL进行指标收集。默认禁用。
    COLLECT_METRICS=false
  4. 获取CharmHealth API凭据:
    • 联系CharmHealth API支持团队申请API访问。
    • 按照OAuth 2.0设置流程获取 API Key, Client ID, Client Secret, Refresh Token, Redirect URI。
    • 测试阶段使用沙盒(sandbox)URL,生产环境使用正式URL。

服务器配置

MCP客户端通过JSON-RPC协议连接CharmHealth MCP服务器,您需要配置客户端以启动或连接该服务器。

  • 本地启动(Stdio 模式): 适用于MCP客户端直接启动服务器进程的场景。 配置示例 (例如,JSON文件或客户端UI配置项):

    {
      "mcpServers": {
        "charm-mcp-server": {
          "command": "uv",
          "args": [
            "--directory",
            "/path/to/charm-mcp-server/src",
            "run",
            "mcp_server.py"
          ],
          "env": {
            "CHARMHEALTH_BASE_URL": "https://sandbox3.charmtracker.com/api/ehr/v1",
            "CHARMHEALTH_API_KEY": "您的API密钥",
            "CHARMHEALTH_REFRESH_TOKEN": "您的刷新令牌",
            "CHARMHEALTH_CLIENT_ID": "您的客户端ID",
            "CHARMHEALTH_CLIENT_SECRET": "您的客户端密钥",
            "CHARMHEALTH_REDIRECT_URI": "您的重定向URI",
            "CHARMHEALTH_TOKEN_URL": "您的令牌URL"
          }
        }
      }
    }
    • 参数说明:
      • 'command': 'uv' (或者 'python' 如果不使用 'uv')
      • 'args': 启动服务器的参数列表,例如 '["--directory", "/path/to/charm-mcp-server/src", "run", "mcp_server.py"]'。请将 '/path/to/charm-mcp-server' 替换为您的实际仓库路径。
      • 'env': 包含CharmHealth API凭据的环境变量,请替换为您的实际值。
  • HTTP 模式(已独立运行): 适用于CharmHealth MCP服务器已作为独立服务运行(例如在Docker中)并监听特定端口的情况。 配置示例 (例如,JSON文件或客户端UI配置项):

    {
      "mcpServers": {
        "charm-health-http": {
          "url": "http://localhost:8080/mcp"
        }
      }
    }
    • 参数说明:
      • 'url': MCP服务器监听的HTTP端点地址,例如 'http://localhost:8080/mcp'。请确保服务器已启动并在该地址上监听。

基本使用方法

  1. 启动服务器(本地运行):

    • Stdio 模式 (默认):
      uv run --directory src mcp_server.py
    • HTTP 模式:
      uv run --directory src mcp_server.py http
      (请注意:HTTP模式需要您手动修改 'src/mcp_server.py' 以设置 'transport="http"' 并指定 'host' 和 'port',如 'mcp_composite_server.run(transport="http", host="0.0.0.0", port=8080)')
  2. 通过MCP客户端连接: 根据您选择的传输模式(Stdio 或 HTTP),配置您的MCP客户端(例如,企业级或符合HIPAA标准的LLM应用)以连接到此服务器。参考“服务器配置”部分提供的JSON示例。

  3. LLM调用工具: 一旦客户端连接成功,LLM即可通过MCP客户端调用服务器提供的14个工具。LLM会根据其需求选择合适的工具,例如:

    • 查找患者:'findPatients(query="John Doe")'
    • 管理预约:'manageAppointments(action="schedule", patient_id="...", provider_id="...", ...)'
    • 记录生命体征:'managePatientVitals(action="add", patient_id="...", encounter_id="...", vitals={"BP": "120/80 mmHg"})' LLM将通过工具的 'usecase' 和 'instructions' 描述来理解如何正确使用这些工具,并提供必要的参数。

信息

分类

商业系统