
Mychart
io.github.kriskraw80Published by GitHub account kriskraw80v1.0.0Updated Oct 24, 2026
Connects to Epic MyChart patient portals: interactive login, list and download your own test results
Overview
Lets an assistant log in to your Epic MyChart patient portal, list your own test results, and read or download them as PDFs.
- What you can do
- Drives the MyChart website with Playwright to reach your own health records. Tools cover setting the provider URL, opening a visible browser for interactive login and MFA, checking session status, listing all test results with ids, reading one result's values and ranges, downloading a result as a PDF, taking a debug screenshot, and closing the browser. Sessions are saved to disk so later runs can work headlessly until the portal expires them.
- When to use it
- Useful when you want an assistant to help you review your own lab work from a MyChart portal that has no simple public login API. It fits personal, occasional use rather than clinical or organizational workflows.
- Requirements
- Runs locally over stdio as an npm package (mychart-mcp-server) and needs Node.js plus a Playwright Chromium install, or a system Chrome or Edge. A MyChart portal URL is needed, either through the mychart_set_provider tool or the MYCHART_URL environment variable. Optional MYCHART_USERNAME and MYCHART_PASSWORD can pre-fill the login form. Network access to the portal is required.
Installation
In SourceWeft
- Open Mychart in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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
Or from source:
Register with Claude Code / Claude Desktop
(Or point command at node with args: ["<path>/dist/index.js"] for a source checkout.) Restart your MCP client after config changes.
Optional environment variables
Typical flow
mychart_set_providerwith 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")mychart_list_test_results→ returnsr1, r2, ...mychart_get_test_result r1ormychart_download_test_result 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 URLbrowser-profile/— persistent Chromium profilestorage-state.json— exported session cookies (replayed on each launch)results-cache.json— id → result-URL map from the last list calldownloads/— PDFs and screenshots
Notes & limitations
- Personal use, no warranty. This tool automates the MyChart web portal to access your own health records — a right you have under HIPAA — but portal scraping is not officially sanctioned by Epic. Use at your own discretion.
- MyChart's DOM varies by health system and Epic version. If listing finds nothing, use
mychart_screenshotto see the rendered page; selectors may need a tweak for your provider. Some systems host MyChart on non-obvious domains (e.g.secure.<org>.orgrather thanmychart.<org>.org) — paste the URL straight from your browser. - The server prefers your system-installed Chrome (then Edge, then Playwright's bundled Chromium) — real Chrome's app-bound cookie encryption requires the whole profile to stay on one browser brand, and some Windows machines can't run the bundled build.
- PDF download renders the result detail page via headless Chrome (
page.pdf), which is version-independent, rather than hunting for per-version "Download" buttons. - Sessions expire server-side after idle time; just run
mychart_loginagain. login-helper.mjs,run-direct.mjs, andrun-batch.mjsdrive the builtdist/code directly — handy for re-login or batch fetching without an MCP client in the loop.
License
MIT
Source: README.md at commit 99e2a65
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts