mcpField
M
mychart

mychart

本地服务
github.com/kriskraw80健康医疗012 周前更新

关于 mychart

mychart 是连接 Epic MyChart 患者门户的 MCP 服务,供用户查看自己的检验结果并下载 PDF。它通过 Playwright 操作门户网站,登录时由用户在可见浏览器中输入凭据并完成 MFA。

主要功能

  1. 01设置 MyChart 门户地址
  2. 02交互式登录并完成 MFA
  3. 03列出并查看检验结果
  4. 04将检验结果保存为 PDF
  5. 05查看自动化浏览器截图

适用场景

  1. 01查看个人检验结果及参考范围
  2. 02下载检验结果 PDF
  3. 03检查保存的登录会话状态
  4. 04排查门户页面读取问题

MCP 相关

向 MCP 客户端提供门户配置、登录状态、检验结果列表与详情、PDF 下载和截图等工具。用户在浏览器中完成登录和 MFA,凭据不会经由 MCP 工具参数传递。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kriskraw80-mychart": {
"command": "npx",
"args": [
"-y",
"mychart-mcp-server"
],
"env": {
"MYCHART_URL": "<MYCHART_URL>"
}
}
}
}
启动命令npx -y mychart-mcp-server
需要配置的环境变量
MYCHART_URLDefault MyChart provider URL (alternative to the mychart_set_provider tool)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmychart-mcp-server1.0.0

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是医疗系统 MyChart 站点上的任意 URL,例如 https://mychart.virtua.org/MyChartPRD

详细介绍

MyChart MCP 服务

一个 MCP(Model Context Protocol)服务,可连接任意 Epic MyChart 患者门户,登录、列出您的检查结果并将其下载为 PDF,帮助 AI 助手解读您自己的化验结果。

Epic 不提供简单的公开登录 API(官方 FHIR 途径要求每个机构分别注册应用),因此此服务使用 Playwright 操作 MyChart 网站:

  • 登录过程交互式且私密——会打开一个可见的浏览器窗口;您自行输入用户名和密码并完成 MFA。凭据绝不会经过 AI、MCP 协议或此服务的工具参数。
  • 会话会持久保存——登录后,Cookie(包括 MyChart 的会话级身份验证 Cookie)会导出到磁盘,并在每次启动时重新加载,因此后续操作可在无头模式下运行,直到门户端使会话过期。
  • 兼容不同版本的 MyChart——抓取时会先尝试现代 SPA 路由(/app/test-results),再尝试经典路由,并使用宽松的选择器。

工具

工具用途
mychart_set_provider设置您所在医疗系统的 MyChart URL(仅需设置一次)。粘贴其 MyChart 网站上的任意 URL。
mychart_login打开可见的浏览器窗口;您可在其中登录并完成 MFA。
mychart_session_status检查服务提供方配置,以及已保存的会话是否仍然有效。
mychart_list_test_results列出所有检查结果(自动展开“显示更多”),并提供 r1, r2, ... 等 ID。
mychart_get_test_result获取单项结果的完整可读内容(数值、范围、备注)。
mychart_download_test_result将结果保存为 PDF 到 ~/.mychart-mcp/downloads。
mychart_screenshot调试:生成自动化浏览器所见内容的整页 PNG。
mychart_close_browser关闭浏览器进程(会话仍保存在磁盘上)。

安装

npm install -g mychart-mcp-server
npx playwright install chromium

或从源代码安装:

git clone https://github.com/kriskraw80/mychart-mcp-server.git
cd mychart-mcp-server
npm install
npx playwright install chromium
npm run build
注册到 Claude Code / Claude Desktop
{
  "mcpServers": {
    "mychart": {
      "command": "npx",
      "args": ["mychart-mcp-server"]
    }
  }
}

(或者,将 command 指向 node,并将 args 设为 ["<path>/dist/index.js"],用于源码检出。)更改配置后,请重启 MCP 客户端。

可选环境变量
变量用途
MYCHART_URL默认服务提供方 URL(可替代 mychart_set_provider)。
MYCHART_USERNAME / MYCHART_PASSWORD如果在服务进程中设置,登录表单会预填这些信息(您仍需在窗口中完成 MFA)。可选——默认且最安全的做法是在窗口中输入。

典型流程

  1. 使用您的门户 URL 调用 mychart_set_provider(例如 https://mychart.example-health.org/MyChart)
  2. 调用 mychart_login → 在打开的窗口中登录并完成 MFA(勾选“记住此设备”)
  3. 调用 mychart_list_test_results → 返回 r1, r2, ...
  4. 调用 mychart_get_test_result r1 或 mychart_download_test_result r1

数据位置

所有文件都位于 ~/.mychart-mcp/ 下——请勿将其放在同步文件夹中(Chromium 配置文件无法适应文件同步):

  • config.json — 服务提供方 URL
  • browser-profile/ — 持久化的 Chromium 配置文件
  • storage-state.json — 导出的会话 Cookie(每次启动时重新加载)
  • results-cache.json — 上次列表调用生成的 ID → 结果 URL 映射
  • downloads/ — PDF 和截图

备注与限制

  • 仅供个人使用,不提供担保。 此工具会自动操作 MyChart Web 门户,以访问你自己的健康记录——这是你依据 HIPAA 享有的权利——但 Epic 并未正式认可抓取门户的做法。请自行决定是否使用。
  • MyChart 的 DOM 会因医疗系统和 Epic 版本而异。如果列出内容时没有结果,请使用 mychart_screenshot 查看渲染后的页面;可能需要针对你的医疗服务提供方调整选择器。有些系统会在不太明显的域名上托管 MyChart(例如 secure.<org>.org,而不是 mychart.<org>.org)——直接从浏览器复制 URL。
  • 服务会优先使用系统安装的 Chrome(其次是 Edge,然后是 Playwright 自带的 Chromium)——真实 Chrome 的应用级 Cookie 加密要求整个配置文件始终使用同一浏览器品牌,而且有些 Windows 计算机无法运行自带的构建版本。
  • PDF 下载会通过无头 Chrome(page.pdf)渲染结果详情页,不依赖版本,而不是查找各版本对应的“下载”按钮。
  • 会话在服务器端闲置一段时间后会过期;只需再次运行 mychart_login。
  • login-helper.mjs、run-direct.mjs 和 run-batch.mjs 会直接驱动已构建的 dist/ 代码——无需 MCP 客户端介入,即可重新登录或批量获取内容,非常方便。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。