← WebMCP Directory

Tool tree

patiently-webmcp.vercel.app

Health & EducationTools verified
Website
An outpatient clinic that exposes its queue, charts and prescriptions as 20 WebMCP tools. A doctor runs their floor by talking; a patient does intake in their own language. Every action that touches…
Explore capabilities

    page: Home

    list_demo_surfacesAnswer

    List the demo surfaces of this clinic that can be opened, and what each one lets an agent do. Call this first to see what is available.

    View tool JSON
    {
      "name": "list_demo_surfaces",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the demo surfaces of this clinic that can be opened, and what each one lets an agent do. Call this first to see what is available.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    open_demoAction

    Navigate this browser tab to one of the clinic's demo surfaces, so its tools become available. Use 'clinician' for the doctor's dashboard or 'patient' for a patient's waiting-room view.

    View tool JSON
    {
      "name": "open_demo",
      "kind": "act",
      "impl": "imperative",
      "description": "Navigate this browser tab to one of the clinic's demo surfaces, so its tools become available. Use 'clinician' for the doctor's dashboard or 'patient' for a patient's waiting-room view.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "surface": {
            "type": "string",
            "enum": [
              "clinician",
              "patient"
            ],
            "description": "'clinician' = the dashboard, 'patient' = a waiting-room view"
          },
          "ticket": {
            "type": "string",
            "description": "For the patient surface only: which ticket to open, e.g. \"A-001\". Defaults to the first patient waiting."
          }
        },
        "required": [
          "surface"
        ]
      },
      "page": "/"
    }

    page: Dashboard

    list_patient_queueAnswer

    List patients currently waiting or in consultation, with queue position, expected wait, and any triage red flags. Use this first to see the clinic floor. Covers all departments unless one is named.

    View tool JSON
    {
      "name": "list_patient_queue",
      "kind": "answer",
      "impl": "imperative",
      "description": "List patients currently waiting or in consultation, with queue position, expected wait, and any triage red flags. Use this first to see the clinic floor. Covers all departments unless one is named.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "poli": {
            "type": "string",
            "enum": [
              "umum",
              "anak",
              "kia",
              "gigi",
              "lansia"
            ],
            "description": "Clinic department. umum=General, anak=Pediatrics, kia=OB-GYN, gigi=Dental, lansia=Geriatrics."
          },
          "only_flagged": {
            "type": "boolean",
            "description": "Return only patients with an active triage red flag."
          }
        }
      },
      "page": "/dashboard"
    }
    get_previsit_chartAnswer

    Read the pre-visit chart the intake agents prepared for one patient: chief complaint, history of present illness, what changed since their last visit, suggested questions, and differentials to consider. Read this before seeing the patient.

    View tool JSON
    {
      "name": "get_previsit_chart",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the pre-visit chart the intake agents prepared for one patient: chief complaint, history of present illness, what changed since their last visit, suggested questions, and differentials to consider. Read this before seeing the patient.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    get_clinic_floor_statsAnswer

    Current clinic throughput: how many are waiting, average wait and consultation time, red flags raised today, intakes completed, notes and reminders generated.

    View tool JSON
    {
      "name": "get_clinic_floor_stats",
      "kind": "answer",
      "impl": "imperative",
      "description": "Current clinic throughput: how many are waiting, average wait and consultation time, red flags raised today, intakes completed, notes and reminders generated.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/dashboard"
    }
    get_vitalsAnswer

    Read the vital signs recorded for a patient this visit, including any values flagged as critical.

    View tool JSON
    {
      "name": "get_vitals",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the vital signs recorded for a patient this visit, including any values flagged as critical.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    check_drug_interactionsAnswer

    Cross-check every drug in play for this patient — current prescription drafts, home medications, and what was prescribed at the last visit — and report interactions by severity.

    View tool JSON
    {
      "name": "check_drug_interactions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Cross-check every drug in play for this patient — current prescription drafts, home medications, and what was prescribed at the last visit — and report interactions by severity.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    draft_soap_noteAction

    Draft a SOAP-format consultation note for a patient from their pre-visit chart and vitals. Produces an UNSIGNED draft in the clinician's note editor for review — it does not enter the record. Requires the pre-visit chart to be written first; it will tell you if it is not ready yet.

    View tool JSON
    {
      "name": "draft_soap_note",
      "kind": "act",
      "impl": "imperative",
      "description": "Draft a SOAP-format consultation note for a patient from their pre-visit chart and vitals. Produces an UNSIGNED draft in the clinician's note editor for review — it does not enter the record. Requires the pre-visit chart to be written first; it will tell you if it is not ready yet.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    draft_prescriptionsAction

    Draft candidate prescriptions for a patient, each with a rationale, then automatically screen them for drug interactions. Drafts are UNSIGNED — a clinician must approve each one before it becomes a prescription.

    View tool JSON
    {
      "name": "draft_prescriptions",
      "kind": "act",
      "impl": "imperative",
      "description": "Draft candidate prescriptions for a patient, each with a rationale, then automatically screen them for drug interactions. Drafts are UNSIGNED — a clinician must approve each one before it becomes a prescription.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    record_vitalsAction

    Record vital signs for a patient, e.g. values the clinician just read aloud. Critical values are flagged automatically. Requires the clinician to confirm on screen before anything is written.

    View tool JSON
    {
      "name": "record_vitals",
      "kind": "act",
      "impl": "imperative",
      "description": "Record vital signs for a patient, e.g. values the clinician just read aloud. Critical values are flagged automatically. Requires the clinician to confirm on screen before anything is written.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          },
          "systolic_bp": {
            "type": "number",
            "description": "Systolic BP, mmHg"
          },
          "diastolic_bp": {
            "type": "number",
            "description": "Diastolic BP, mmHg"
          },
          "heart_rate": {
            "type": "number",
            "description": "Heart rate, bpm"
          },
          "respiratory_rate": {
            "type": "number",
            "description": "Respiratory rate, /min"
          },
          "temperature_c": {
            "type": "number",
            "description": "Temperature, °C"
          },
          "spo2": {
            "type": "number",
            "description": "Oxygen saturation, %"
          },
          "weight_kg": {
            "type": "number"
          },
          "height_cm": {
            "type": "number"
          },
          "pain_score": {
            "type": "number",
            "description": "Pain score 0-10"
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }
    sign_prescriptionAction

    Ask the clinician to sign one of the unsigned prescription drafts. This is a prescribing decision: it always requires an explicit click from the clinician, and the agent cannot complete it alone.

    View tool JSON
    {
      "name": "sign_prescription",
      "kind": "act",
      "impl": "imperative",
      "description": "Ask the clinician to sign one of the unsigned prescription drafts. This is a prescribing decision: it always requires an explicit click from the clinician, and the agent cannot complete it alone.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          },
          "drug_name": {
            "type": "string",
            "description": "Which drafted drug to sign, e.g. \"Amoxicillin\"."
          }
        },
        "required": [
          "ticket",
          "drug_name"
        ]
      },
      "page": "/dashboard"
    }
    call_next_patientAction

    Call a patient in from the waiting room. This physically summons them and shows their number on the clinic display, so it always requires clinician confirmation.

    View tool JSON
    {
      "name": "call_next_patient",
      "kind": "act",
      "impl": "imperative",
      "description": "Call a patient in from the waiting room. This physically summons them and shows their number on the clinic display, so it always requires clinician confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number to call. Omit to call whoever is next by priority — red-flagged patients first."
          },
          "poli": {
            "type": "string",
            "enum": [
              "umum",
              "anak",
              "kia",
              "gigi",
              "lansia"
            ],
            "description": "Clinic department. umum=General, anak=Pediatrics, kia=OB-GYN, gigi=Dental, lansia=Geriatrics."
          }
        }
      },
      "page": "/dashboard"
    }
    complete_consultationAction

    Close out the consultation for a patient and release them from the queue. Requires clinician confirmation.

    View tool JSON
    {
      "name": "complete_consultation",
      "kind": "act",
      "impl": "imperative",
      "description": "Close out the consultation for a patient and release them from the queue. Requires clinician confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "string",
            "description": "Ticket number as shown on the board, e.g. \"A-014\". The patient name also works."
          }
        },
        "required": [
          "ticket"
        ]
      },
      "page": "/dashboard"
    }

    page: Receptionist

    issue_queue_ticketAction

    Issue a new queue ticket for a registered patient at reception. Fills this form in for the receptionist; a human still presses Issue ticket to commit it, because this gives a real patient a queue number.

    View tool JSON
    {
      "name": "issue_queue_ticket",
      "kind": "act",
      "impl": "declarative",
      "description": "Issue a new queue ticket for a registered patient at reception. Fills this form in for the receptionist; a human still presses Issue ticket to commit it, because this gives a real patient a queue number.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "patient": {
            "type": "string",
            "description": "Name or patient ID"
          },
          "department": {
            "type": "string",
            "enum": [
              "umum",
              "anak",
              "kia",
              "gigi",
              "lansia"
            ]
          },
          "payer": {
            "type": "string",
            "enum": [
              "bpjs",
              "umum"
            ]
          }
        },
        "required": [
          "patient",
          "department",
          "payer"
        ]
      },
      "page": "/receptionist"
    }