fhir-synthetic-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FHIR_MCP_DATA | No | Path to the JSON data file | data/synthetic_patients.json |
| FHIR_MCP_ACTOR | No | The agent's audit identity | agent:dev |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_patientsC | List available patient IDs. |
| get_patientA | Read one patient's demographics. |
| list_observationsB | List a patient's observations. |
| parse_clinical_documentA | Parse a clinical document using Nemotron Parse (NVIDIA NIM). |
| search_guidelinesB | Search clinical guidelines using hybrid BM25 + semantic retrieval. |
| search_clinical_trialsA | Search ClinicalTrials.gov for recruiting trials matching a condition. Call when search_guidelines returns validation_warnings (flagged observations) to surface trials the patient may qualify for. PHI-safe: only condition strings transmitted externally. |
| propose_observationA | Propose a new observation. Stages it for human approval; does NOT write. |
| list_pending_writesB | List writes awaiting human approval. |
| approve_writeC | HUMAN-IN-THE-LOOP GATE. Commit a staged write. |
| reject_writeC | HUMAN-IN-THE-LOOP GATE. Reject a staged write. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_pending | Prompt template for a human reviewer approving/rejecting pending writes. |
| patient_overview | Prompt template for comprehensive patient overview. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guidelines_index | Index of available clinical guidelines. |
TDQS
Scored across 10 tools
Each tool targets a distinct action and resource: listing vs reading patients, searching guidelines vs trials, proposing vs approving/rejecting writes. No two tools appear to do the same thing.
All tool names follow a consistent snake_case verb_noun pattern (list_patients, get_patient, search_guidelines, approve_write). The convention is uniform across the entire set.
With 10 tools, the server is well-scoped for its purpose: patient data access, clinical searches, and a human-in-the-loop write workflow. Each tool serves a clear role without excessive overlap or bloat.
The core workflow is covered: list/get patients, list observations, propose and approve/reject observations, plus guideline and trial searches. Minor gaps exist (e.g., no update/delete for observations, no patient creation), but these are not critical for the synthetic FHIR use case.