Read a bounded chart surface
Search and chart reads are explicit tools over FHIR. The backend remains the system of record and access-control boundary.
Open-source clinical agent infrastructure
Last EHR is the open-source reference implementation for that boundary: the agent reads chart context, makes structured proposals, and stops until a person and the FHIR backend authorize the write.
Agent request
record_observation({
patientId: "<synthetic-patient-id>",
label: "Heart rate",
value: 72,
unit: "bpm"
})needsApproval: true
The UI is not the authorization layer. It makes the proposed change inspectable before the backend receives it.
The safety contract
Last EHR does not claim to replace backend policy or clinical judgment. It gives the agent a small, inspectable surface and makes the point of human review impossible to miss.
Read the approval modelSearch and chart reads are explicit tools over FHIR. The backend remains the system of record and access-control boundary.
A note or observation is shown as a concrete FHIR-shaped change, not hidden as an agent side effect.
The write tool pauses. A reviewer can inspect, approve, or cancel before anything reaches the chart.
MCP, deliberately constrained
The published package is Medplum-only and read-only. The checkout Local Lab lets a developer inspect the same bounded surface against four synthetic HAPI charts before connecting a real project.
No FHIR credential for the Local Lab server.
Fixture-only data on loopback HAPI.
Your client keeps its own model account.
Use with Medplum
$ npx -y @lastehr/mcp init --client claude-codePrints a client registration command for a least-privilege Medplum token. The published package exposes only reads.
Inspect locally
$ npm run mcp:demo -- --client claude-codeStarts loopback HAPI, resets synthetic fixtures, and prints a direct registration command without FHIR credentials.
Tool manifest
The same two inspectable read tools, with no write flag or arbitrary endpoint.
@lastehr/mcpSupport matrix →Three useful first moves
The project is built for people who need to inspect the safety boundary before they bring an agent anywhere near a real chart. Pick the path that matches the question you have today.
Use the live synthetic demo to watch a clinical write become a visible proposal before it is saved.
Open /demoOpen the demoStart loopback HAPI, reset four fixture charts, and connect Claude Code or Cursor to two read-only tools.
npm run mcp:demoRun the Local LabCreate a scrubbed report for proposal, approval, denial, chart association, and cleanup on a disposable target.
npm run evalRead the evaluatorAn integration should be able to explain itself
Last EHR keeps the extension point small: a FHIR backend contract, an executable adapter starter, and real HAPI integration coverage. The Safety Eval runs on those same disposable synthetic workflows and writes a scrubbed report, not a broad marketing badge.
Read the adapter contractDocumentation as an operating manual
Each guide names the path, the support boundary, and what still needs proof. The docs are a product surface, not a dump of API notes after the fact.
Built in the open
Last EHR is Apache-2.0. The code, safety notes, local paths, and support boundaries are public. A future managed offering is optional; the inspectable core is the point.
Not a medical device, a substitute for clinical judgment, an authorization layer, or a HIPAA-ready deployment by default.
Hosted updates
Join only for future managed-service news. Open-source updates ship in the repository first.