Manage medical appointments: find doctors by specialty or name, check available time slots, book or cancel appointments (with explicit confirmation), list appointments with filters, review patient history, triage symptoms to recommend the right specialist, and run guided end-to-end scheduling workflows. Use when asked to find a doctor, book an appointment, cancel an appointment, check availability, review patient records, triage symptoms, or get a specialist recommendation.
Provides medical appointment scheduling capabilities by querying the REST service directly. Mirrors the functionality of the medical-appointments MCP server.
Service base URL:
http://localhost:3000— override with theSERVICE_URLenvironment variable.
See references/api.md for full endpoint details.
| Workflow | Description |
|---|---|
| Find Doctors | Search by specialty or name |
| Check Available Slots | Get open time slots for a doctor on a specific date |
| Book Appointment | Confirm details, then create an appointment |
| Cancel Appointment | Confirm intent, then cancel an existing appointment |
| List Appointments | Filter by patient, doctor, status, or date |
| Recommend Specialist | Match patient symptoms to the right specialty |
| Schedule Appointment | End-to-end guided booking workflow |
| Patient History | Review a patient's full visit record with summary |
| Triage Symptoms | Structured symptom analysis and specialist routing |
GET /api/specialties to resolve the name to an ID (case-insensitive match).
GET /api/doctors?specialtyId={id}&name={query} (both params optional).GET /api/doctors/{doctorId}/slots?date={YYYY-MM-DD}.available: true.HH:MM – HH:MM. State total available vs total slots.Required inputs: patient ID, doctor ID, appointment date/time (ISO 8601), reason.
GET /api/patients/{patientId} — patient nameGET /api/doctors/{doctorId} — doctor name, specialty, slot durationPOST /api/appointments with body {"patientId","doctorId","dateTime","reason"}.Note: The MCP server uses native elicitation (a UI confirmation dialog). This skill asks for confirmation through conversation. See Limitations in the README.
Required input: appointment ID.
GET /api/appointments/{appointmentId} — retrieve current details.PATCH /api/appointments/{appointmentId}/cancel.Note: Same elicitation limitation as Book Appointment. See Limitations in the README.
All filters are optional.
patientId, doctorId, status (scheduled | cancelled | completed), date (YYYY-MM-DD).GET /api/appointments?{filters}.{id} | {date} {time} | status: {status} | {reason}.GET /api/specialties — load all specialties with descriptions.GET /api/doctors?specialtyId={id} — list matching doctors.Note: The MCP server calls a sub-LLM (sampling) for this step. The skill uses the agent's own reasoning directly, producing an equivalent result. See Limitations in the README.
End-to-end booking for a requested specialty and preferred date.
GET /api/specialties — load all specialties.GET /api/doctors?specialtyId={id} — list doctors in the specialty with bios and available days.GET /api/doctors/{id}/slots?date={preferredDate} — check open slots on the preferred date.pat-1 through pat-5; or GET /api/patients to list them).GET /api/patients/{patientId} — retrieve patient info.GET /api/appointments?patientId={patientId} — get the full appointment list.GET /api/specialties — load all specialties with descriptions.