Skip to main content
Glama
rkirkendall

Medplum MCP Server

by rkirkendall

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
createPatientB

Creates a new patient resource. Requires first name, last name, and birth date.

getPatientByIdB

Retrieves a patient resource by their unique ID.

updatePatientB

Updates an existing patient's information. Requires the patient's ID and the fields to update.

searchPatientsC

Searches for patients based on criteria like name or birth date.

searchPractitionersByNameB

Searches for medical practitioners based on their given name, family name, or a general name string.

createPractitionerC

Creates a new medical practitioner. Requires given name and family name.

getPractitionerByIdC

Retrieves a practitioner resource by their unique ID.

updatePractitionerC

Updates an existing practitioner's information. Requires the practitioner's ID and the fields to update.

searchPractitionersC

Searches for practitioners based on various criteria like name, specialty, or identifier.

createOrganizationC

Creates a new organization (e.g., hospital, clinic). Requires organization name.

getOrganizationByIdC

Retrieves an organization by its unique ID.

updateOrganizationC

Updates an existing organization. Requires the organization ID and the fields to update.

searchOrganizationsB

Searches for organizations based on criteria like name or address. Provide at least one criterion.

createEncounterC

Creates a new encounter (patient visit). Requires patient ID and status.

getEncounterByIdB

Retrieves an encounter by its unique ID.

updateEncounterC

Updates an existing encounter. Requires the encounter ID and the fields to update.

searchEncountersC

Searches for encounters based on criteria like patient ID or status.

createObservationB

Creates a new observation (lab result, vital sign, etc.). Requires patient ID and code.

getObservationByIdC

Retrieves an observation by its unique ID.

updateObservationC

Updates an existing observation. Requires the observation ID and the fields to update.

searchObservationsC

Searches for observations based on criteria like patient ID or code.

createMedicationRequestC

Creates a new medication request (prescription). Requires patient ID, medication reference, and prescriber.

getMedicationRequestByIdC

Retrieves a medication request by its unique ID.

updateMedicationRequestC

Updates an existing medication request. Requires the medication request ID and fields to update.

searchMedicationRequestsC

Searches for medication requests based on criteria like patient ID or medication.

createMedicationC

Creates a new medication resource. Requires medication code or identifier.

getMedicationByIdC

Retrieves a medication by its unique ID.

searchMedicationsB

Searches for medications based on criteria like code or name.

createEpisodeOfCareC

Creates a new episode of care for a patient. Requires patient ID and status.

getEpisodeOfCareByIdB

Retrieves an episode of care by its unique ID.

updateEpisodeOfCareC

Updates an existing episode of care. Requires the episode ID and fields to update.

searchEpisodesOfCareB

Searches for episodes of care based on criteria like patient ID or status.

createConditionC

Creates a new condition or diagnosis for a patient. Requires a patient ID and a condition code.

getConditionByIdB

Retrieves a condition resource by its unique ID.

updateConditionB

Updates an existing condition. Requires the condition ID and at least one field to update.

searchConditionsB

Searches for conditions based on patient and other criteria. Requires a patient ID.

generalFhirSearchC

Performs a generic FHIR search operation on any resource type with custom query parameters.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 37 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific FHIR resource type (e.g., Patient, Condition, Observation) combined with a specific operation (create, get, search, update), making it easy for an agent to select the correct tool. The descriptions reinforce this clarity by specifying required parameters and use cases.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as createPatient, getPatientById, searchPatients, updatePatient. This pattern is applied uniformly across all 37 tools, with no deviations in style or convention, making the set predictable and easy to navigate.

Tool Count3/5

With 37 tools, the count feels heavy for a typical MCP server, bordering on excessive. While the tools cover multiple FHIR resources comprehensively, such a large number might overwhelm agents or lead to inefficiencies in tool selection, despite the clear organization. A more streamlined set could improve usability without sacrificing functionality.

Completeness5/5

The tool surface is complete for the FHIR domain, offering full CRUD/lifecycle coverage (create, get, search, update) for key resources like Patient, Condition, Observation, and others. There are no obvious gaps; agents can perform all essential operations without dead ends, supported by the generalFhirSearch tool for custom queries.

Maintenance

ActivityInactive
ResponsivenessNo issues