Akute Health MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read Akute Health patients, appointments, tasks, notes, medications, allergies and observations.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 311 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Akute Health MCP by usefulapi": {
"url": "https://akute-health.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
akutehealth_search_patientsread-onlySearch patients by name, email, phone (with phone_type), date of birth or external id, optionally narrowed by sex and status. At least one identifying filter is required (no bulk listing); pages are capped at 25 and paging stops at offset 500. Returns demographics, address, status, provider and membership billing state. Government and insurance identifiers are never returned. GET /patients.
Parameters:
sex— string — For example female or male.email— stringlimit— integer — Records per page, 1-25 (default 25).phone— string — Primary phone number, digits only. Needs phone_type.offset— integer — Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.status— string — Patient status, for example active.last_name— stringfirst_name— stringphone_type— string — Type of the phone number: mobile, home or work. Required with phone (Akute ignores the number without it).external_id— string — Your own id for the patient.date_of_birth— string — A date, yyyy-mm-dd.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_patientread-onlyOne patient by id: demographics, address, status, provider, custom properties and membership billing state. GET /patients/{id}.
Parameters:
patient_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_appointmentsread-onlyAppointments by patient and/or date range, practitioner and status. Give a patient_id, or both start_range and end_range (at most 31 days apart). At most 100 are returned; narrow the dates if truncated. Room links are not returned. GET /appointments.
Parameters:
status— stringend_range— string — Latest start: a date (yyyy-mm-dd) or ISO date-time.patient_id— stringstart_range— string — Earliest start: a date (yyyy-mm-dd) or ISO date-time.practitioner_user_id— string — Practitioner (user) id from akutehealth_list_practitioners.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_appointmentread-onlyOne appointment by id: times, status, patient, practitioner and appointment type. GET /appointments/{id}.
Parameters:
appointment_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_appointment_typesread-onlyThe practice's appointment types (beta in Akute): name, duration, video flag, who can book, practitioners. GET /appointment_types.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_availabilityread-onlyOpen appointment slots of one practitioner between two date-times. GET /availability.
Parameters:
user_id(required) — string — Practitioner (user) id from akutehealth_list_practitioners.start_time(required) — string — Window start, ISO 8601 with offset, e.g. 2026-10-12T00:00:00-06:00.end_time(required) — string — Window end, ISO 8601 with offset.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_tasksread-onlyTasks filtered by patient, status, owner, priority, tag, due date or archive state; at least one filter except archived is required. Pages are capped at 25. GET /tasks.
Parameters:
tags— arraylimit— integer — Records per page, 1-25 (default 25).offset— integer — Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.status— array — Statuses, e.g. not-started, in-progress.archived— booleanowner_id— string — User id of the task owner.priority— string — For example p1.patient_id— stringdue_date_end_range— string — A date, yyyy-mm-dd.due_date_start_range— string — A date, yyyy-mm-dd.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_taskread-onlyOne task by id: title, description, due date, priority, status, tags, comments and activity. GET /tasks/{id}.
Parameters:
task_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_notesread-onlyClinical notes (encounters) of ONE patient, newest first as Akute returns them: type, service date, status, authors and section text. A patient_id is required and pages are capped at 10. 'entered-in-error' notes appear only when asked for. GET /notes.
Parameters:
patient_id(required) — stringlimit— integer — Records per page, 1-10 (default 10).offset— integer — Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.status— stringservice_date_start— string — Only notes from this day on.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_noteread-onlyOne clinical note by id with all its sections (subjective, objective, assessment, plan ...). GET /notes/{id}.
Parameters:
note_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_medicationsread-onlyA patient's medications: name, strength, directions, quantity, refills, status, diagnoses and prescriber. Optional date window on the start date. At most 100 are returned. GET /medications.
Parameters:
patient_id(required) — stringend_date— string — A date, yyyy-mm-dd.start_date— string — A date, yyyy-mm-dd.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_allergiesread-onlyA patient's allergies and intolerances: substance, reaction, type, clinical status, onset date. GET /allergies.
Parameters:
patient_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_observationsread-onlyA patient's vital signs (default) or laboratory results: name, value, unit, date, LOINC code. At most 100 are returned. GET /observations.
Parameters:
patient_id(required) — stringcategory— string — Default vital-signs.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_list_practitionersread-onlyThe practice's users: id, name, NPI and roles (Practitioner, Prescriber, Staff, Admin ...). Date of birth, DEA number, email and licences are not returned. GET /users.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
akutehealth_get_practitionerread-onlyOne user by id: name, NPI and roles. GET /users/{id}.
Parameters:
user_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.