Healthie MCP by usefulapi
Server Details
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
- Status
- Healthy
- Uptime
- 80.1% over 54 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 16 tools
Each tool targets a distinct resource and action—create_note vs create_task, get_user vs list_patients, list_forms vs list_form_answer_groups—so there is little chance of selecting the wrong tool. Even the many list_* tools are clearly separated by domain.
Tool names consistently follow a healthie_<verb>_<noun> pattern using snake_case, with verbs limited to create, get, list, and current. The naming is uniform and predictable across all 16 tools.
At 16 tools, the server is slightly above the ideal 3–15 range, but the breadth of Healthie's domain—appointments, documents, forms, goals, metrics, messaging, patients, and tasks—justifies the count. It feels dense but not bloated.
The tool set is strongly read-oriented: most resources support list/get operations, but only notes and tasks can be created, with no update or delete lifecycle coverage. This leaves notable gaps for workflows like completing a task, editing a note, or creating an appointment.
Available Tools
16 toolshealthie_create_noteCreate a note / chat entry (WRITE — creates a record)DestructiveInspect
Creates a note/chat entry in Healthie (additive). Requires content (the note text); optionally attach it to a client (user_id) or mark it as an org chat. GraphQL: mutation createNote(input: createNoteInput).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The note text. | |
| user_id | No | The client/user the note is about. | |
| org_chat | No | True if created in the organization chat context. |
healthie_create_taskCreate a task (WRITE — creates a record)DestructiveInspect
Creates a task in Healthie (additive). Requires content (the task text); optionally attach it to a client (user_id), set a due_date, priority, or created_by_id. GraphQL: mutation createTask(input: createTaskInput).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The task text/description. | |
| user_id | No | The client/user the task is about. | |
| due_date | No | Due date (YYYY-MM-DD). | |
| priority | No | Priority (integer). | |
| created_by_id | No | Id of the user creating the task. |
healthie_current_userCurrent user / accountRead-onlyInspect
Fetch the authenticated Healthie account (the provider/user that owns the API key). Good first call to verify auth. Read-only. GraphQL: query currentUser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
healthie_get_appointmentGet an appointmentRead-onlyInspect
Fetch a single appointment by id. Read-only. GraphQL: query appointment(id).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The appointment id. |
healthie_get_organizationGet organizationRead-onlyInspect
Fetch the current organization / practice (name, NPI, contact, user counts). Read-only. GraphQL: query organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
healthie_get_userGet a user / patientRead-onlyInspect
Fetch a single user (patient or provider) by id. Read-only. GraphQL: query user(id).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The user id. |
healthie_list_appointmentsList appointmentsRead-onlyInspect
List appointments, optionally filtered by patient, provider, date range, time-filter or status. Read-only. GraphQL: query appointments(user_id, provider_id, filter, startDate, endDate, filter_by_appointment_status).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Time filter: "future" (default), "past", "ended", "didnt-occur". | |
| endDate | No | End date (YYYY-MM-DD) to bound results. | |
| user_id | No | Filter to appointments for this patient/client id. | |
| startDate | No | Start date (YYYY-MM-DD) to bound results. | |
| provider_id | No | Filter to appointments for this provider id. | |
| filter_by_appointment_status | No | Filter by appointment status label. |
healthie_list_appointment_typesList appointment typesRead-onlyInspect
List the practice's appointment types (services), optionally keyword-filtered. Read-only. GraphQL: query appointmentTypes(keywords, offset, page_size, should_paginate).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| keywords | No | Free-text search over appointment type names. | |
| page_size | No | Results per page. Default 25. |
healthie_list_conversationsList conversationsRead-onlyInspect
List messaging conversations, optionally between the current user and a given user. Read-only. GraphQL: query conversations(user_id).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | Get conversations between the current user and this user id. |
healthie_list_documentsList documentsRead-onlyInspect
List documents, optionally scoped to a patient (viewable_user_id) or by keyword. Read-only. GraphQL: query documents(viewable_user_id, keywords, offset, page_size, should_paginate).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| keywords | No | Free-text search over document names. | |
| page_size | No | Results per page. Default 25. | |
| viewable_user_id | No | Patient id whose documents to list. |
healthie_list_form_answer_groupsList completed forms / charting notesRead-onlyInspect
List completed form submissions (charting notes / filled intake forms), optionally scoped to a patient or a form template. Read-only. GraphQL: query formAnswerGroups(user_id, custom_module_form_id, should_paginate, offset).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| user_id | No | Filter to submissions for this patient id. | |
| custom_module_form_id | No | Filter to submissions of this form template id. |
healthie_list_formsList charting / intake form templatesRead-onlyInspect
List custom module form templates (charting notes, intake forms), optionally by keyword or category. Read-only. GraphQL: query customModuleForms(keywords, category, offset, page_size, should_paginate).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| category | No | Filter by form category. | |
| keywords | No | Free-text search over form names. | |
| page_size | No | Results per page. Default 25. |
healthie_list_goalsList goalsRead-onlyInspect
List goals, optionally scoped to a patient. Read-only. GraphQL: query goals(user_id, offset, per_page).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| user_id | No | Filter to goals for this patient id. | |
| per_page | No | Results per page. Default 25. |
healthie_list_metric_entriesList metric entriesRead-onlyInspect
List tracked metric entries (weight, blood pressure, etc.), optionally scoped to a client or a category. Read-only. GraphQL: query entries(client_id, category, offset, page_size).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| category | No | Entry category, e.g. "MetricEntry", "Weight". | |
| client_id | No | Filter to entries for this client id. | |
| page_size | No | Results per page (max 500). Default 25. |
healthie_list_patientsList patients / clientsRead-onlyInspect
List patients/clients, optionally filtered by keyword search or active status. Read-only. GraphQL: query users(keywords, offset, page_size, should_paginate, active_status).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| keywords | No | Free-text search over name/email. | |
| page_size | No | Results per page (max 100). Default 25. | |
| active_status | No | Filter by status: "active" or "archived". |
healthie_list_tasksList tasksRead-onlyInspect
List tasks, optionally scoped to a client or filtered by completion status. Read-only. GraphQL: query tasks(client_id, completed_status, offset, per_page).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Pagination offset. Default 0. | |
| per_page | No | Results per page. Default 25. | |
| client_id | No | Filter to tasks about this client id. | |
| completed_status | No | Completion filter, e.g. "complete" or "incomplete". |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
- Changed
healthie_create_note1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_create_task1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_current_user1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_get_appointment1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_get_organization1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_get_user1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_appointment_types1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_appointments1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_conversations1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_documents1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_form_answer_groups1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_forms1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_goals1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_metric_entries1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_patients1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
healthie_list_tasks1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
16 tool updates
- First observed
healthie_create_note - First observed
healthie_create_task - First observed
healthie_current_user - First observed
healthie_get_appointment - First observed
healthie_get_organization - First observed
healthie_get_user - First observed
healthie_list_appointment_types - First observed
healthie_list_appointments - First observed
healthie_list_conversations - First observed
healthie_list_documents - First observed
healthie_list_form_answer_groups - First observed
healthie_list_forms - First observed
healthie_list_goals - First observed
healthie_list_metric_entries - First observed
healthie_list_patients - First observed
healthie_list_tasks
Related MCP Connectors
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
MCP server for lacita - appointment management software
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnterprise-grade MCP Server for FHIR-based EMRs. Enables AI agents to read, search, create, and update any FHIR R4 resource across major EHR systems like EPIC, Cerner, and OpenEMR.370 npm67MIT- AlicenseNot gradedqualityAmaintenanceOfficial Medplum MCP server for healthcare automation2,813 npm2,735Apache 2.0
- FlicenseBqualityFmaintenanceAn MCP server that wraps the eClinicalWorks / healow FHIR R4 API so an MCP client (e.g. Claude Desktop) can read patient clinical data from one or more practices.201-
- AlicenseNot gradedqualityDmaintenanceSelf-hosted MCP server that aggregates personal health data from Google Health, Oura, and Withings into a single, provider-attributed interface with configurable source of truth preferences.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.