Kaiser Permanente Northern California only

Your patient portal, directed by you.

OpenKP is a local MCP server that lets your AI assistant read and act on your Kaiser Permanente record using your own credentials, on your own Mac.

Claude Desktop
Read every visit note from the last two years. Where did I raise concerns, ask questions, or push back? How was that documented?
openkp.list_past_visits → openkp.read_visit_notes
I found repeated concern-raising across cardiology visits and message threads. Here are the patterns in how your engagement appears in the chart...
Why it exists

Kaiser shows the record. OpenKP helps you interrogate it.

Patient portals are built as filing cabinets. They show results, notes, messages, plans, and orders in separate drawers. OpenKP gives a patient an agentic interface over those same portal surfaces.

The framing is critical AI health literacy: patient-directed AI on data patients have a right to access, surfacing what institutional systems aren't built to make legible.

Trust boundary

Local-first by design.

You plain-language questions
MCP client Claude Desktop, Claude Code, Cursor, Zed, ...
OpenKP local Python subprocess
kp.org your web session

No OpenKP server

There isn't a hosted OpenKP service, shared database, or remote credential store.

Your credentials

Credentials live in your OS keychain or local environment, never in the repo.

Explicit writes

Write tools preview first and only commit when called with explicit confirmation.

What it makes possible

Questions a portal isn't designed to answer.

Which lab values have drifted in the last 18 months?
How many appointments did I have last year, split by virtual vs in-person?
Compare what my cardiologist and primary-care doctor each wrote over time.
Are there diagnoses on my problem list I don't recognize?
Tool surface

22 MCP tools, focused on real patient workflows.

Three housekeeping tools, seventeen read tools, and two write tools. Read paths are broadly live-verified. Write commit paths are still treated carefully.

Read

  • Profile, insurance, PCP, emergency contacts
  • Messages, message attachments, archival search
  • Lab results, imaging, PDFs, narratives
  • Medications, refill status, order tracking
  • Problems, allergies, appointments, past visits
  • Visit notes and after-visit summaries

Write

  • Preview and request a mail-order refill
  • Preview and send a non-urgent care-team message
  • Audit log records commit-path activity locally
  • Dry-run mode for smoke testing write flows
Install path

Built for technically curious KP NorCal members.

OpenKP is an MCP server. MCP, the Model Context Protocol, is an open standard for connecting AI clients to tools and data. At runtime, any MCP-capable client should be able to call OpenKP tools.

Claude Desktop and Claude Code are the tested clients today. Claude Code is also the recommended install assistant: open the cloned directory with Claude Code and ask it to walk you through the rest.

git clone https://github.com/hugooc/OpenKP.git

Setup still goes through a Python virtual environment, OS keychain credential storage, an MCP config block, and a one-time interactive Chromium login.

Runtime client: whichever MCP-capable assistant you prefer. Install assistant: Claude Code is the clearest path for non-developers who are comfortable following terminal instructions.

Limits

OpenKP is a research tool, not a clinical product.

NorCal only

Kaiser regions differ. OpenKP is tested only against Kaiser Permanente Northern California.

Terms risk

Automated portal access may conflict with Kaiser's terms of use. Read the terms and judge for yourself.

Your assistant sees tool results

OpenKP is local, but your MCP client needs parsed record content to reason about your questions.

Endpoints can change

OpenKP depends on portal request shapes. It fails loudly when Kaiser changes them.

Own the interface to your own record.

Open source. MIT licensed. Local-first. Built for patients who want to inspect, adapt, and direct their tools.

Get OpenKP on GitHub