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.
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MYCHART_URL | No | Default provider URL (alternative to mychart_set_provider). | |
| MYCHART_PASSWORD | No | If 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_USERNAME | No | If 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
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:
|
| 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:
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:
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:
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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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