Akute Health MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Akute Health patients, appointments, tasks, notes, medications, allergies and observations.
15 tools: 1 change things and 14 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads14Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http akute-health https://akute-health.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "akutehealth_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "akutehealth_get_availability" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Changes things 1Claude Code: ask
akutehealth_get_availabilityOpen appointment slots of one practitioner between two date-times.1 finding
Why it is in this group
- The name "akutehealth_get_availability" says "get": a word for reading.
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "akutehealth_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "akutehealth_get_availability" says "get": a word for reading.
Description, as the server wrote it Open appointment slots of one practitioner between two date-times. GET /availability.
Annotations the server declares
- title: Get practitioner availability
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 14Claude Code: allow
akutehealth_get_appointmentOne appointment by id: times, status, patient, practitioner and appointment type.No findings
Why it is in this group
- The name "akutehealth_get_appointment" says "get": a word for reading.
Description, as the server wrote it One appointment by id: times, status, patient, practitioner and appointment type. GET /appointments/{id}.
Annotations the server declares
- title: Get appointment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_get_noteOne clinical note by id with all its sections (subjective, objective, assessment, plan ...).No findings
Why it is in this group
- The name "akutehealth_get_note" says "get": a word for reading.
Description, as the server wrote it One clinical note by id with all its sections (subjective, objective, assessment, plan ...). GET /notes/{id}.
Annotations the server declares
- title: Get clinical note
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_get_patientOne patient by id: demographics, address, status, provider, custom properties and membership billing state.No findings
Why it is in this group
- The name "akutehealth_get_patient" says "get": a word for reading.
Description, as the server wrote it One patient by id: demographics, address, status, provider, custom properties and membership billing state. GET /patients/{id}.
Annotations the server declares
- title: Get patient
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_get_practitionerOne user by id: name, NPI and roles.No findings
Why it is in this group
- The name "akutehealth_get_practitioner" says "get": a word for reading.
Description, as the server wrote it One user by id: name, NPI and roles. GET /users/{id}.
Annotations the server declares
- title: Get practitioner
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_get_taskOne task by id: title, description, due date, priority, status, tags, comments and activity.No findings
Why it is in this group
- The name "akutehealth_get_task" says "get": a word for reading.
Description, as the server wrote it One task by id: title, description, due date, priority, status, tags, comments and activity. GET /tasks/{id}.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_allergiesA patient's allergies and intolerances: substance, reaction, type, clinical status, onset date.No findings
Why it is in this group
- The name "akutehealth_list_allergies" says "list": a word for reading.
Description, as the server wrote it A patient's allergies and intolerances: substance, reaction, type, clinical status, onset date. GET /allergies.
Annotations the server declares
- title: List patient allergies
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_appointment_typesThe practice's appointment types (beta in Akute): name, duration, video flag, who can book, practitioners.No findings
Why it is in this group
- The name "akutehealth_list_appointment_types" says "list": a word for reading.
Description, as the server wrote it The practice's appointment types (beta in Akute): name, duration, video flag, who can book, practitioners. GET /appointment_types.
Annotations the server declares
- title: List appointment types
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_appointmentsAppointments by patient and/or date range, practitioner and status.No findings
Why it is in this group
- The name "akutehealth_list_appointments" says "list": a word for reading.
Description, as the server wrote it Appointments 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.
Annotations the server declares
- title: List appointments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_medicationsA patient's medications: name, strength, directions, quantity, refills, status, diagnoses and prescriber.No findings
Why it is in this group
- The name "akutehealth_list_medications" says "list": a word for reading.
Description, as the server wrote it A 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.
Annotations the server declares
- title: List patient medications
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_notesClinical notes (encounters) of ONE patient, newest first as Akute returns them: type, service date, status, authors and section text.No findings
Why it is in this group
- The name "akutehealth_list_notes" says "list": a word for reading.
Description, as the server wrote it Clinical 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.
Annotations the server declares
- title: List clinical notes
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_observationsA patient's vital signs (default) or laboratory results: name, value, unit, date, LOINC code.No findings
Why it is in this group
- The name "akutehealth_list_observations" says "list": a word for reading.
Description, as the server wrote it A patient's vital signs (default) or laboratory results: name, value, unit, date, LOINC code. At most 100 are returned. GET /observations.
Annotations the server declares
- title: List patient observations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_practitionersThe practice's users: id, name, NPI and roles (Practitioner, Prescriber, Staff, Admin ...).No findings
Why it is in this group
- The name "akutehealth_list_practitioners" says "list": a word for reading.
Description, as the server wrote it The 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.
Annotations the server declares
- title: List practitioners
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_list_tasksTasks filtered by patient, status, owner, priority, tag, due date or archive state; at least one filter except archived is required.No findings
Why it is in this group
- The name "akutehealth_list_tasks" says "list": a word for reading.
Description, as the server wrote it Tasks 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.
Annotations the server declares
- title: List tasks
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
akutehealth_search_patientsSearch patients by name, email, phone (with phone_type), date of birth or external id, optionally narrowed by sex and status.No findings
Why it is in this group
- The name "akutehealth_search_patients" says "search": a word for reading.
Description, as the server wrote it Search 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.
Annotations the server declares
- title: Search patients
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http akute-health https://akute-health.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__akute-health__akutehealth_search_patients",
"mcp__akute-health__akutehealth_get_patient",
"mcp__akute-health__akutehealth_list_appointments",
"mcp__akute-health__akutehealth_get_appointment",
"mcp__akute-health__akutehealth_list_appointment_types",
"mcp__akute-health__akutehealth_list_tasks",
"mcp__akute-health__akutehealth_get_task",
"mcp__akute-health__akutehealth_list_notes",
"mcp__akute-health__akutehealth_get_note",
"mcp__akute-health__akutehealth_list_medications",
"mcp__akute-health__akutehealth_list_allergies",
"mcp__akute-health__akutehealth_list_observations",
"mcp__akute-health__akutehealth_list_practitioners",
"mcp__akute-health__akutehealth_get_practitioner"
],
"ask": [
"mcp__akute-health__akutehealth_get_availability"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as akute-health. Review it before you use it.