← The evidence ledger
Evidence row 3426343
Observed , by sync.mcp_registry/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.cbetz/last-ehr
- Recorded
- Previous row
- #34597
- Body SHA-256
- 48008b2c823b59a0fc0a582fd9cafcdc30064d06f009667fb8305570b9ab541e
- Leaf
- 0xf5d467aaf38d31abc87d1f1506f7ec83976be9d64def701561993f98c7d50bce
What was observed
{
"endpoints": [
[
"web",
"https://www.lastehr.com/docs/mcp"
]
],
"name": "Last EHR — Medplum",
"owner_address": null,
"raw": {
"_meta": {
"io.modelcontextprotocol.registry/official": {
"isLatest": true,
"publishedAt": "2026-11-05T15:26:30.323667Z",
"status": "active",
"statusChangedAt": "2026-11-05T15:26:30.323667Z",
"updatedAt": "2026-11-05T15:26:30.323667Z"
}
},
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"description": "FHIR chart tools for MCP: read-only by default, with elicitation-gated, human-approved writes.",
"name": "io.github.cbetz/last-ehr",
"packages": [
{
"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"
}
],
"identifier": "@lastehr/mcp",
"registryType": "npm",
"transport": {
"type": "stdio"
},
"version": "0.5.0"
}
],
"repository": {
"source": "github",
"subfolder": "packages/mcp",
"url": "https://github.com/cbetz/last-ehr"
},
"title": "Last EHR — Medplum",
"version": "0.5.0",
"websiteUrl": "https://www.lastehr.com/docs/mcp"
}
},
"source": "mcp_registry",
"summary": "FHIR chart tools for MCP: read-only by default, with elicitation-gated, human-approved writes."
}What the leaf hashes
{"body":"48008b2c823b59a0fc0a582fd9cafcdc30064d06f009667fb8305570b9ab541e","id":3426343,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793895703356176,"prev":34597,"subject":"mcp_registry:io.github.cbetz/last-ehr","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (322504 rows).
- 0xf5d473c56766171a5521ba11efa45cfc602a260977a854d000f53a656bbdb36d
- 0x72503d04d37132b7939e6c78290a0684ca52f4c156e08dfcf720082be869b489
- 0x792abaddb0930cc5788c3921a024f2c5b4def142998d3761bbb4be4ea40aed8e
- 0x92bae2a0f709867f66372873c4335e2fbe7af8b7ae089b88d30e7a7064a13969
- 0x4ada0973617ec318e791a745531c12944bab124542176f2cf41fa73ef7a4a561
- 0x80bca46fdab43138d268c4a82d1ff2df12633dcefc7f9638c4ab1425804aea93
- 0x75df36b6ef54a980ee88b6cde733b32fa204769f8b2ade3886235468ba659552
- 0x980847cf250ea636893f8541cc922bfce783144757625d9ba85337d618e50759
- 0x8b07dc084c149f721e6f221a9b41b91d27141e29074ac33fafc94f2880e0188d
- 0x8d951fb2982c1670eea031b3633bb1e6f08470bbb419e235add3de3ccfa8d3f3
- 0xd2da3531419199fddb316714a095a9a9f366ef9353ca4966d30d0e0dac254030
- 0x0419e2cb2aef4458a7724aacb649ee689f39f0bfa07a01d9cff15547868b90f0
- 0xe5385d8bdc4bf6facce96ba2cf3a25326fcb09c2806bde82a70cc4d31d0d7e75
- 0x1639b247a5d5a7c1c147128de55c8214f740b3c69e239097a9214d771bef36fa
- 0x0f89b13f204fe566641bee24955c02233efcbd2fce2017340ed06cf3c4c4503b
- 0x46e57eb471bdfedc5371f9f8dd93e03a0ef82a84f79b917a40533d34f61e890c
- 0x595efddb5b196a921c775c54d0aa541065f1802bfefb8bd003a60b16925c4b58
- Day root
- 0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
- Chained
- 0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
- Published
- On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94