Homepage · Download the Claude Desktop extension
Let AI manage your healthcare. Ask Claude to request a prescription refill, message your doctor to schedule an appointment, review your latest lab results, or update your insurance information — all through a natural conversation. OpenRecord connects to Epic MyChart patient portals and exposes 35+ tools for reading and managing your health data, with full write support — send messages, request refills, and update your insurance information, not just view it.
OpenRecord ships as three clients, all built on the same scraper core:
- Claude Desktop extension (
claude-desktop-extension/) — a.mcpbbundle that runs entirely on your machine. Install it, say "Set up my MyChart", and Claude handles the rest. - Mobile app (
expo-app/) — an Expo/React Native iOS app with an on-device agent, skills, and alerts. - CLI + npm package (
npm-package/) — themychart-clinpm package: a headless CLI for scripting and testing, plus an importable library.
Connects to any Epic MyChart patient portal and exposes 35+ tools for reading and managing your health data:
- Profile — name, DOB, MRN, PCP, email
- Medications — current meds, dosages, refill details, pharmacy info
- Lab Results — test results, reference ranges, trending
- Imaging — X-ray, MRI, CT, ultrasound results
- Allergies — known allergies with severity and reactions
- Health Issues — active diagnoses and conditions
- Vitals — weight, blood pressure, height, BMI
- Immunizations — vaccine records and dates
- Visits — upcoming appointments and past visit history
- Messages — read, send, and reply to provider messages
- Billing — billing history and account balances
- Care Team — providers, specialists, departments
- Insurance — coverage details and plan info
- Preventive Care — overdue screenings and recommendations
- Referrals — active and past referrals
- Medical History — past conditions, surgical, family, and social history
- Letters — after-visit summaries and clinical letters
- Documents — clinical documents and visit records
- And more — emergency contacts, goals, care journeys, questionnaires, education materials, EHI export, linked accounts, medication refill requests
OpenRecord logs in with your credentials, handles 2FA automatically (via TOTP authenticator codes or passkeys), and interacts with MyChart's APIs on your behalf. No FHIR, no OAuth, no Epic developer account needed — just your MyChart username, password, and optionally a TOTP secret for automatic 2FA.
Sessions are kept alive automatically and re-established on expiry. Credentials never leave your machine — every client runs the scrapers locally.
Download openrecord.mcpb, or build it from a checkout:
cd claude-desktop-extension
bun install
bun run pack # builds dist/server.cjs and produces openrecord.mcpbThen double-click openrecord.mcpb (or drag it into Claude Desktop → Settings → Extensions), open a new chat, and say "Set up my MyChart". Claude walks you through picking your health system, signing in, and 2FA. Credentials are stored locally in ~/.openrecord-mcpb/ and are never sent to Anthropic.
Want to try it without real credentials? Search for Springfield General Hospital (test) during setup — it points at the fake-mychart.fanpierlabs.com sandbox (sign in with homer / donuts123).
See claude-desktop-extension/README.md for details.
The Expo app in expo-app/ runs the scrapers on-device. See expo-app/ for build instructions (bunx expo run:ios).
npm i -g mychart-cli
mychart-cli --helpOr from a checkout: bun run cli mychart [flags]. See docs/cli.md for cookie caching, credential resolution, 2FA, and the full action list.
openrecord/
scrapers/ # Shared MyChart scraper code (login, API calls, parsing)
shared/ # Common types and enums
claude-desktop-extension/ # Claude Desktop .mcpb extension
expo-app/ # Expo/React Native mobile app
npm-package/ # mychart-cli npm package (CLI + library)
read-local-passwords/ # Browser password store extraction (used by the CLI)
fake-mychart/ # Fake MyChart server for development and CI
openrecord-splash/ # Static splash site + in-browser interactive demo
openrecord-demo-lambda/ # Lambda backing the demo's AI chat
The scrapers are shared across all entry points. Each entry point handles auth and session management differently, but they all call into the same scraper functions.
bun install
# Fake MyChart (for development without real credentials)
bun run fake-mychart # Fake MyChart server on a random port (4000-5000), printed at startup
# CLI
bun run cli # Run the CLI scraper
# Tests
bun run test # Unit tests
bun run test:integration # Integration tests (needs the compose fake-mychart)
# Linting
bun run lint # ESLint
bun run fix # ESLint auto-fixThe CLI and mychart-cli npm package send anonymous
usage events (event name, MyChart portal hostname, OS platform / arch /
version, runtime version, plus a per-machine random UUID for dedupe).
No public IP, OS hostname, OS username, git identity, or scraped chart
content is ever collected. Set
MYCHART_CLI_TELEMETRY_DISABLED=1 to opt out.
On start the CLI also fetches a small version manifest from
openrecord.fanpierlabs.com to tell you if a newer release exists. That request
reaches our CDN, so it reveals your IP address and how often you run the CLI —
nothing else, and no chart content. The same
MYCHART_CLI_TELEMETRY_DISABLED=1 turns it off.
Privacy policy — what stays on your device (everything scraped, plus your credentials), what leaves it (the AI call you make, and the anonymous events above), and who receives it for each client.
Proprietary source-available license (see LICENSE). Viewing and personal/educational use permitted; no commercial use, redistribution, SaaS offerings, or competing products without written permission from Fan Pier Labs.