Skip to main content
Glama
kriskraw80

Connects to Epic MyChart patient portals to log in, list test results, and download them as PDFs so an AI assistant can help understand your own lab work.

by kriskraw80

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MYCHART_URLNoDefault provider URL (alternative to mychart_set_provider).
MYCHART_PASSWORDNoIf set on the server process, the login form is pre-filled (MFA is still completed by you in the window). Optional — typing in the window is the default and safest.
MYCHART_USERNAMENoIf set on the server process, the login form is pre-filled (MFA is still completed by you in the window). Optional — typing in the window is the default and safest.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
mychart_set_providerA

Configure 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:

Returns: The normalized base URL that was saved.

The setting persists in ~/.mychart-mcp/config.json. Changing providers invalidates any saved login session for the previous provider only in the sense that tools will now target the new site.

mychart_loginA

Open a VISIBLE browser window at the configured MyChart login page and wait for the sign-in to complete. The user types their username/password and completes any MFA prompt directly in that window — credentials are never passed through the MCP client. (Optionally, if MYCHART_USERNAME and MYCHART_PASSWORD environment variables are set on the server process, the login form is pre-filled.)

Tip: check "Remember this device" during MFA so future logins skip the code.

The session is stored in a persistent browser profile (~/.mychart-mcp/browser-profile), so once logged in, all other tools work headlessly without repeating login until the session expires.

Args:

  • timeout_seconds (number): How long to wait for the user to finish signing in (default 300, max 900).

Returns: { success, landedUrl, message }

mychart_session_statusA

Check 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_list_test_resultsA

Fetch the full list of test results from the MyChart portal (labs, imaging, pathology, etc.). Automatically expands lazy-loaded lists ("Show more") so every available result is returned, newest first as displayed by MyChart. Requires a logged-in session.

Returns: JSON with schema: { "count": number, "listUrl": string, // the portal page that was scraped "results": [ { "id": string, // stable id for this session, e.g. "r1" — use with mychart_get_test_result / mychart_download_test_result "name": string, // test name, e.g. "CBC WITH DIFFERENTIAL" "date": string?, // collection/result date as shown by MyChart "url": string // direct link to the result detail page } ] }

Error Handling:

  • "Not logged in" -> run mychart_login first.

  • If no results are recognized, use mychart_screenshot to inspect what the portal is showing.

mychart_get_test_resultA

Open 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_download_test_resultA

Save 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 " .pdf".

Files are saved to ~/.mychart-mcp/downloads. Returns: { path, bytes, id, name, date }.

mychart_screenshotA

Debug 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_close_browserA

Close 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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kriskraw80/mychart-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server