FHIR MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FHIR_SCOPE | No | OAuth2 scopes (space-separated). Default: all supported resources | |
| FHIR_BASE_URL | No | Base URL of the FHIR server. Default: https://fhir-ehr.cerner.com/r4 | https://fhir-ehr.cerner.com/r4 |
| FHIR_CLIENT_ID | Yes | OAuth2 client ID for authentication | |
| FHIR_TENANT_ID | No | Tenant ID for your FHIR server instance. Default: ec2458f2-1e24-41c8-b71b-0e701af7583d | ec2458f2-1e24-41c8-b71b-0e701af7583d |
| FHIR_CLIENT_SECRET | Yes | OAuth2 client secret for authentication | |
| FHIR_TOKEN_ENDPOINT | No | OAuth2 token endpoint URL. Auto-generated from tenant ID if not provided. | |
| FHIR_REQUEST_TIMEOUT | No | Request timeout in seconds. Default: 60.0 | 60.0 |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_patient_by_idA | Retrieve a specific patient by their FHIR patient ID. Args: patient_id: The FHIR patient ID to retrieve Returns: Dictionary containing the patient information |
| search_patients_by_nameC | Search for patients by name using FHIR search parameters. Args: given_name: Patient's given (first) name family_name: Patient's family (last) name Returns: Dictionary containing the search results |
| search_patients_by_identifierA | Search for patients by identifier (e.g., MRN, SSN). Args: identifier_type: Type of identifier (e.g., "MR", "SS") identifier_value: The identifier value to search for Returns: Dictionary containing the search results |
| search_patients_by_birthdateA | Search for patients by birth date. Args: birthdate: Patient's birth date in YYYY-MM-DD format Returns: Dictionary containing the search results |
| search_patients_by_phoneC | Search for patients by phone number. Args: phone_number: Patient's phone number Returns: Dictionary containing the search results |
| search_patients_by_emailB | Search for patients by email address. Args: email: Patient's email address Returns: Dictionary containing the search results |
| search_patients_by_addressB | Search for patients by address components. Args: postal_code: Patient's postal/ZIP code city: Patient's city state: Patient's state Returns: Dictionary containing the search results |
| get_allergy_by_idB | Retrieve a specific allergy intolerance by ID. Args: allergy_id: The FHIR AllergyIntolerance ID Returns: Dictionary containing the allergy intolerance information |
| get_patient_allergiesA | Retrieve allergies for a specific patient. Args: patient_id: The FHIR patient ID clinical_status: Optional filter by clinical status (active, inactive, resolved) Returns: Dictionary containing the patient's allergies |
| get_condition_by_idB | Retrieve a specific condition by ID. Args: condition_id: The FHIR Condition ID Returns: Dictionary containing the condition information |
| get_patient_conditionsA | Retrieve conditions for a specific patient. Args: patient_id: The FHIR patient ID clinical_status: Optional filter by clinical status (active, inactive, resolved) category: Optional filter by category (problem-list-item, encounter-diagnosis) Returns: Dictionary containing the patient's conditions |
| get_procedure_by_idC | Retrieve a specific procedure by ID. Args: procedure_id: The FHIR Procedure ID Returns: Dictionary containing the procedure information |
| get_patient_proceduresA | Retrieve procedures for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format or date range) status: Optional filter by status (preparation, in-progress, completed) Returns: Dictionary containing the patient's procedures |
| get_encounter_by_idB | Retrieve a specific encounter by ID. Args: encounter_id: The FHIR Encounter ID Returns: Dictionary containing the encounter information |
| get_patient_encountersA | Retrieve encounters for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format or date range) status: Optional filter by status (planned, arrived, in-progress, finished) encounter_class: Optional filter by class (ambulatory, emergency, inpatient) Returns: Dictionary containing the patient's encounters |
| get_diagnostic_report_by_idB | Retrieve a specific diagnostic report by ID. Args: report_id: The FHIR DiagnosticReport ID Returns: Dictionary containing the diagnostic report information |
| get_patient_diagnostic_reportsB | Retrieve diagnostic reports for a specific patient. Args: patient_id: The FHIR patient ID category: Optional filter by category (LAB, RAD, etc.) date: Optional filter by date (YYYY-MM-DD format or date range) status: Optional filter by status (registered, partial, final, corrected) Returns: Dictionary containing the patient's diagnostic reports |
| get_observation_by_idB | Retrieve a specific observation by ID. Args: observation_id: The FHIR Observation ID Returns: Dictionary containing the observation information |
| get_patient_observationsA | Retrieve observations for a specific patient. Args: patient_id: The FHIR patient ID category: Optional filter by category (vital-signs, laboratory, etc.) code: Optional filter by observation code (LOINC code) date: Optional filter by date (YYYY-MM-DD format or date range) Returns: Dictionary containing the patient's observations |
| get_patient_vital_signsA | Retrieve vital signs observations for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format or date range) Returns: Dictionary containing the patient's vital signs |
| get_patient_lab_resultsC | Retrieve laboratory observations for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format or date range) Returns: Dictionary containing the patient's lab results |
| get_immunization_by_idA | Retrieve a specific immunization by ID. Args: immunization_id: The FHIR Immunization ID Returns: Dictionary containing the immunization information |
| get_patient_immunizationsA | Retrieve immunizations for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format or date range) status: Optional filter by status (completed, not-done) Returns: Dictionary containing the patient's immunizations |
| get_medication_request_by_idA | Retrieve a specific medication request by ID. Args: medication_request_id: The FHIR MedicationRequest ID Returns: Dictionary containing the medication request information |
| get_patient_medication_requestsA | Retrieve medication requests for a specific patient. Args: patient_id: The FHIR patient ID status: Optional filter by status (active, completed, cancelled) intent: Optional filter by intent (order, plan, proposal) Returns: Dictionary containing the patient's medication requests |
| get_appointment_by_idB | Retrieve a specific appointment by ID. Args: appointment_id: The FHIR Appointment ID Returns: Dictionary containing the appointment information |
| get_patient_appointmentsA | Retrieve appointments for a specific patient. Args: patient_id: The FHIR patient ID date: Optional filter by date (YYYY-MM-DD format, automatically formatted with time component) status: Optional filter by status (proposed, pending, booked, arrived, fulfilled, cancelled) Returns: Dictionary containing the patient's appointments |
| search_appointments_by_dateA | Search for appointments by date. Args: date: Appointment date (YYYY-MM-DD format, automatically formatted with time component) status: Optional filter by status (proposed, pending, booked, arrived, fulfilled, cancelled) Returns: Dictionary containing the appointments |
| get_fhir_capability_statementA | Retrieve the FHIR server's capability statement (metadata). This provides information about the server's capabilities and supported resources. Returns: Dictionary containing the FHIR server capabilities |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sdesani/mcp-fhir'
If you have feedback or need assistance with the MCP directory API, please join our Discord server