返回市场
谷歌云医疗保健API-MCP

谷歌云医疗保健API-MCP

作者:Kartha-AI8 星标更新:2025-06-01

项目介绍

Google Cloud Healthcare API (FHIR) 的 MCP 服务器

smithery 徽章

这是一个提供与 Google Cloud Healthcare API 和公共医学研究 API(如 pubmed)交互的医疗工具的 Model Context Protocol (MCP) 服务器,使用像 Claude 和 Goose 这样的 MCP 客户端。

这是 AgentCare MCP 服务器的一个稍微修改过的版本,用于电子健康记录 (EHR)。https://github.com/Kartha-AI/agentcare-mcp

主要的区别是这个仓库通过一个由 Firebase Auth 保护的 SmartonFHIR 网关与 Google Cloud Healthcare FHIR API 进行通信。

架构

<img src="screenshots/architecture.png" alt="架构" width="700">

演示

  • Claude: demo/claude-demo.mp4
  • Goose: demo/goose-demo.mp4

屏幕截图

<img src="screenshots/goose/goose-auth.png" alt="认证" width="700"> <img src="screenshots/goose/goose-patient.png" alt="患者" width="700"> <img src="screenshots/goose/goose-conditions.png" alt="条件" width="700"> <img src="screenshots/goose/goose-vitals.png" alt="生命体征" width="700"> <img src="screenshots/claude/gchapi.png" alt="GCHAPI" width="700"> <img src="screenshots/claude/convo.png" alt="对话" width="700"> <img src="screenshots/claude/chart.png" alt="时间线" width="700"> <img src="screenshots/claude/soap.png" alt="SOAP 笔记" width="700">

工具

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 数组

参见:/src/server/constants/tools.ts 以获取工具的具体说明

在 Claude Desktop 上使用

对于 Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
(使用上面显示的环境变量)

{
  "mcpServers": {
    "google-cloud-healthcare-api-mcp": {
      "command": "node",
      "args": [
        "/Users/your-username/{google-cloud-healthcare-api-mcp dir}/build/index.js"
      ],
      "env": {
          "FIREBASE_API_KEY":"XXXXXXXXX",
          "FIREBASE_AUTH_DOMAIN":"XXXXXXXX",
          "FIREBASE_PROJECT_ID":"XXXXXXX",
          "FIREBASE_STORAGE_BUCKET":"XXXXXXXXX",
          "FIREBASE_MESSAGING_SENDER_ID":"XXXXXXX",
          "FIREBASE_APP_ID":"XXXXXXXXX",
          "FIREBASE_MEASUREMENT_ID":"XXXXXXXX",
          "FIREBASE_AUTH_CALLBACK_PORT":"3456",
          "FHIR_BASE_URL":"{gchapi-fhir-gateway-host}/fhir",
          "PUBMED_API_KEY":"your_pubmed_api_key",
          "CLINICAL_TRIALS_API_KEY":"your_trials_api_key",
          "FDA_API_KEY":"your_fda_api_key"
      }
    }
  }
}

通过 Smithery 安装

要通过 Smithery 自动安装 google-cloud-healthcare-api-mcp 到 Claude Desktop:

npx -y @smithery/cli install @Kartha-AI/google-cloud-healthcare-api-mcp --client claude

在本地启动 MCP 服务器并使用 MCP Inspector

git clone git@github.com:Kartha-AI/google-cloud-healthcare-api-mcp.git
cd google-cloud-healthcare-api-mcp
npm install
npm run build
npm install -g @modelcontextprotocol/inspector
mcp-inspector  build/index.js
http://localhost:5173
在 Inspector 中设置环境变量

故障排除:

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

kill -9 $(lsof -t -i:3456)