小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
33
最近更新:2个月前

MCP 服务器用于支持 FHIR 的 EMR 系统

Agent Care:适用于 Cerner 和 Epic 等 EMR 的 MCP 服务器

一个 Model Context Protocol (MCP) 服务器,通过 Claude Desktop 和 Goose Desktop 提供与 Cerner 和 Epic 等 EMR 上的 FHIR 数据和医疗资源交互的医疗工具和提示。

smithery 徽章

演示

演示

功能

  • 使用 SMART on FHIR API 进行 EMR 集成
  • 使用 OAuth2 对 EMR 进行身份验证
  • Anthropic Claude Desktop 集成
  • 医学研究集成(PubMed、临床试验、FDA)
  • 响应缓存
  • 错误处理
  • 空安全数据格式化
  • 全面的临床分析

屏幕截图

Cerner Epic Converse Soap Notes Timeline

工具

FHIR 工具

  • find_patient - 通过姓名、出生日期或其他标识符搜索患者
  • get_patient_observations - 获取患者的观察/生命体征
  • get_patient_conditions - 获取患者的活跃状况
  • get_patient_medications - 获取患者的当前药物
  • get_patient_encounters - 获取患者的临床遭遇
  • get_patient_allergies - 获取患者的过敏和不耐受情况
  • get_patient_procedures - 获取患者的手术
  • get_patient_careteam - 获取患者的护理团队成员
  • get_patient_careplans - 获取患者的活跃护理计划
  • get_vital_signs - 获取患者的生命体征
  • get_lab_results - 获取患者的实验室结果
  • get_medications_history - 获取患者的药物历史
  • clinical_query - 执行自定义 FHIR 查询

医学研究工具

  • search-pubmed - 搜索与医学状况相关的 PubMed 文章
  • search-trials - 查找相关的临床试验
  • drug-interactions - 检查药物相互作用

使用

每个工具都需要特定的参数:

必需参数

  • 大多数工具需要 patientId
  • 一些工具还有其他参数:
    • lab_trend_analysis: 需要 labType
    • search-pubmed: 需要 query 和可选的 maxResults
    • search-trials: 需要 condition 和可选的 location
    • drug-interactions: 需要 drugs 数组

开发配置

对于本地测试,请在根目录中创建一个 .env 文件或在 Claude Desktop 启动配置中使用这些环境变量。

Cerner

复制代码
OAUTH_CLIENT_ID="XXXXX",
OAUTH_CLIENT_SECRET="XXXXXXX",
OAUTH_TOKEN_HOST="https://authorization.cerner.com", 
OAUTH_AUTHORIZE_PATH="/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/protocols/oauth2/profiles/smart-v1/personas/provider/authorize",
OAUTH_AUTHORIZATION_METHOD='header',
OAUTH_TOKEN_PATH="/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/hosts/api.cernermillennium.com/protocols/oauth2/profiles/smart-v1/token",
OAUTH_AUDIENCE="https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d",
OAUTH_CALLBACK_URL="http://localhost:3456/oauth/callback",
OAUTH_SCOPES="user/Patient.read user/Condition.read user/Observation.read user/MedicationRequest.read user/AllergyIntolerance.read user/Procedure.read user/CarePlan.read user/CareTeam.read user/Encounter.read user/Immunization.read",
OAUTH_CALLBACK_PORT="3456"
FHIR_BASE_URL:any = "https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" 
PUBMED_API_KEY=your_pubmed_api_key
CLINICAL_TRIALS_API_KEY=your_trials_api_key
FDA_API_KEY=your_fda_api_key

Epic

复制代码
OAUTH_CLIENT_ID="XXXXXXX",
OAUTH_CLIENT_SECRET="",
OAUTH_TOKEN_HOST="https://fhir.epic.com",
OAUTH_AUTHORIZE_PATH="/interconnect-fhir-oauth/oauth2/authorize",
OAUTH_AUTHORIZATION_METHOD='body',
OAUTH_TOKEN_PATH="/interconnect-fhir-oauth/oauth2/token",
OAUTH_AUDIENCE="https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4",
OAUTH_CALLBACK_URL="http://localhost:3456/oauth/callback",
OAUTH_SCOPES="user/Patient.read user/Observation.read user/MedicationRequest.read user/Condition.read user/AllergyIntolerance.read user/Procedure.read user/CarePlan.read user/CareTeam.read user/Encounter.read user/Immunization.read",
OAUTH_CALLBACK_PORT=3456
FHIR_BASE_URL:any = "https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4" //EPIC  
PUBMED_API_KEY=your_pubmed_api_key
CLINICAL_TRIALS_API_KEY=your_trials_api_key
FDA_API_KEY=your_fda_api_key

本地启动 MCP 服务器

复制代码
git clone {agentcare-mcp-github path}
cd agentcare-mcp
npm install
npm run build

使用 Claude Desktop

复制代码
对于 Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
(使用上述环境变量)

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/your-username/Desktop"
      ]
    },
    "agent-care": {
      "command": "node",
      "args": [
        "/Users/your-username/{agentcare-download-path}/agent-care-mcp/build/index.js"
      ],
      "env": {
        "OAUTH_CLIENT_ID": XXXXXX,
        "OAUTH_CLIENT_SECRET":XXXXXXX,
        "OAUTH_TOKEN_HOST":,
        "OAUTH_TOKEN_PATH":,
        "OAUTH_AUTHORIZE_PATH",
        "OAUTH_AUTHORIZATION_METHOD": ,
        "OAUTH_AUDIENCE":,
        "OAUTH_CALLBACK_URL":,
        "OAUTH_SCOPES":,
        "OAUTH_CALLBACK_PORT":,
        "FHIR_BASE_URL":,
        "PUBMED_API_KEY":,
        "CLINICAL_TRIALS_API_KEY":,
        "FDA_API_KEY":
      }
    }
  }
}

使用 MCP 检查器

(使用检查器的 MCP 服务器。确保更新 .env 文件中的正确值。)

复制代码
npm install -g @modelcontextprotocol/inspector
mcp-inspector  build/index.js
http://localhost:5173

测试用户登录

(通常用于沙盒/开发)

  • Cerner: portal | portal
  • Epic: FHIRTWO | EpicFhir11!

故障排除:

如果 Claude Desktop 正在运行,它会使用端口 3456 进行身份验证。您需要使用以下命令终止该进程:

复制代码
kill -9 $(lsof -t -i:3456)

使用 Goose

Goose 是 Block(Stripe)的一个开源 AI 代理框架,可以与 MCP 服务器一起工作。Goose Desktop 类似于 Claude Desktop,可以与 MCP 服务器一起工作。但 Goose 可以配置为使用除 Anthropic 以外的模型。更多信息:https://block.xyz/inside/block-open-source-introduces-codename-goose

请参阅下面 Goose Desktop 如何与 Agent Care 一起工作:
(goose 扩展将配置为使用命令:
/Users/your-username/{agentcare-download-path}/agent-care-mcp/build/index.js)

Cerner Epic Converse Soap Notes