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 MyChart and exposes 35+ tools through the Model Context Protocol (MCP). Unlike other health MCP servers that only let you read your data, OpenRecord has full write support — send messages, request refills, and update your insurance information, not just view it.
The project is open source and designed to run on your own infrastructure. Deploy your own instance to Railway with one click — it provisions a database, generates secrets, and runs migrations automatically. You'll have a fully functional MCP server in under 3 minutes with zero configuration.
Or try the hosted version at openrecord.fanpierlabs.com.
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), 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.
Try the MCP server with fake patient data — no account or API key required.
Demo URL: https://openrecord.fanpierlabs.com/api/mcp/demo
The demo server exposes the same 35+ tools as the real MCP server (medications, lab results, vitals, messages, etc.) but returns fictional data for a sample patient. All meta tools (list_accounts, connect_instance, check_session, complete_2fa) work as well — they just return pre-connected status.
The fastest way to get started. Sign up, connect your MyChart account, and add the MCP server to Claude Desktop.
- Sign up at openrecord.fanpierlabs.com (or your self-hosted instance)
- Add your MyChart account — hostname, username, and password
- Generate an MCP URL
- In Claude Desktop: Settings → MCP Servers → Add → Name:
mychartand MCP URL: the one you copied
One URL works for all your MyChart accounts. If you have multiple accounts connected, tools accept an optional instance parameter to target a specific hospital. TOTP-enabled instances auto-connect on first tool call.
MCP servers added in Claude Desktop automatically sync to the Claude mobile app and any other MCP-compatible client.
Runs entirely on your machine with no server dependency.
# Install
cd openclaw-plugin && bun run build
openclaw plugins install -l ./openclaw-plugin
# Setup (interactive — configures hostname, username, password, optional TOTP)
openclaw mychart setup
# Check config
openclaw mychart status
# Reset credentials
openclaw mychart resetThe plugin auto-logs in on first tool call, keeps the session alive, and re-authenticates when it expires. Optionally import credentials from your browser (Chrome, Arc, Firefox) during setup.
Deploy your own instance with one click:
The template automatically provisions a Postgres database, generates secrets, and runs migrations on first startup. No manual configuration required.
| Variable | Description |
|---|---|
DATABASE_URL |
Auto-injected by Railway Postgres plugin |
BETTER_AUTH_SECRET |
Auto-generated by template |
ENCRYPTION_KEY |
Auto-generated by template |
GOOGLE_CLIENT_ID |
Optional — for Google OAuth sign-in |
GOOGLE_CLIENT_SECRET |
Optional — for Google OAuth sign-in |
Setup:
- Click the deploy button above
- Wait for the build to finish (~2 minutes)
- Visit your domain, sign up, add your MyChart account, and generate an API key
The web app deploys to AWS Fargate via a single command:
bun run deployThis builds a Docker image, pushes it to ECR, and deploys to ECS Fargate. Infrastructure:
- Platform: AWS Fargate (spot instances)
- Config:
web/deploy.yaml - Resources: 1 vCPU, 2 GB RAM, 21 GB ephemeral storage
- Frontend: CloudFront + ALB + Route53
- Auth: BetterAuth (email+password, Google OAuth) with PostgreSQL
- Secrets: AWS Secrets Manager (Resend API key for email 2FA, BetterAuth secret, Google OAuth creds)
openrecord/
scrapers/ # Shared MyChart scraper code (login, API calls, parsing)
web/ # Next.js web app + hosted MCP server
openclaw-plugin/ # Self-contained OpenClaw plugin
cli/ # Headless CLI for testing and scripting
shared/ # Common types and enums
The scrapers are shared across all entry points (web app, OpenClaw plugin, CLI). Each entry point handles auth and session management differently, but they all call into the same scraper functions.
bun install
# Web app
cd web && bun run dev # Next.js dev server
cd web && bun run build # Production build
# Fake MyChart (for development without real credentials)
cd fake-mychart && bun run dev # Fake MyChart server on port 4000
# CLI
bun run cli # Run the CLI scraper
# Tests
bun run test # All tests (unit + web)
bun run test:unit # Scraper unit tests only
bun run test:unit:web # Web app tests only
bun run test:fake-mychart # Fake MyChart integration tests
# Linting
bun run lint # ESLint (scrapers + web)
bun run fix # ESLint auto-fixProprietary 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.