Skip to content

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.

Changes · 1

15 tools: 1 change things and 14 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "akutehealth_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "akutehealth_get_availability" says "get": a word for reading.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "akutehealth_get_availability" says "get": a word for reading.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.