Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.Prototype · updated every 30 min
PopNx MCPMCP servers for people who use AI · explained in plain words

OpenRecord — MyChart for Claude

by Fan-Pier-Labsversion 2.3.0i★ 75 (Stars for the whole repo)iRuns on your computer
Registry nameio.github.Fan-Pier-Labs/openrecord

How to install

What it does

Read and manage your Epic MyChart records: labs, meds, imaging, notes, messages, refills.

  • Connects Runs on your computer
  • Account or key No key needed
  • Category Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Passed 2/3 checks · Runs on your computer

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude, with some setup first

No key, nothing to install · Only the Claude desktop app (Windows or Mac), not the web or phone

  1. Download the maker’s installer

    Download the maker’s .mcpb file

    The .mcpb file comes straight from the maker; we do not change it

  2. Double-click the file, then click Install in the Claude desktop app

  3. Try it

    Use OpenRecord — MyChart for Claude and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using OpenRecord — MyChart for Claude or shows a OpenRecord — MyChart for Claude tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

ChatGPT cannot connect OpenRecord — MyChart for Claude yet

OpenRecord — MyChart for Claude runs on your computer, but ChatGPT can only connect servers that run on the web

What you can do instead

A · Use an app that can connect OpenRecord — MyChart for Claude

  • No key, nothing to install · Only the Claude desktop app (Windows or Mac), not the web or phone

B · Others in Docs, sheets & office work that work with ChatGPT

Picked from the most used in the same category, only ones that connect by address with no key

Claude Code cannot connect OpenRecord — MyChart for Claude yet

The maker only provides an installer for the Claude desktop app

What you can do instead

A · Use an app that can connect OpenRecord — MyChart for Claude

  • No key, nothing to install · Only the Claude desktop app (Windows or Mac), not the web or phone

Cursor cannot connect OpenRecord — MyChart for Claude yet

The maker only provides an installer for the Claude desktop app

What you can do instead

A · Use an app that can connect OpenRecord — MyChart for Claude

  • No key, nothing to install · Only the Claude desktop app (Windows or Mac), not the web or phone

VS Code cannot connect OpenRecord — MyChart for Claude yet

The maker only provides an installer for the Claude desktop app

What you can do instead

A · Use an app that can connect OpenRecord — MyChart for Claude

  • No key, nothing to install · Only the Claude desktop app (Windows or Mac), not the web or phone

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

JSON settings are under “For developers” below

Stuck? Ask people who use OpenRecord — MyChart for Claude💬 Discussion →

At a glance

GitHub starsi
75 (Stars for the whole repo)
This repo holds several MCP listings; its stars count once in rankings
Downloads per weeki
Not on npm/PyPI
Licencei
No licence stated
Connection
Runs on your computer
Latest versioni
2.3.0
Published to registryi
Nov 13, 2026
Code last changedi
Nov 13, 2026
Maker
Fan-Pier-Labs
Packages
mcpb: …/openrecord.mcpb
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 16, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Fan-Pier-Labs, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 3 days ago

  • ! Caution

    Has a licence

    GitHub could not identify the licence type; open the file to check

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Published vulnerabilities (OSV.dev)

Not checked: only npm and PyPI packages with a version can be checked

What we check → · JSON

Makers: ask for a re-check or report wrong info

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in to post

User reviews

No reviews yet

Sign in to write a review

Compared with others in Docs, sheets & office worki

  • More stars than 96% of the other 3972 servers in this category
  • Published to the registry more recently than 89% of the other 3972 servers in this category
  • Basic checks equal to or better than 47% of the other 3972 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is OpenRecord — MyChart for Claude safe?

It passed 2 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 3 days ago, and the latest version (2.3.0) reached the registry 3 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB on your computer.

What can I use instead?

In the same category: Puter MCP, XcodeBuildMCP, Anki MCP Server, Sosumi, Zapier

Similar alternatives

Same category, other makers, commands already checked. Official ones first, then by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

by HeyPuterWidely used★ 44.2KUpdated 5 months ago

Runs in the cloud✓ service owner · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

by getsentryWidely used↓ 130.5K/wk shared package★ 6.6KUpdated 4 months ago

Runs on your computer✓ service owner · xcodebuildmcp.com

Anki MCP Server

MCP server for Anki flashcards: adaptive review, notes, media, and deck management via AnkiConnect.

by ankimcpGrowing↓ 1.1K/wk★ 559Updated 42 days ago

Runs on your computer✓ service owner · ankimcp.ai

Sosumi

Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.

by NSHipsterGrowing★ 492Updated 7 days ago

Runs in the cloud✓ service owner · sosumi.ai

Zapier

Connects AI to thousands of apps through one Zapier server, such as Gmail, Google Sheets and Slack. You choose which actions the AI may use.

by zapierGrowing★ 460Updated 4 months ago

Runs in the cloud✓ service owner · zapier.com
  • Puter MCP — Runs in the cloud, nothing to install · No key needed
  • XcodeBuildMCP — Installs on your computer · No key needed
  • Anki MCP Server — Installs on your computer · No key needed
  • Sosumi — Runs in the cloud, nothing to install · No key needed
  • Zapier — Runs in the cloud, nothing to install · No key needed · In Claude’s directory

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

OpenRecord — Claude Desktop Extension

A Claude Desktop Extension (.mcpb) that gives Claude access to your Epic MyChart patient portal. Read your medications, lab results, imaging, messages, billing, and more — or send a message to your care team, request a refill, and manage emergency contacts — all through a natural conversation.

Install

cd claude-desktop-extension

bun install bun run pack # builds dist/server.cjs and produces openrecord.mcpb

Then double-click openrecord.mcpb (or drag it into Claude Desktop → Settings → Extensions).

Use

After installing, open a new Claude chat and say:

Set up my MyChart.

Interactive widget (recommended)

In Claude Desktop, Claude shows an inline step-based setup widget (get_setup_widget). It opens on a choice between two routes, and connects accounts one at a time: nearly every portal asks for a 2FA code, so each account runs to the end before the next is offered. The full flow is diagrammed in docs/mcpb-setup-flow.md.

Import from your browser (the easier one):

  1. Permission — a screen saying what the scan reads, that passwords stay on this machine, and that macOS will raise its own keychain prompt. Nothing is read until Allow and search my browsers is clicked; that runs import_browser_passwords (and list_accounts, to mark logins already connected).
  2. Pick one login — the confirmed MyChart logins, one to choose ("you can import more after this one"). One already connected, or saved without a username, is shown but can't be picked. The widget only ever holds import ids, never a password.
  3. Connect it — connect_imported_account, then the same 2FA and passkey steps as below. If the saved password is stale, it becomes the manual sign-in step with the username filled in.

Enter manually:

  1. Pick a health system — an autocomplete dropdown over the full MyChart directory. Results appear only once you type (no default list); each shows the system's banner logo. A portal the directory lacks can be reached by typing its web address, which adds a "Use " row. Search test, springfield, or fake-mychart to find the Springfield General Hospital (test) entry, which points at the fake-mychart.fanpierlabs.com sandbox (Homer Simpson fake data, no real credentials needed — sign in with homer / donuts123).
  2. Sign in — the chosen system's logo sits above username + password fields. Submitting runs the real login scrapers via setup_account. Validation/login errors show inline beneath the button.
  3. Two-step verification — shown only if setup_account reports the portal requires a code; entering it calls complete_2fa.
  4. Set up a passkey? — shown after login only when the account has no passkey saved. It explains what a passkey changes (no password or code when the session expires), where the private key is stored (the server's live answer — keystore or the file fallback — not a promise), that it adds a credential to the MyChart account until removed, and that some portals refuse registration. Set up passkey calls register_passkey; Skip for now finishes without one, and the message handed back to the chat says which happened so Claude doesn't offer again.

After every account, either route lands on one list: the accounts connected so far, then Connect for another imported login (while any are left), Enter an account manually, and I'm done, which sends one message to the chat naming the connected accounts and how each passkey offer went.

A call that outruns Claude Desktop's timeout comes back parked (see pending-call.ts) — most likely the scan, waiting on the keychain prompt. The note carries the call's id as structuredContent.pending_call.id, and the widget waits it out with check_pending_call rather than showing the note.

The widget is a small React app in src/setup-widget/: flow.ts is the whole flow as a reducer (every tool result is interpreted there, and unit-tested), host.ts is the MCP Apps JSON-RPC bridge, and the .tsx files only render. scripts/bundle-setup-widget.ts bundles it with esbuild, and a tsup plugin inlines the result into dist/server.cjs as the virtual:setup-widget module, so the resource is still one self-contained HTML page.

Logos. MyChart's only per-instance brand asset is the wide banner logo

(media.epic.com, ~640×230), so the widget uses it everywhere — a

banner-shaped slot in the dropdown and a banner above the inputs on the

sign-in / 2FA steps. Square favicons aren't used: ~half of instances are

multi-tenant (many orgs share one host, e.g. 200+ on mychart.ochin.org) and

favicons are per-host, so they can't distinguish those orgs; most are also

just the generic Epic icon.

That host has to be named in the widget resource's _meta.ui.csp

(SETUP_UI_RESOURCE_META in src/ui.ts): the MCP Apps host builds the

sandbox CSP from that declaration and every directive defaults to 'none',

so an undeclared origin — data: included — renders as a broken image.

Tool-call fallback

Without the widget (Claude.ai web, other MCP clients), Claude walks through the same setup sequence using ordinary tool calls:

  1. `search_mycharts` — Claude asks you for your health system name (e.g. "uchealth", "mass general") and looks up the hostname. Searches Epic's live directory, falling back to the list bundled with this build when it can't reach it.
  2. `setup_account(hostname, username, password)` — Claude asks you for your credentials in chat, then logs in. Credentials are stored locally in ~/.openrecord-mcpb/ on your machine. Never sent to Anthropic.

Or skip typing a password entirely, if your browser already has one saved:

  • `import_browser_passwords` — scans this machine's browser password stores (Chrome, Arc, Brave, Edge, Firefox) for MyChart logins. Read-only; on macOS it raises the system keychain prompt, which is where you consent. Only accounts it can confirm are offered — a known Epic instance, or one whose login page it verified. No passwords are returned — each entry carries an opaque import_id, and the credential stays on your machine. A login saved in more than one browser is one entry, even when the browsers hold different passwords.
  • `connect_imported_account(import_id)` — connects the one you picked, using the password already in your browser (each saved password in turn, until MyChart accepts one). Same 2FA and passkey flow as setup_account.

Anything it cannot confirm is left out rather than guessed at — use setup_account for those, or run the import again later if a portal was temporarily unreachable. See read-local-passwords/README.md for what is read and how confirmation works.

  1. `complete_2fa(pending_id, code)` — if MyChart requires 2FA, Claude asks you for the 6-digit code.
  2. `register_passkey(account)` — recommended, and never automatic. Logging in changes nothing about how your account signs in; Claude offers you a passkey afterwards and registers one only if you say yes. With one, future logins skip the password and the 2FA prompt entirely. The private key is stored in your OS keystore (the Keychain on macOS — see Architecture) and never sent to Anthropic; the credential itself lives on your MyChart account until you remove it with delete_passkey or disconnect_account.

After setup, every data tool takes a required account parameter — the account id returned by list_accounts, username@hostname. Multiple accounts can be active at the same time — just pass a different account per call. That includes several logins on the *same* hostname (a household sharing one health system): each keeps its own credentials, passkey, and session. An id resolves only on a perfect hostname + username match; there is no hostname-only shorthand, so a call can never land on the wrong login.

The data tools are not listed anywhere in this package. They are generated from the shared capability registry (shared/capabilities/), which is also what the CLI and the mobile app derive their surfaces from — so this extension cannot quietly support less than they do. registerAllTools hand-writes only the five account-management tools above, which manage credentials on this machine and have no counterpart in the other clients.

What's my next appointment at uchealth?

Refill my lisinopril (use my mass general account).

Send a message to Dr. Smith asking about my latest blood pressure reading.

Show me my last imaging study.

Google Calendar sync (macOS)

connect_google_calendar puts every connected account's upcoming appointments on a Google calendar and keeps them there. The setup widget offers it after I'm done when the accounts have appointments to sync; otherwise ask Claude to "sync my appointments to Google Calendar".

  • Scope. The only Google scope requested is calendar.app.created: OpenRecord creates a "MyChart Appointments" calendar and can see and change only that one. It never reads the user's other calendars.
  • All TypeScript, one binary. src/google-calendar/worker.ts is compiled with bun build --compile --aot into openrecord-calendar, one binary per Mac architecture, using this extension's own scrapers, credential store and passkeys: tray (the menu-bar item), connect (loopback + PKCE consent in the browser), sync (one pass) and disconnect.
  • The menu-bar item (tray.ts) drives AppKit through bun:ffi (objc.ts). [NSApp run] owns the main thread, and menu clicks, timers and wake notifications call straight into JS, so the process sleeps in the run loop while idle (0% CPU, about 80 MB). A sync runs as a child process of the same binary, started with NSTask, and writes its outcome to the state file the menu reads. It syncs when 4 hours have passed since the last sync, checking every 15 minutes and 30 seconds after a wake (once Wi-Fi is back), because a timer's clock stops while the Mac sleeps. Its icon is the medical cross (cross.case; macOS has no hospital symbol). The menu lists the connected MyChart accounts and has Sync Now, Open Google Calendar and Turn Off Calendar Sync.
  • Signing in to MyChart. A sync signs in with machineLogin (resolveSessionWithoutUser), so it never makes MyChart send a 2FA code: nobody is there to type one. An account that has only a password and hits 2FA fails with a hint to save a passkey. See docs/login-modes.md.
  • When a sync fails, three tries, then stop. Any failure counts: a sign-in MyChart refuses, a network error, Google, or a run that crashed or hit the 10-minute timeout. A failure is retried at the next four-hour sync. The third failure in a row stops scheduled syncs, for that account or, when the failure came before any account (Google, a crash), entirely. Repeated rejected passwords can lock a MyChart account. Then macOS shows a notification, once per stop (posted with osascript, since UNUserNotificationCenter refuses a binary that isn't an app bundle), and the menu says why. Sync Now retries everything with the count reset to zero, and so does connecting again.
  • Install. The binaries are not in the .mcpb, which would be ~200 MB bigger. deploy.sh uploads them beside it as https://openrecord.fanpierlabs.com/calendar/openrecord-calendar-darwin- - . Content-addressed names make them immutable, so every released bundle keeps finding its own. What ships is applet/calendar-binaries.json, the SHA-256 per architecture. On first connect the tool downloads the matching binary and installs it at ~/.openrecord-mcpb/bin/openrecord-calendar only if the

Only the beginning is shown; read the rest in the repo