Last EHR — Medplum for Claude Desktop
io.github.cbetz/last-ehr
FHIR chart tools for MCP: read-only by default, with elicitation-gated, human-approved writes.
client:Claude Desktop
transport:stdio
runtime:npm
Install Last EHR — Medplum in Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json · windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"last-ehr": {
"command": "npx",
"args": [
"-y",
"@lastehr/mcp"
],
"env": {
"MEDPLUM_ACCESS_TOKEN": "<MEDPLUM_ACCESS_TOKEN>",
"MEDPLUM_CLIENT_ID": "<MEDPLUM_CLIENT_ID>",
"MEDPLUM_CLIENT_SECRET": "<MEDPLUM_CLIENT_SECRET>",
"MEDPLUM_BASE_URL": "<MEDPLUM_BASE_URL>",
"LASTEHR_BACKEND": "<LASTEHR_BACKEND>",
"LASTEHR_EXPERIMENTAL_FHIR_ADAPTERS": "<LASTEHR_EXPERIMENTAL_FHIR_ADAPTERS>",
"LASTEHR_CLIENT_ID": "<LASTEHR_CLIENT_ID>",
"LASTEHR_PRIVATE_KEY": "<LASTEHR_PRIVATE_KEY>",
"LASTEHR_PRIVATE_KEY_PATH": "<LASTEHR_PRIVATE_KEY_PATH>",
"LASTEHR_KEY_ID": "<LASTEHR_KEY_ID>",
"LASTEHR_JWKS_URL": "<LASTEHR_JWKS_URL>",
"LASTEHR_SCOPES": "<LASTEHR_SCOPES>",
"LASTEHR_FHIR_BASE_URL": "<LASTEHR_FHIR_BASE_URL>",
"LASTEHR_TOKEN_URL": "<LASTEHR_TOKEN_URL>",
"LASTEHR_ENCOUNTER": "<LASTEHR_ENCOUNTER>",
"LASTEHR_PERFORMER": "<LASTEHR_PERFORMER>"
}
}
}
}
Settings → Developer → Edit Config opens this file. Restart the app after saving. Claude Desktop docs