Mychart logo

Mychart

Connects to Epic MyChart portals to authenticate interactively, retrieve test results, and save them as PDFs.

Install Mychart

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mychart": {
      "command": "npx",
      "args": [
        "mychart-mcp-server"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx mychart-mcp-server

to update! npm notice npm ERR! code ECONNRESET npm ERR! network aborted npm ERR! network This is a problem related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config' npm ERR! A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-18T11_26_28_278Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 5d ago.

Overview

The mychart MCP server connects an AI assistant to an Epic MyChart patient portal through a Playwright-controlled browser. It opens a visible window for sign-in and MFA, then stores the authenticated browser session locally for later headless requests. Use it to list your test results, inspect result details, download PDFs, or capture screenshots when portal selectors do not work. It is intended for personal access to your own records and may require troubleshooting for provider-specific MyChart layouts.

Use cases

  • Configure an Epic MyChart provider URL
  • Authenticate to a patient portal with MFA
  • List and inspect personal test results
  • Download test results as PDFs
  • Debug provider-specific page layouts

Key features

  • Interactive browser login with MFA
  • Persistent local MyChart sessions
  • Test result listing and detailed retrieval
  • PDF export for individual results
  • Full-page browser screenshots
  • Support for modern and classic MyChart routes

Tools8

What Mychart lets your agent do. Expand a tool for its parameters.

Self-reported~172 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

5/5 checks healthy over the last 40d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 13d ago via OSV.dev · mychart-mcp-server (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads175Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Tools exposed8Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Mychart works

What mychart does

The mychart MCP server gives an MCP client access to test results in an Epic MyChart portal. It supports provider URL configuration, interactive authentication, session checks, result listing, detailed result retrieval, PDF downloads, screenshots, and browser shutdown.

The server is designed for personal use with your own health records. It automates the portal website rather than using an official general-purpose login API. That approach avoids requiring organization-specific FHIR app registration, but it depends on the structure and behavior of the health system's MyChart site.

How it works

Playwright drives the MyChart website. During login, a visible browser window appears so you can enter credentials and complete multi-factor authentication yourself. Login information is not passed through MCP tool arguments. If credentials are supplied through optional process environment variables, the login form can be pre-filled, but MFA still takes place in the browser window.

After authentication, the server exports session cookies and reuses them on later launches. The browser profile and session data are stored under ~/.mychart-mcp/. A session can expire on the portal side after inactivity, in which case you need to run login again.

Result listing tries modern MyChart application routes before older routes and expands additional results when the portal provides a “Show more” control. Results receive local identifiers such as r1, r2, and later detail or download operations use those identifiers.

Setup and configuration

Install the package globally and install the Chromium browser used by Playwright:

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

The server can also be built from a source checkout with npm install, npm run build, and the same Playwright installation command. Register it as a stdio server in Claude Desktop or Claude Code using npx mychart-mcp-server, or point Node at dist/index.js for a source installation.

Set the provider with mychart_set_provider by pasting a URL copied from the relevant MyChart site. MYCHART_URL can provide a default instead. The server stores the provider configuration, browser profile, exported cookies, result URL cache, PDFs, and screenshots in ~/.mychart-mcp/; avoid placing this directory in a file-synchronization folder.

Tools and capabilities

The mychart MCP server exposes these operations:

  • Configure the MyChart provider URL.
  • Start interactive login and complete MFA in the visible browser.
  • Check provider configuration and saved-session validity.
  • List all discovered test results and assign result IDs.
  • Read one result with values, reference ranges, and comments.
  • Render a result detail page to PDF in ~/.mychart-mcp/downloads.
  • Save a full-page PNG of the browser view for troubleshooting.
  • Close the browser process without deleting the saved session.

PDF creation renders the result detail page with headless Chrome instead of relying on a portal-specific download button.

Limitations and notes

The mychart MCP server is not an officially sanctioned Epic integration. Portal markup differs between health systems and Epic versions, so a list operation may return no results even when the account contains them. Use mychart_screenshot to inspect what the automated browser sees; provider-specific selector changes may be needed.

Paste the actual portal URL from your browser because some organizations use domains that do not contain the expected mychart hostname. Browser-brand details can also matter: the server prefers installed Chrome, then Edge, then Playwright Chromium, and a persistent profile should remain with the same browser brand. The project is licensed under MIT and provides no warranty.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Mychart

mychart is an MCP server that connects AI assistants to Epic MyChart patient portals. Its main tools configure a provider URL, handle interactive login and MFA, check sessions, list test results, retrieve full result details, download PDFs, capture screenshots, and close the browser while preserving the saved session.

Install it with `npm install -g mychart-mcp-server`, then run `npx playwright install chromium`. You can also clone the repository, install dependencies, install Playwright Chromium, and build the project with `npm run build`.

Run `mychart_set_provider` with a URL copied from your health system's MyChart site, then call `mychart_login`. A visible browser opens for you to enter credentials and complete MFA; the credentials are not supplied through MCP tool arguments.

Downloaded PDFs are saved under `~/.mychart-mcp/downloads`. The same local directory also contains the provider configuration, browser profile, session cookies, result URL cache, and screenshots.

Use `mychart_screenshot` to inspect the rendered page because MyChart markup varies by provider and Epic version. The server tries modern and classic routes, but some portals may need provider-specific selector adjustments or a directly copied portal URL.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMychart AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mychart?style=directory)](https://allmcps.com/mcp/mychart)
HTML Embed
<a href="https://allmcps.com/mcp/mychart"><img src="https://allmcps.com/api/badge/mychart?style=directory" alt="Mychart on AllMCPs" /></a>