Skip to main content
Glama

smart-fhir

Ein Connector, der keinen Patienten erfindet.

MCP v1 transport stdio FHIR R4 4.0.1 SMART 2.2.0 writes off

tools 4 sandbox public synthetic empty search stays empty unknown id 404 PHI none

Installation · Tools · So funktioniert’s · Grenzen


Installation

Nur stdio. Nach dem TypeScript-Build einen lokalen Connector hinzufügen:

name: smart-fhir
command: node
args: dist/index.js
npm install
npm run build

Umgebung dafür (Standardwerte, keine Secrets):

FHIR_ISS = https://launch.smarthealthit.org/v/r4/fhir
FHIR_VERSION = R4
FHIR_AUTH_MODE = open
FHIR_WRITE = off
FHIR_AUDIT_PATH = ./audit/audit.jsonl

Lege keine Secret-Werte ins Repository ab. Kein öffentlicher HTTP-Port. Kein TCP-Bind.

Morgen-Shortcut (gleiche Umgebung)

npx -y tsx src/index.ts

Siehe Skripte in package.json: install, build, test, prove.

Related MCP server: smart-mcp-server

Tools

Vier Tools. Kein create / update / delete.

Tool

Funktion

smart_discover

GET {iss}/.well-known/smart-configuration. Liefert geparstes JSON oder einen eindeutigen Fehler. Erfindet keine Endpunkte.

fhir_auth_status

{ mode, iss, fhir_version: "R4", write: "off", token_present, discovery_ok, last_error? }. Gibt niemals Token oder PEM aus.

fhir_search

GET {iss}/{resourceType}?... _Standard 10, max 50. Eine Seite. Leeres Bundle wird unverändert zurück.

fhir_read

GET {iss}/{resourceType}/{id}. 404 ist nicht gefunden und keine erfundene Ressource.

resourceType-Allowlist: Patient | Observation | Condition | MedicationRequest | Encounter. Alles andere → { ok: false, error: "resourceType not in v1 allowlist" }.

So funktioniert’s

FHIR_VERSION muss R4 sein. Alles andere verweigert den Start.

Thema

URL

Wie einzuordnen

FHIR-Index (veröffentlichte Seite ist R5 5.0.0)

http://hl7.org/fhir/

Nur offizieller Index. Nicht implementiert.

FHIR R4 (v1)

https://hl7.org/fhir/r4/

FHIR Release 4, 4.0.1. Ressourcenmodell.

SMART App Launch 2.2.0 (STU 2.2)

https://hl7.org/fhir/smart-app-launch/

Aktuell veröfentlichter SMART IG. Basierend auf FHIR R4.

App Launch + Autorisierung

https://hl7.org/fhir/smart-app-launch/app-launch.html

Discovery, Standalone-/EHR-Launch, PKCE, Token. App Launch (code+PKCE) ist in v1 nicht enthalten.

Backend Services

https://hl7.org/fhir/smart-app-launch/backend-services.html

client_credentials + Private-Key-JWT. Implementiert; nur verwendet, wenn die Umgebung entsprechend gesetzt ist.

ISS-Zulassung (abschließender Schrägstrich wird entfernt, alles andere wird abgelehnt):

  • https://sandbox.smarthealthit.org/v/r4/fhir (Standard)

  • https://r4.smarthealthit.org

  • https://hapi.fhir.org/baseR4

Setze FHIR_ISS auf eine andere zugelassene Basis, um auf eine andere ISS zu zeigen. Eine neue ISS muss zuerst geprüft werden. Weisen Sie dieses nicht auf eine Live-EHR ohne diese Prüfung und eine echte client_id.

FHIR_AUTH_MODE

Verhalten

open (Standard)

Discovery, dann FHIR GET ohne Authorization. Eine Discovery-404 ist im open-Modus nicht fatal (wird geloggt; weiter geht’s). 401/403 von FHIR → { ok: false, http_status, ... }.

bearer

Gleiche Discovery. FHIR GET mit Authorization-Bearer-Token.

backend_jwt

Nur wenn sowohl FHIR_CLIENT_ID (oder SMART_CLIENT_ID) als auch FHIR_PRIVATE_KEY_PEM existieren. SMART Backend Services JWT. Fehlende Umgebungsvariable → Verweigerung des Starts. Erfindet keine Zugangsdaten.

App Launch (code+PKCE) ist nicht enthalten. FHIR_REDIRECT_URI ist reserviert und ungenutzt.

Fehlerfall Authentifizierung: { ok: false, http_status, issue?, error? }. Niemals eine synthetische Patientenseite.

FHIR_WRITE ist standardmäßig off. v1 hat keine Schreib-Tools, selbst wenn jemand on setzt. Schreibvorgänge senden kein AuditEvent per POST an FHIR.

Name

Standardwert

Hinweise

FHIR_ISS

Standard-Launcher R4

Muss in der Zulassungsliste bleiben

FHIR_VERSION

R4

Alles andere ablehnen

FHIR_AUTH_MODE

open

open / bearer / backend_jwt

FHIR_WRITE

off

Schreibzugriffe bleiben in v1 aus

FHIR_AUDIT_PATH

/workspace/smart-fhir-mcp/audit/audit.jsonl

Nur Append Datei JSONL; lokal ./audit/audit.json1 setzen

FHIR_ACCESS_TOKEN

nicht gesetzt

Nur für Bearer

FHIR_CLIENT_ID

nicht gesetzt

Backend Services

SMART_CLIENT_ID

nicht gesetzt

Alias für FHIR_CLIENT_ID

FHIR_PRIVATE_KEY_PEM

nicht gesetzt

Backend Services JWT

FHIR_JWKS_URL

nicht gesetzt

Reserviert, falls eine EHR JWKS verwenden will

FHIR_SCOPE

fünf system/*.rs-Typen

Überschreibung im JWT-Modus

FHIR_REDIRECT_URI

nicht gesetzt

Reserviert für später. App Launch

Auditzeilen: ts, tool, iss, mode, resourceType, id?, http_status, entry_count?. Kein Ressourcenrumpf, kein Token, kein PEM, keine Name/MRN-Abfragewerte.

Grenzen

  • R5 / R4B als Standard. Zusätzliche Resourcentypen. CRUD. Bulk. App-Launch (Browser/PKCE).

  • Echte EHR / echte PHI. Produktionsbereitstellung. Öffentliches Binding oder Streamable HTTP.

  • momentum / fhirhydrant / Atrium / Pinecone / Medplum.

  • Kein Medizinprodukt. Stellt keine Diagnosen, behandelt nichts und speichert keine PHI.


Keine PHI. Keine Live-EHR.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Securely access and manage FHIR healthcare data stored in Medplum.

  • Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.

  • Guardrailed FHIR access for AI agents: PHI redaction, audit trail, step-up auth, tenant isolation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/swami8791/smart-fhir-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server