mcp
Built by Metorial, the integration platform for agentic AI.
mcp
An MCP server for CharmHealth EHR that allows LLMs and MCP clients to interact with patient records, encounters, and practice information.
| Attribute | Details |
|---|---|
| Docker Image | mcp/charmhealth-mcp-server |
| Author | CharmHealth |
| Repository | https://github.com/CharmHealth/charm-mcp-server |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/CharmHealth/charm-mcp-server/blob/b605438d97c13536295f8dbab17afb0e1e269548/Dockerfile |
| Commit | b605438d97c13536295f8dbab17afb0e1e269548 |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/charmhealth-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
findPatients | Find patients. |
getPracticeInfo | Get practice information. |
manageAppointments | Manage appointments. |
manageEncounter | Manage encounters. |
managePatient | Manage patients. |
managePatientAllergies | Manage patient allergies. |
managePatientDiagnoses | Manage patient diagnoses. |
managePatientDrugs | Manage patient drugs and supplements. |
managePatientFiles | Manage patient files and documents. |
managePatientLabs | Manage patient laboratory results. |
managePatientNotes | Manage patient notes. |
managePatientRecalls | Manage patient recalls. |
managePatientVitals | Manage patient vitals and vital signs. |
reviewPatientHistory | Review patient history. |
findPatientsFind patients.
Find patients quickly using natural search terms or specific criteria. Handles everything from "find John Smith" to complex searches like "elderly diabetes patients in California". Essential first step for any patient-related task.
Quick searches: Use search_type="name" with query="John Smith" for basic name searches Phone lookups: Use search_type="phone" with query="555-1234" (handles any format) Medical record: Use search_type="record_id" with query="MR123456"
Complex searches: Use search_type="advanced" with multiple criteria:
Always returns patient_id needed for other tools. Start here before any patient operations.
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
age_max | string optional | |
age_min | string optional | |
blood_group | string optional | |
category_id | string optional | |
city | string optional | |
country | string optional | |
created_after | string optional | |
created_before | string optional | |
facility_id | string optional | |
gender | string optional | |
has_phr_account | string optional | |
language | string optional | |
limit | string optional | |
marital_status | string optional | |
modified_after | string optional | |
modified_before | string optional | |
page | string optional | |
postal_code | string optional | |
query | string optional | |
search_type | string optional | |
sort_by | string optional | |
sort_order | string optional | |
state | string optional | |
status | string optional |
getPracticeInfoGet practice information.
Get essential practice information needed for other operations - available facilities, providers, vital signs templates, etc. Use this to understand practice setup and get IDs for other tools.
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
info_type | string optional |
manageAppointmentsManage appointments.
Complete appointment lifecycle management - schedule new appointments, reschedule existing ones, cancel appointments, and list appointments with flexible filtering. Handles the full appointment workflow.
Actions:
Time format: Use 12-hour format like "09:30 AM" or "02:15 PM" For recurring: Set repetition to "Weekly" or "Daily" and provide frequency + end_date For double booking: Use provider_double_booking="allow" or resource_double_booking="allow" to override checks For cancellation: Use delete_type "Current" for single appointment or "Entire" for recurring series
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
appointment_date | string optional | |
appointment_id | string optional | |
appointment_time | string optional | |
cancel_reason | string optional | |
consent_forms | string optional | |
delete_type | string optional | |
duration_minutes | string optional | |
end_date | string optional | |
end_date_range | string optional | |
facility_id | string optional | |
facility_ids | string optional | |
frequency | string optional | |
member_ids | string optional | |
message_to_patient | string optional | |
mode | string optional | |
patient_id | string optional | |
provider_double_booking | string optional | |
provider_id | string optional | |
questionnaire | string optional | |
reason | string optional | |
receipt_id | string optional | |
repetition | string optional | |
resource_double_booking | string optional | |
resource_id | string optional | |
start_date | string optional | |
status | string optional | |
status_ids | string optional | |
visit_type_id | string optional | |
weekly_days | string optional |
manageEncounterManage encounters.
Complete encounter workflow - create, review, and sign encounters with comprehensive clinical documentation. Essential for clinical workflow from initial documentation through final signature.
Actions:
For creating encounters:
For reviewing encounters:
For signing encounters:
For unlocking encounters:
Recommended workflow:
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
patient_id | string | |
action | string optional | |
appointment_id | string optional | |
chief_complaint | string optional | |
encounter_date | string optional | |
encounter_id | string optional | |
encounter_mode | string optional | |
facility_id | string optional | |
provider_id | string optional | |
reason | string optional | |
visit_type_id | string optional |
managePatientManage patients.
Complete patient management with comprehensive demographic, social, and administrative data. Handles patient creation, updates, status changes, and complex relationships. Supports all CharmHealth patient data fields for complete EHR functionality.
Actions:
Update Modes:
Demographics: Supports comprehensive patient information including social history, family data Addresses: If any address field provided, country is required (defaults to US) Facilities: Pass as list of facility IDs like "facility_123,facility_456". Categories: Pass as list like [{"category_id": "category_123"}]
Complex Relationships:
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
address_line1 | string optional | |
address_line2 | string optional | |
age | string optional | |
area | string optional | |
birth_order | string optional | |
blood_group | string optional | |
caregivers | string optional | |
categories | string optional | Categories: Pass as list like [{"category_id": "category_123"}] |
cause_of_death | string optional | |
city | string optional | |
country | string optional | |
county_code | string optional | |
custom_field_1 | string optional | |
custom_field_2 | string optional | |
custom_field_3 | string optional | |
custom_field_4 | string optional | |
custom_field_5 | string optional | |
date_of_birth | string optional | |
deceased | string optional | |
district | string optional | |
dod | string optional | |
duplicate_check | string optional | |
email | string optional | |
email_notification | string optional | |
emergency_contact_name | string optional | |
emergency_contact_phone | string optional | |
emergency_extn | string optional | |
employment_status | string optional | |
ethnicity | string optional | |
facility_ids | string optional | |
first_name | string optional | |
gender | string optional | |
gender_identity | string optional | |
guarantor | string optional | |
home_phone | string optional | |
id_qualifiers | string optional | |
introduction | string optional | |
is_multiple_birth | string optional | |
language | string optional | |
last_name | string optional | |
linked_patient_id | string optional | |
maiden_name | string optional | |
marital_status | string optional | |
middle_name | string optional | |
mother_first_name | string optional | |
mother_last_name | string optional | |
nick_name | string optional | |
patient_id | string optional | |
payment_end_date | string optional | |
payment_source | string optional | |
payment_start_date | string optional | |
phone | string optional | |
post_box | string optional | |
preferred_communication | string optional | |
primary_phone | string optional | |
race | string optional | |
record_id | string optional | |
rep_first_name | string optional | |
rep_last_name | string optional | |
send_phr_invite | string optional | |
sexual_orientation | string optional | |
smoking_status | string optional | |
source_name | string optional | |
source_value | string optional | |
state | string optional | |
suffix | string optional | |
text_notification | string optional | |
update_specific_details | string optional | |
voice_notification | string optional | |
work_phone | string optional | |
work_phone_extn | string optional | |
zip_code | string optional |
managePatientAllergiesManage patient allergies.
Critical allergy management with safety alerts - document patient allergies, update allergy information, and maintain allergy safety checks. Essential for safe prescribing and clinical decision-making.
Actions:
Safety critical: Always check allergies before prescribing medications. Common allergens: "Penicillin", "Latex", "Shellfish", "Nuts", "Contrast dye" Severity levels: "Mild", "Moderate", "Severe", "Life-threatening"
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
allergen | string optional | |
allergy_date | string optional | |
allergy_status | string optional | |
allergy_type | string optional | |
comments | string optional | |
reactions | string optional | |
record_id | string optional | |
severity | string optional |
managePatientDiagnosesManage patient diagnoses.
Complete diagnosis management for patient problem lists - add new diagnoses, update existing conditions, and maintain accurate medical problem lists. Essential for clinical reasoning and care planning.
Actions:
Code types: "ICD10", "SNOMED" Status options: "Active", "Inactive", "Resolved" Use encounter_id to link diagnosis to specific visit for billing and documentation
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
code_type | string optional | |
comments | string optional | |
diagnosis_code | string optional | |
diagnosis_name | string optional | |
diagnosis_order | string optional | |
diagnosis_status | string optional | |
encounter_id | string optional | |
from_date | string optional | |
record_id | string optional | |
to_date | string optional |
managePatientDrugsManage patient drugs and supplements.
Unified drug management for medications, supplements, and vitamins - prescribe medications, document supplements, manage drug interactions. Includes automatic allergy checking and comprehensive drug safety workflow for optimal patient care.
Actions:
Substance Types:
Safety: Automatically checks allergies before prescribing unless check_allergies=False For medications: Use clear directions like "Take 1 tablet by mouth twice daily with food" For supplements: Provide dosage as integer (e.g., 5) and use strength for units (e.g., "500mg")
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
check_allergies | string optional | |
comments | string optional | |
directions | string optional | |
dosage | string optional | |
dosage_unit | string optional | |
dose_form | string optional | |
drug_name | string optional | |
encounter_id | string optional | |
end_date | string optional | |
frequency | string optional | |
intake_type | string optional | |
quantity | string optional | |
record_id | string optional | |
refills | string optional | |
route | string optional | |
start_date | string optional | |
status | string optional | |
strength | string optional | |
substance_type | string optional | |
weaning_schedule | string optional |
managePatientFilesManage patient files and documents.
Patient file and document management - upload patient photos, manage identity documents, and send PHR (Personal Health Record) invitations. Handles the complete patient file workflow.
Actions:
ID Qualifiers: military_id, state_issued_id, drivers_license_id, passport_id, social_security_number, etc. File paths should be absolute paths to image/PDF files on the system.
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
email | string optional | |
id_file | string optional | |
id_of_patient | string optional | |
id_qualifier | string optional | |
photo_file | string optional | |
rep_first_name | string optional | |
rep_last_name | string optional |
managePatientLabsManage patient laboratory results.
Complete laboratory results management - list lab results, get detailed reports, and add new lab results. Handles the full lab workflow for clinical decision-making.
Actions:
For detailed results: Use group_id for result groups or lab_order_id for specific orders For adding results: Provide structured result_details with tests, parameters, and values Status codes: 0 for pending, 2 for final results
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
group_id | string optional | |
is_ascending | string optional | |
lab_order_id | string optional | |
no_of_records | string optional | |
patient_id | string optional | |
result_details | string optional | |
reviewer_id | string optional | |
sort_by | string optional | |
start_index | string optional | |
status | string optional |
managePatientNotesManage patient notes.
Quick clinical note management for important patient information - add care notes, provider communications, and clinical observations that need to be highlighted across all patient interactions.
Actions:
Use for: Important care instructions, provider alerts, patient preferences, social determinants Formal encounter notes should use manageEncounter() instead
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
notes | string optional | |
record_id | string optional |
managePatientRecallsManage patient recalls.
Patient recall and follow-up management - schedule preventive care reminders, follow-up appointments, and care plan reminders. Ensures patients receive timely care according to clinical guidelines.
Actions:
Common recall types: "Annual Physical", "Mammogram", "Colonoscopy", "Lab Follow-up", "Medication Review" Reminder timing: email_reminder_before/text_reminder_before in days (e.g., 7 for one week) Use getPracticeInfo() to get valid provider_id and facility_id values
When required parameters are missing, ask the user to provide the specific values rather than proceeding with defaults or auto-generated values.
| Parameters | Type | Description |
|---|---|---|
action | string | |
patient_id | string | |
email_reminder_before | string optional | |
encounter_id | string optional | |
facility_id | string optional | |
notes | string optional | |
provider_id | string optional | |
recall_date | string optional | |
recall_period | string optional | |
recall_time | string optional | |
recall_timeunit | string optional | |
recall_type | string optional | |
record_id | string optional | |
send_email_reminder | string optional | |
send_text_reminder | string optional | |
text_reminder_before | string optional |
managePatientVitalsManage patient vitals and vital signs.
Complete patient vital signs management - record vitals during encounters, review vital trends, update incorrect readings, and track patient health metrics over time. Essential for clinical monitoring.
Actions:
Vitals Format:
[...]