Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
Beschreibung vom Entwickler (englisches Original)
FHIR MCP server with SMART Backend Services, response compaction, FHIRPath, and guarded writes.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
MCP_TRANSPORT, FHIR_AUTH, FHIR_SERVER_URL, FHIR_TOKEN_URL, FHIR_CLIENT_ID, FHIR_ACTIVE_KEY, FHIR_JWKS_URL, FHIR_VERSIONAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"fhirhydrant": {
"command": "npx",
"args": [
"-y",
"fhirhydrant"
],
"env": {
"MCP_TRANSPORT": "your-value",
"FHIR_AUTH": "your-value",
"FHIR_SERVER_URL": "your-value",
"FHIR_TOKEN_URL": "your-value",
"FHIR_CLIENT_ID": "your-value",
"FHIR_ACTIVE_KEY": "your-value",
"FHIR_JWKS_URL": "your-value",
"FHIR_VERSION": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add fhirhydrant --env MCP_TRANSPORT=your-value --env FHIR_AUTH=your-value --env FHIR_SERVER_URL=your-value --env FHIR_TOKEN_URL=your-value --env FHIR_CLIENT_ID=your-value --env FHIR_ACTIVE_KEY=your-value --env FHIR_JWKS_URL=your-value --env FHIR_VERSION=your-value -- npx -y fhirhydrantTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"fhirhydrant": {
"command": "npx",
"args": [
"-y",
"fhirhydrant"
],
"env": {
"MCP_TRANSPORT": "your-value",
"FHIR_AUTH": "your-value",
"FHIR_SERVER_URL": "your-value",
"FHIR_TOKEN_URL": "your-value",
"FHIR_CLIENT_ID": "your-value",
"FHIR_ACTIVE_KEY": "your-value",
"FHIR_JWKS_URL": "your-value",
"FHIR_VERSION": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"fhirhydrant": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"fhirhydrant"
],
"env": {
"MCP_TRANSPORT": "your-value",
"FHIR_AUTH": "your-value",
"FHIR_SERVER_URL": "your-value",
"FHIR_TOKEN_URL": "your-value",
"FHIR_CLIENT_ID": "your-value",
"FHIR_ACTIVE_KEY": "your-value",
"FHIR_JWKS_URL": "your-value",
"FHIR_VERSION": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
FHIR_TOKEN_URL envFHIR_CLIENT_ID envFHIR_JWKS_URL envFHIR_VERSION envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto faulkj bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: MCP_TRANSPORT, FHIR_AUTH, FHIR_SERVER_URL, FHIR_ACTIVE_KEY
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.17.3) kam vor 2 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Mirobody, FHIR MCP Server, Google Health MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A modern, fully configurable, open-source Node.js Model Context Protocol (MCP) server for R4+ FHIR APIs. It connects MCP-compatible LLM AI clients to clinical data over SMART on FHIR v2 Backend Services using signed JWT client credentials.
fhirHydrant turns FHIR resources, named operations, terminology lookups, and pagination into MCP tools. The default resources and operations are starting points: resources, operations, search controls, instructions, and messages can be expanded, trimmed, or replaced through config files without source changes.
_count shaping, and oversized Bundle retryNote: FHIR data returned through MCP tool calls may contain PHI.
Make sure your MCP client's transcript storage and logging behavior match
your compliance requirements.
To run against a public, unauthenticated FHIR test server, set FHIR_AUTH=none and skip the client and key entirely (see Unauthenticated Access).
The stdio transport usually needs an externally hosted JWKS URL. The built-in /jwks endpoint is available only when fhirHydrant runs over HTTP with SMART auth.
# install globally
npm install -g fhirhydrant
npx fhirhydrant
Run from source:
git clone https://github.com/faulkj/fhirhydrant.git
cd fhirhydrant npm install npm run build
For desktop MCP clients, stdio is usually the simplest transport:
{
"mcpServers": { "fhirhydrant": { "command": "npx", "args": ["-y", "fhirhydrant"], "env": { "MCP_TRANSPORT": "stdio", "FHIR_BASE_URL": "https://fhir.example.org", "FHIR_CLIENT_ID": "your-client-id", "FHIR_ACTIVE_KEY": "LS0tLS1CRUdJTi...base64-of-your-pem...", "FHIR_JWKS_URL": "https://example.org/.well-known/jwks.json" } } } }
FHIR_ACTIVE_KEY is your PKCS#8 private key (RSA or EC P-384), base64-encoded. The kid is derived automatically at startup via a truncated JWK Thumbprint and logged to the console.
To point fhirHydrant at a public, unauthenticated FHIR endpoint (handy for testing against open sandboxes), set FHIR_AUTH=none. No client ID or signing key is required, no token is requested, and requests are sent without an Authorization header:
{
"mcpServers": { "fhirhydrant": { "command": "npx", "args": ["-y", "fhirhydrant"], "env": { "MCP_TRANSPORT": "stdio", "FHIR_AUTH": "none", "FHIR_SERVER_URL": "https://hapi.fhir.org/baseR4" } } } }
fhirHydrant registers tools from configuration and runtime capability checks. The exact list depends on the config/resources/ folder, granted SMART scopes, /metadata, write settings, operation settings, and terminology settings.
| Tool or family | Available when | Purpose |
|---|---|---|
| Resource tools | Resource is configured and allowed by metadata/scopes | Search, direct-read, vread, history, and optionally CRUD FHIR resources |
system_history | Server advertises system history interaction and scopes allow it | Retrieve system-level change history across all resource types |
capabilities | Always registered | Inspect CapabilityStatement summary, registered tools, skipped tools, search params, operations, and metadata notes |
paginate | Always registered | Fetch the next page of a FHIR Bundle using a server-returned next URL |
operate | At least one named operation passes gating | Invoke configured FHIR named operations for clinical data, terminology, IPS, matching, validation, or custom workflows |
bundle | FHIR_BUNDLE_CAPABILITIES is set | Submit a FHIR batch or transaction Bundle; writes require additional opt-in |
terminology_lookup | FHIR_TERMINOLOGY_BASE_URL is set | Look up one LOINC or SNOMED CT code |
code_search | FHIR_TERMINOLOGY_BASE_URL is set | Search LOINC or SNOMED CT codes by text |
Resource tools are generated from the config/resources/ folder — one JSON file per resource (e.g. patient.json), scanned at startup. The shipped config covers common clinical, administrative, medication, practitioner, organization, and document resources. Add a file to add a resource, or delete one to drop it — no source changes required.
Each resource tool supports configured search params, optional direct reads with _id, fhirpath, and, unless compact-locked, responseMode. Direct read only happens when _id is the only non-empty argument; _id plus other params stays a search so caller intent is not silently discarded.
Resource tools are search/read by default. Set FHIR_WRITE_CAPABILITIES to enable metadata-gated CRUD actions:
FHIR_WRITE_CAPABILITIES=create,update,patch,delete
| Action | Required params | FHIR call |
|---|---|---|
vread | _id, _vid | GET /ResourceType/{id}/_history/{vid} |
history | _id (instance) or none (type) | GET /ResourceType/{id}/_history or GET /ResourceType/_history |
create | body | POST /ResourceType |
update | _id, body | PUT /ResourceType/{id} |
patch | _id, body | PATCH /ResourceType/{id} with JSON Patch |
delete | _id | DELETE /ResourceType/{id} |
vread is available when the resource has supportsDirectRead and the server advertises the vread interaction. history is available when the server advertises history-instance or history-type. Both require the SMART r permission. Optional _since and _at parameters filter history results. History responses are Bundles and support compact mode, FHIRPath, and coalescing.
Write bodies are validated before the FHIR call: body.resourceType must match the tool resource, body.id must match _id for update when present, and patch requires a JSON Patch array. Scopes are derived from enabled capabilities: read/search uses system/Patient.rs, create/read/search uses system/Patient.crs, and full write support uses system/Patient.cruds. SMART v2 has no separate patch letter, so patch maps to u.
capabilities returns the cached CapabilityStatement summary, registered and skipped tools, search params, operations, and metadata notes.
paginate fetches one Bundle page using a server-returned next URL validated against the FHIR origin and allowed path prefixes. When compact mode is active and the fetched page has more results, paginate automatically coalesces multiple upstream pages into one compact response (same behavior as resource search tools). Pass prefetch=false to disable coalescing and get a single page.
The operate tool invokes FHIR named operations from config/operations.json. The shipped operation catalog covers clinical aggregation, validation, document lookup, terminology operations, IPS generation, and patient matching. You can expand, trim, replace, or disable the operation catalog without source changes.
Set FHIR_TERMINOLOGY_BASE_URL to enable:
| Tool | Description |
|---|---|
terminology_lookup | Looks up one LOINC or SNOMED CT code |
code_search | Searches codes by text filter with paging support |
These tools call the configured terminology server directly. They do not use the clinical FHIR server credentials. Use a terminology endpoint that matches your selected FHIR release, such as https://tx.fhir.org/r4.
Set FHIR_BUNDLE_CAPABILITIES=batch (or batch,transaction) to enable bundle. This tool submits a FHIR batch or transaction Bundle and returns the server's response through the standard response pipeline.
Safety model:
FHIR_BUNDLE_CAPABILITIES=batch.FHIR_BUNDLE_WRITES_ENABLED=true and the corresponding action in FHIR_WRITE_CAPABILITIES.FHIR_BUNDLE_CAPABILITIES=transaction.V1 exclusions: Conditional requests, system-level _history, absolute URLs, and $operation URLs inside Bundle entries are not supported.
History in Bundles: vread (Resource/id/_history/vid), instance history (Resource/id/_history), and type history (Resource/_history) entries are allowed in Bundles when the server advertises the corresponding interaction and scopes permit it. These count as read entries.
Unless FHIR_METADATA_MODE=off, fhirHydrant fetches the FHIR server's CapabilityStatement at startup. In strict mode:
/metadata_count, _sort, _summary, _elements, _include, and _revinclude are exposed only when advertisedFHIR_WRITE_CAPABILITIES and matching CapabilityStatement interactionsIn warn mode, unadvertised params are allowed with a warning, but absent resource types are still skipped. SMART scopes are also checked at runtime, so a tool can exist in the schema and still be blocked by the granted token scope.
FHIR responses are often much larger than an MCP client needs. fhirHydrant shapes responses for token economy after retrieval, using server-side controls when the FHIR server advertises them.
| Feature | Behavior |
|---|---|
_count default/cap | No _count injected by default (server decides page size). Set FHIR_DEFAULT_COUNT to inject one; FHIR_MAX_COUNT caps explicit caller values (0 = no cap) |
| Page coalescing | When compact mode is active, the server fetches multiple upstream pages sequentially, compacts each immediately, and returns one consolidated Bundle. Controlled by maxResults, prefetch, and FHIR_PREFETCH_* env vars |
| Byte limit | FHIR_MAX_RESPONSE_BYTES limits every model-facing JSON response; oversized
Nur der Anfang wird gezeigt; den Rest findest du im Repo