{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cbetz/last-ehr","description":"FHIR chart tools for MCP: read-only by default, with elicitation-gated, human-approved writes.","title":"Last EHR — Medplum","repository":{"url":"https://github.com/cbetz/last-ehr","source":"github","subfolder":"packages/mcp"},"version":"0.5.4","websiteUrl":"https://www.lastehr.com/docs/mcp","packages":[{"registryType":"npm","identifier":"@lastehr/mcp","version":"0.5.4","transport":{"type":"stdio"},"environmentVariables":[{"description":"FHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).","isSecret":true,"name":"MEDPLUM_ACCESS_TOKEN"},{"description":"FHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).","name":"MEDPLUM_CLIENT_ID"},{"description":"FHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).","isSecret":true,"name":"MEDPLUM_CLIENT_SECRET"},{"description":"FHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).","name":"MEDPLUM_BASE_URL"},{"description":"epic, oracle, or smart. Requires LASTEHR_EXPERIMENTAL_FHIR_ADAPTERS=1. Sandbox writes are approval-gated and persist because those sandboxes do not support delete.","name":"LASTEHR_BACKEND"},{"description":"Set to 1 to enable LASTEHR_BACKEND epic, oracle, or smart.","name":"LASTEHR_EXPERIMENTAL_FHIR_ADAPTERS"},{"description":"SMART Backend Services client id. Not a secret.","name":"LASTEHR_CLIENT_ID"},{"description":"PKCS#8 PEM for SMART private_key_jwt. Never log it.","isSecret":true,"name":"LASTEHR_PRIVATE_KEY"},{"description":"Path to the PKCS#8 PEM. Alternative to LASTEHR_PRIVATE_KEY.","name":"LASTEHR_PRIVATE_KEY_PATH"},{"description":"JWT kid. Must match the public JWKS.","name":"LASTEHR_KEY_ID"},{"description":"https URL of the public JWKS. doctor checks that LASTEHR_KEY_ID is present. Optional.","name":"LASTEHR_JWKS_URL"},{"description":"Space-delimited SMART scopes. Required for Oracle. Omit for Epic unless overriding the app registration.","name":"LASTEHR_SCOPES"},{"description":"FHIR base URL. Epic and Oracle default to their public sandboxes when unset.","name":"LASTEHR_FHIR_BASE_URL"},{"description":"SMART token URL. Epic and Oracle default to their public sandboxes when unset.","name":"LASTEHR_TOKEN_URL"},{"description":"Encounter/{id} added to Epic observations when the tool call omits encounter.","name":"LASTEHR_ENCOUNTER"},{"description":"Practitioner/{id} filed as legal authenticator on Oracle observations.","name":"LASTEHR_PERFORMER"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-12T19:35:08.148923Z","publishedAt":"2026-11-12T19:35:08.148923Z","updatedAt":"2026-11-12T19:35:08.148923Z","isLatest":true}}}
