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 |
Capabilities
Features and capabilities supported by this server
| 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
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