Eka EMR

Healthcare MCP server for Eka.care EMR.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Search Patients: Search for patients within the current workspace using a text prefix. The prefix is matched against patient username, mobile number, or full name. Recommended Usage Use this tool when
  • Get Comprehensive Patient Profile: RECOMMENDED: Get comprehensive patient profile including detailed appointment history with enriched doctor and clinic information. This is the preferred tool for get
  • Add Patient: Creates a new patient profile and returns a unique patient identifier. - If user hasn't provided any of DOB, gender or name, always ASK them before calling this tool. Do not assume anythi

What data it sees

Do you need an account

No: the server works without sign-in

Healthcare MCP server for Eka.care EMR. Connect your AI agent to manage patients, appointments, and doctor/clinic profiles.

Authenticate once with your Eka.care account via OAuth — no API keys needed.

Capabilities:

  • Patient management — search, add, update, view profiles
  • Appointment booking — check availability, book, reschedule, cancel
  • Doctor & clinic profiles — services, availability, comprehensive profiles
Server tool list (17)

Raw names from tools/list. Only developers need these.

search_patientsSearch for patients within the current workspace using a text prefix. The prefix is matched against patient username, mobile number, or full name. Recommended Usage Use this tool when implementing autocomplete, quick search, or typeahead functionality where users need to find patients by partial input. This tool is workspace-scoped and optimized for prefix-based searches. For general patient lookup, use: - list_patients: View all patients with pagination, **Do not use this for search** - get_patient_by_mobile: Find by exact mobile number Trigger Keywords search patient, patient search, find patient, quick patient search Returns dict with success (bool) and data (dict)
get_comprehensive_patient_profileRECOMMENDED: Get comprehensive patient profile including detailed appointment history with enriched doctor and clinic information. This is the preferred tool for getting patient information as it provides complete context including appointment history with doctor names, clinic details, and appointment status. Use this instead of get_patient_details_basic unless you specifically need only profile data. Use when: - "Show patient details" - "Patient medical history" - Need appointments with doctor/clinic names Returns: Complete patient profile with enriched appointment history including doctor and clinic details
add_patientCreates a new patient profile and returns a unique patient identifier. - If user hasn't provided any of DOB, gender or name, always ASK them before calling this tool. Do not assume anything for mandatory fields. Recommended Usage: Use when registering a new patient profile with basic demographic information. Do not use to update existing patients or modify partial profile data. Trigger Keywords: create patient, add patient profile, register new patient, new patient registration, create patient record What to Return: Returns a JSON object with: - success: boolean indicating whether patient creation succeeded - data: an object containing the created patient profile, including the unique patient ID (oid)
list_patientsList all patients with pagination. Returns full patient info including DOB and gender. This returns complete patient details - NO need to call get_comprehensive_patient_profile for each patient just to see DOB/gender. Search patients using search_patients or get_patient_by_mobile instead. Use when the user wants to: - browse patients with their full details - scroll through patient records - view all patients with DOB, gender, name, mobile - refer to themselves without providing an identifier Do not use when patient identifier (oid) is known. Trigger Keywords: list patients, browse patient records, show all patients, view patient list Returns: List with oid (patient_id), fln (full legal name), mobile, dob, gen (gender)
update_patientUpdates an existing patient profile with new or corrected information. Recommended Usage: Use when modifying patient details such as name, date of birth, gender, mobile, email, or other demographic/medical fields. Do not use for creating new patient profiles or fetching existing patient data. Trigger Keywords: update patient, edit patient profile, modify patient details, change patient information, correct patient record Returns: Success message confirming profile update
archive_patientArchives a patient profile. Recommended Usage: Use to mark a patient profile as archived Do not use for permanently deleting patient data or creating/updating profiles. Trigger Keywords: archive patient, delete patient, toggle patient archive status, remove for now Returns: Success message confirming profile removal
get_patient_by_mobileFind patient by exact mobile number. CRITICAL: You MUST ask the user for their mobile number before calling this tool. DO NOT call this tool if you don't have the mobile number. Format: +<country_code><number> - India: +91XXXXXXXXX - US: +1XXXXXXXXXX When to use: - User provides their mobile number - User is trying to book appointment → Ask: "What's your mobile number?" → Use this tool - If mobile number not provided or not found, use list_patients instead DO NOT use when: - No mobile number available Returns: Patient with oid (patient_id)
get_appointment_slotsRetrieve available appointment slots for a doctor. Supports multi-day ranges in a SINGLE call. CRITICAL: Call this tool ONCE for date ranges, NOT multiple times for each day. ISO 8601 format examples: - Single day (Jan 27): start=2026-01-27T00:00:00.000Z, end=2026-01-27T23:59:59.000Z - Multi-day (Jan 29 to Feb 2): start=2026-01-29T00:00:00.000Z, end=2026-02-02T23:59:59.000Z - This week: start=2026-01-27T00:00:00.000Z, end=2026-02-02T23:59:59.000Z When to Use This Tool Use when user wants to check availability before booking. Must be called before attempting to book an appointment. Trigger Keywords available slots, check availability, when can I book, is the doctor free, slots for this week, slots from X to Y date Returns: List of slots with start_time, end_time, and available (boolean).
get_available_datesGet available appointment dates for a doctor at a clinic. Returns dates that have at least one available slot within the specified range. Use this tool to show users which dates have availability before drilling into specific slots. Behavior: - If no start_date: Returns dates starting from tomorrow - If start_date < today: Returns error (past dates not allowed) - Max 10 dates returned (default: 7) Trigger Keywords: available dates, when is doctor free, which days available, appointment dates, doctor availability dates, open dates Returns: List of dates (YYYY-MM-DD) with available slots
book_appointmentSmart appointment booking with automatic availability checking and alternate slot suggestions. This tool now: 1. Automatically checks slot availability before booking 2. Books immediately if the requested slot is available 3. Suggests up to 6 nearest alternative slots if unavailable (before and after requested time) When to Use This Tool Use this tool when the user wants to book an appointment. The tool handles availability checking automatically. Trigger Keywords / Phrases book appointment, schedule visit, confirm booking, book with doctor, schedule at noon / morning / afternoon, fix appointment, make an appointment What to Return - If slot available: Returns booking confirmation with appointment_id - If slot unavailable: Returns alternate slot suggestions (up to 6 nearest slots)
show_appointments_basicRetrieve a list of appointments with basic data containing entity IDs only, without patient, doctor, or clinic details. When to Use This Tool Use this tool only when raw appointment records are required. Use show_appointments_enriched otherwise. This tool is intended for internal workflows, debugging, or follow-up calls where entity details will be resolved separately. Trigger Keywords / Phrases raw appointments, appointment ids, basic appointment list, internal lookup, debug appointments, lightweight appointment data Returns: Basic appointments with entity IDs only If no appointments match the filters, returns an empty appointments array. Timestamps are Unix epoch (UTC-based). IMPORTANT: Always use Python/bash to convert timestamps - never do mental math. Use the below code. python3 -c "import datetime; print(datetime.datetime.fromtimestamp(TIMESTAMP, tz=datetime.timezone(datetime.timedelta(hours=5, minutes=30))).strftime('%I:%M %p IST'))"
complete_appointmentMark an appointment as completed. When to Use This Tool Use this tool when the appointment has concluded and needs to be marked as completed in the system. This tool should be called only after the appointment has taken place. User intent should be explicit, as this action updates the appointment’s final state. Trigger Keywords / Phrases complete appointment, mark as completed, finish appointment, close visit, appointment done, visit completed Returns: Completion confirmation with updated appointment status. If completion fails, returns an error response. This action should not be retried automatically without user confirmation.
cancel_appointmentCancel an appointment. When to Use This Tool Use this tool when the user explicitly wants to cancel an appointment. This action should be performed only after confirming the correct appointment with the user. Because this is a destructive write operation, intent must be clear and unambiguous. Args: appointment_id: Appointment's unique identifier cancel_data: Cancellation details including reason and notes Returns: Cancellation confirmation with updated appointment status
get_business_entitiesRetrieve all doctors and clinics associated with the business workspace. When to Use This Tool Use this tool when the user references a doctor or clinic by name and IDs are required for downstream actions. This is typically the first step before booking appointments or checking availability. Trigger Keywords / Phrases list doctors, available doctors, clinics list, book with doctor, find doctor id, find clinic id, doctor names What to Return Returns a structured list of doctors and clinics with their identifiers and associations.
get_doctor_profile_basicRetrieve basic profile information for a doctor without clinic or appointment context. When to Use This Tool Use this tool when only standalone doctor details are needed, such as specialization or background. For richer context including clinics and appointments, use get_comprehensive_doctor_profile instead. Trigger Keywords / Phrases doctor profile, doctor details, doctor information, doctor specialization What to Return Returns basic doctor profile data without clinic associations or appointment history.
get_clinic_details_basicRetrieve basic profile information for a clinic without doctor or appointment context. When to Use This Tool Use this tool when only clinic-level details such as address or facilities are required. For full clinic context including doctors and appointments, use get_comprehensive_clinic_profile. Trigger Keywords / Phrases clinic details, clinic information, clinic address, clinic profile What to Return Returns basic clinic profile data without doctor associations or appointment history.
doctor_availability_elicitationCheck doctor availability for appointment booking. Behavior: - If preferred_date AND preferred_slot_time are provided: checks if that specific slot is available and returns a direct response (non-elicitation). - If date/time are NOT provided: returns elicitation response with available options for the user to choose from. Flow: 1. Fetch doctor details 2. Validate/resolve hospital (if provided & matches, use it; else return all doctor's hospitals) 3. Fetch available dates (check if preferred_date is available) 4. Fetch available slots (check if preferred_slot_time is available) Trigger Keywords: check availability, doctor available, when can I book, appointment slots, available times for doctor Returns: - If date+time provided: Direct availability check result - If date+time missing: UI component format (doctor_card) with availability and callbacks for elicitation