Mychart MCP server
io.github.kriskraw80/mychart·v1.0.0Connects to Epic MyChart patient portals: interactive login, list and download your own test results
0 stars30 downloads/wk
Reviews
Write oneNobody has reviewed Mychart yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Mychart tools (8)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
mychart_close_browserClose the automation browser. The login session itself is preserved in the persistent profile on disk — this only frees the browser process. The next tool call relaunches it automatically.
mychart_download_test_resultSave one test result as a PDF file on disk (rendered from the result detail page). Requires a logged-in session. Args: - result_id (string): An id from mychart_list_test_results (e.g. "r3"), or a full result-detail URL. - filename (string, optional): Base filename for the PDF; defaults to "<date> <test name>.pdf". Files are saved to ~/.mychart-mcp/downloads. Returns: { path, bytes, id, name, date
mychart_get_test_resultOpen one test result and return its full readable content — component values, reference ranges, flags, and provider comments — as text. Requires a logged-in session. Args: - result_id (string): An id from mychart_list_test_results (e.g. "r3"), or a full result-detail URL. Returns: { id, name, date, url, text, truncated }. If truncated is true, use mychart_download_test_result for the complete PDF.
mychart_list_test_resultsmychart_loginmychart_screenshotDebug aid: capture a full-page PNG of whatever page the automation browser is currently on (or the MyChart home page if idle). Useful when list/detail scraping reports nothing recognizable — the screenshot shows what the portal actually rendered. Args: - name (string, optional): Base filename for the PNG. Returns: { path, url }. Screenshot is saved to ~/.mychart-mcp/downloads.
mychart_session_statusCheck whether a MyChart provider is configured and whether the saved browser session is still logged in. Runs headless; safe to call any time. Returns: { configured, baseUrl, loggedIn, landedUrl }. If loggedIn is false, run mychart_login.
mychart_set_providerConfigure which health system's MyChart site to use. Every hospital system runs its own MyChart instance at its own URL, so this must be set once before logging in. Args: - url (string): Any URL from the provider's MyChart site — the login page URL pasted from a browser works fine (e.g. "https://mychart.virtua.org/MyChartPRD/Authentication/Login"). It is normalized to the instance root automatical
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 51 days ago12/15
- Maintainer identityregistry namespace matches repository owner6/10
How Mychart compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
- Tools
- 8
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 30
- more than 18% of 12,191 servers with a package
What its tools let an agent do: 8 read
Install Mychart in Claude Code, Cursor or VS Code
Runs npx -y mychart-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mychart -- npx -y mychart-mcp-server
What the publisher says
From the Mychart repository's README, as published. We do not edit it. Read it on GitHub
MyChart MCP Server
An MCP (Model Context Protocol) server that connects to any Epic MyChart patient portal to log in, list your test results, and download them as PDFs — so an AI assistant can help you understand your own lab work.
Epic offers no simple public login API (the official FHIR route requires per-organization app registration), so this server drives the MyChart website with Playwright:
- Login is interactive and private — a visible browser window opens; you type your username/password and complete MFA yourself. Credentials never pass through the AI, the MCP protocol, or this server's tool arguments.
- Session persists — cookies (including MyChart's session-scoped auth cookie) are exported to disk after login and replayed on every launch, so subsequent operations run headless until the portal expires the session server-side.
- Works across MyChart versions — scraping tries the modern SPA routes (/app/test-results) first, then classic routes, with permissive selectors.
Tools
Installation
npm install -g mychart-mcp-server
npx playwright install chromiumOr from source:
git clone https://github.com/kriskraw80/mychart-mcp-server.git
cd mychart-mcp-server
npm install
npx playwright install chromium
npm run buildRegister with Claude Code / Claude Desktop
{
"mcpServers": {
"mychart": {
"command": "npx",
"args": ["mychart-mcp-server"]
}
}
}(Or point command at node with args: ["/dist/index.js"] for a source checkout.) Restart your MCP client after config changes.
Optional environment variables
Typical flow
- mychartsetprovider with your portal URL (e.g. https://mychart.example-health.org/MyChart)
- mychart_login → sign in + MFA in the window that opens (check "Remember this device")
- mychartlisttest_results → returns r1, r2, ...
- mychartgettestresult r1 or mychartdownloadtestresult r1
Data locations
Everything lives in ~/.mychart-mcp/ — keep it out of synced folders (the Chromium profile does not tolerate file sync):
- config.json — provider URL
- browser-profile/ — persistent Chromium profile
- storage-state.json — exported session cookies (replayed on each launch)
- results-cache.json — id → result-URL map from the last list call
- downloads/ — PDFs and screenshots
Notes & limitations
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Mychart: common questions
- Is Mychart MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Mychart safety report
- How do I install Mychart?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Mychart need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is Mychart maintained?
- The last commit was 92 days ago (2026-08-04). The latest release is v1.0.0.
- How does Mychart compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,255 servers); tools 8 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.