# io.usefulapi/healthie (remote · healthie.usefulapi.io)

Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.

- Trust score: 72/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `healthie.usefulapi.io`: 72/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-healthie/healthie.md), [page](https://verifymcp.io/servers/io-usefulapi-healthie/healthie)

## Channel facts

- Endpoint: `https://healthie.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1431 tokens (~89/item across 16 items; 16 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http io-usefulapi-healthie https://healthie.usefulapi.io/mcp
```

### Codex

```toml
[mcp_servers.io-usefulapi-healthie]
url = "https://healthie.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-healthie": {
      "type": "remote",
      "url": "https://healthie.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-healthie --url https://healthie.usefulapi.io/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-healthie:
    url: "https://healthie.usefulapi.io/mcp"
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-healthie": {
      "type": "http",
      "url": "https://healthie.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 72, +1)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.17 → unverified
- [security regression] Transport: pass → fail
- [functional regression] Capabilities: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Endpoint reachability: not serving MCP → reachable

### 2026-07-31 (score 71, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 68, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 69, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-07-27 (score 68, +56)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 12)

First indexed and scored.

## MCP tools (16)

### `healthie_current_user` (~43 tokens)

Current user / account

Fetch the authenticated Healthie account (the provider/user that owns the API key). Good first call to verify auth. Read-only. GraphQL: query currentUser.

### `healthie_get_organization` (~37 tokens)

Get organization

Fetch the current organization / practice (name, NPI, contact, user counts). Read-only. GraphQL: query organization.

### `healthie_list_patients` (~112 tokens)

List patients / clients

List patients/clients, optionally filtered by keyword search or active status. Read-only. GraphQL: query users(keywords, offset, page_size, should_paginate, active_status).

Input parameters:

- `active_status` (string): Filter by status: "active" or "archived".
- `keywords` (string): Free-text search over name/email.
- `offset` (integer): Pagination offset. Default 0.
- `page_size` (integer): Results per page (max 100). Default 25.

### `healthie_get_user` (~42 tokens)

Get a user / patient

Fetch a single user (patient or provider) by id. Read-only. GraphQL: query user(id).

Input parameters:

- `id` (string, required): The user id.

### `healthie_list_appointments` (~167 tokens)

List appointments

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

Input parameters:

- `endDate` (string): End date (YYYY-MM-DD) to bound results.
- `filter` (string): Time filter: "future" (default), "past", "ended", "didnt-occur".
- `filter_by_appointment_status` (string): Filter by appointment status label.
- `provider_id` (string): Filter to appointments for this provider id.
- `startDate` (string): Start date (YYYY-MM-DD) to bound results.
- `user_id` (string): Filter to appointments for this patient/client id.

### `healthie_get_appointment` (~38 tokens)

Get an appointment

Fetch a single appointment by id. Read-only. GraphQL: query appointment(id).

Input parameters:

- `id` (string, required): The appointment id.

### `healthie_list_appointment_types` (~89 tokens)

List appointment types

List the practice's appointment types (services), optionally keyword-filtered. Read-only. GraphQL: query appointmentTypes(keywords, offset, page_size, should_paginate).

Input parameters:

- `keywords` (string): Free-text search over appointment type names.
- `offset` (integer): Pagination offset. Default 0.
- `page_size` (integer): Results per page. Default 25.

### `healthie_list_forms` (~105 tokens)

List charting / intake form templates

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

Input parameters:

- `category` (string): Filter by form category.
- `keywords` (string): Free-text search over form names.
- `offset` (integer): Pagination offset. Default 0.
- `page_size` (integer): Results per page. Default 25.

### `healthie_list_form_answer_groups` (~105 tokens)

List completed forms / charting notes

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

Input parameters:

- `custom_module_form_id` (string): Filter to submissions of this form template id.
- `offset` (integer): Pagination offset. Default 0.
- `user_id` (string): Filter to submissions for this patient id.

### `healthie_list_documents` (~109 tokens)

List documents

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

Input parameters:

- `keywords` (string): Free-text search over document names.
- `offset` (integer): Pagination offset. Default 0.
- `page_size` (integer): Results per page. Default 25.
- `viewable_user_id` (string): Patient id whose documents to list.

### `healthie_list_tasks` (~107 tokens)

List tasks

List tasks, optionally scoped to a client or filtered by completion status. Read-only. GraphQL: query tasks(client_id, completed_status, offset, per_page).

Input parameters:

- `client_id` (string): Filter to tasks about this client id.
- `completed_status` (string): Completion filter, e.g. "complete" or "incomplete".
- `offset` (integer): Pagination offset. Default 0.
- `per_page` (integer): Results per page. Default 25.

### `healthie_list_goals` (~79 tokens)

List goals

List goals, optionally scoped to a patient. Read-only. GraphQL: query goals(user_id, offset, per_page).

Input parameters:

- `offset` (integer): Pagination offset. Default 0.
- `per_page` (integer): Results per page. Default 25.
- `user_id` (string): Filter to goals for this patient id.

### `healthie_list_metric_entries` (~116 tokens)

List metric entries

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

Input parameters:

- `category` (string): Entry category, e.g. "MetricEntry", "Weight".
- `client_id` (string): Filter to entries for this client id.
- `offset` (integer): Pagination offset. Default 0.
- `page_size` (integer): Results per page (max 500). Default 25.

### `healthie_list_conversations` (~54 tokens)

List conversations

List messaging conversations, optionally between the current user and a given user. Read-only. GraphQL: query conversations(user_id).

Input parameters:

- `user_id` (string): Get conversations between the current user and this user id.

### `healthie_create_task` (~128 tokens)

Create a task (WRITE — creates a record)

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

Input parameters:

- `content` (string, required): The task text/description.
- `created_by_id` (string): Id of the user creating the task.
- `due_date` (string): Due date (YYYY-MM-DD).
- `priority` (integer): Priority (integer).
- `user_id` (string): The client/user the task is about.

### `healthie_create_note` (~100 tokens)

Create a note / chat entry (WRITE — creates a record)

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

Input parameters:

- `content` (string, required): The note text.
- `org_chat` (boolean): True if created in the organization chat context.
- `user_id` (string): The client/user the note is about.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-healthie/healthie#diagnostics

## Score history

- 2026-08-03: 72
- 2026-08-02: 72
- 2026-08-01: 71
- 2026-07-31: 71
- 2026-07-30: 68
- 2026-07-29: 70
- 2026-07-28: 69
- 2026-07-27: 68
- 2026-07-26: 12

## Links

- Remote endpoint: https://healthie.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-healthie/healthie/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-healthie/healthie/changelog.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-healthie/healthie
