Akute Health MCP by usefulapi
Read Akute Health patients, appointments, tasks, notes, medications, allergies and observations.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin akutehealth_list_appointment_types
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"akute-health": {
"url": "https://akute-health.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://akute-health.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (15)
🟢akutehealth_search_patients(first_name, last_name, email, phone, phone_type, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"email": {
"type": "string",
"minLength": 3,
"maxLength": 254
},
"phone": {
"description": "Primary phone number, digits only. Needs phone_type.",
"type": "string",
"pattern": "^\\d{7,15}$"
},
"phone_type": {
"description": "Type of the phone number: mobile, home or work. Required with phone (Akute ignores the number without it).",
"type": "string",
"enum": [
"mobile",
"home",
"work"
]
},
"date_of_birth": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"sex": {
"description": "For example female or male.",
"type": "string",
"pattern": "^[A-Za-z-]{1,20}$"
},
"status": {
"description": "Patient status, for example active.",
"type": "string",
"pattern": "^[A-Za-z_-]{1,30}$"
},
"external_id": {
"description": "Your own id for the patient.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"limit": {
"description": "Records per page, 1-25 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 25
},
"offset": {
"description": "Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.",
"type": "integer",
"minimum": 0,
"maximum": 500
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_patient(patient_id)
One patient by id: demographics, address, status, provider, custom properties and membership billing state. GET /patients/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_appointments(patient_id, practitioner_user_id, start_range, end_range, status)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"practitioner_user_id": {
"description": "Practitioner (user) id from akutehealth_list_practitioners.",
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"start_range": {
"description": "Earliest start: a date (yyyy-mm-dd) or ISO date-time.",
"type": "string"
},
"end_range": {
"description": "Latest start: a date (yyyy-mm-dd) or ISO date-time.",
"type": "string"
},
"status": {
"type": "string",
"enum": [
"booked",
"arrived",
"fulfilled",
"cancelled",
"noshow",
"entered-in-error",
"checked-in"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_appointment(appointment_id)
One appointment by id: times, status, patient, practitioner and appointment type. GET /appointments/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"appointment_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"appointment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_appointment_types
The practice's appointment types (beta in Akute): name, duration, video flag, who can book, practitioners. GET /appointment_types.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_availability(user_id, start_time, end_time)
Open appointment slots of one practitioner between two date-times. GET /availability.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Practitioner (user) id from akutehealth_list_practitioners."
},
"start_time": {
"type": "string",
"description": "Window start, ISO 8601 with offset, e.g. 2026-10-12T00:00:00-06:00."
},
"end_time": {
"type": "string",
"description": "Window end, ISO 8601 with offset."
}
},
"required": [
"user_id",
"start_time",
"end_time"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_tasks(patient_id, status, owner_id, priority, tags, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"status": {
"description": "Statuses, e.g. not-started, in-progress.",
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"owner_id": {
"description": "User id of the task owner.",
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"priority": {
"description": "For example p1.",
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[A-Za-z0-9_-]+$"
},
"tags": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"due_date_start_range": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"due_date_end_range": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"archived": {
"type": "boolean"
},
"limit": {
"description": "Records per page, 1-25 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 25
},
"offset": {
"description": "Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.",
"type": "integer",
"minimum": 0,
"maximum": 500
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_task(task_id)
One task by id: title, description, due date, priority, status, tags, comments and activity. GET /tasks/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_notes(patient_id, status, service_date_start, limit, offset)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"status": {
"type": "string",
"enum": [
"preliminary",
"final",
"amended",
"entered-in-error"
]
},
"service_date_start": {
"description": "Only notes from this day on.",
"type": "string"
},
"limit": {
"description": "Records per page, 1-10 (default 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"offset": {
"description": "Number of records to skip, 0-500 (default 0). Pass the previous reply's next_offset. Narrow the filters instead of paging deeper.",
"type": "integer",
"minimum": 0,
"maximum": 500
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_note(note_id)
One clinical note by id with all its sections (subjective, objective, assessment, plan ...). GET /notes/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"note_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"note_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_medications(patient_id, start_date, end_date)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_allergies(patient_id)
A patient's allergies and intolerances: substance, reaction, type, clinical status, onset date. GET /allergies.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_observations(patient_id, category)
A patient's vital signs (default) or laboratory results: name, value, unit, date, LOINC code. At most 100 are returned. GET /observations.
Eingabe-Schema
{
"type": "object",
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
},
"category": {
"description": "Default vital-signs.",
"type": "string",
"enum": [
"vital-signs",
"laboratory"
]
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_list_practitioners
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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢akutehealth_get_practitioner(user_id)
One user by id: name, NPI and roles. GET /users/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis