Semble MCP by usefulapi
REMOTE · SEMBLE.USEFULAPI.IO
Read Semble patients, bookings, invoices and products; create patients and tasks, label patients.
Available components
Last scanned (5 hours ago)
Scores higher than 4% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Health and Science
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. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Nov 26 −50
- Endpoint reachability: reachable → not serving MCP ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: pass → unverified ▼ security
- Stability: 0.20 → unverified ▼ security
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 31 Oct 26 +4
- Authorization: partial → pass ▲ security
- MCP protocol: fail → pass ▲ functional
- New prompt “check_the_price_list” functional
- New prompt “find_referrers_and_payors” functional
- New prompt “keep_admin_tasks_moving” functional
- New prompt “look_up_staff_and_clinicians” functional
- New prompt “review_the_practice_setup” functional
- MCP protocol version: 2025-06-18 → 2025-11-25 functional
- Server version: 1.7.0 → 1.9.0 functional
- Server version: 1.6.0 → 1.7.0 functional
- Server version: 1.5.2 → 1.6.0 functional
- 30 Oct 26 0
- Server version: 1.5.1 → 1.5.2 functional
- Server version: 1.5.0 → 1.5.1 functional
- 29 Oct 26 0
- Server version: 1.4.0 → 1.5.0 functional
- Server version: 1.3.0 → 1.4.0 functional
- 28 Oct 26 +1
- Server version: 1.1.0 → 1.3.0 functional
- 27 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- Server version: 1.0.0 → 1.1.0 functional
- 26 Oct 26 63
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://semble.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of semble.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690 | 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|---|
| HTTP status | 302 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://semble.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/semble/ |
| http (plaintext) | http://semble.usefulapi.io/mcp | Inconclusive | 302 | http://semble.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
semble_add_patient_label Add a label to a patient (WRITE) ~58
Puts an existing label on a patient (label ids from semble_list_labels). Adds only; nothing is removed.
| Name | Type | Req | Description |
|---|---|---|---|
| label_id | string | yes | Label id (from semble_list_labels). |
| patient_id | string | yes | Patient id. |
No output schema declared.
No examples provided.
semble_create_patient Create a patient (WRITE) ~167
Creates a new patient record (personal data) from the details you give. It does not check for an existing patient: search with semble_list_patients first to avoid a duplicate.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Street address. |
| city | string | – | City. |
| comments | string | – | Notes. |
| country | string | – | Country. |
| dob | string | – | Date of birth, YYYY-MM-DD. |
| string | – | Email address. | |
| first_name | string | yes | First name. |
| last_name | string | yes | Last name. |
| phone_number | string | – | Phone number. |
| phone_type | string | – | Phone type, for example Mobile. |
| postcode | string | – | Postcode. |
| sex | string | – | Sex as the practice records it. |
No output schema declared.
No examples provided.
semble_create_task Create a task (WRITE) ~131
Creates a task in Semble assigned to a staff user (get ids from semble_list_users), optionally about a patient, with a due date, priority and type. Creates a new record each time it is called.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | yes | User id the task is assigned to. |
| comments | string | – | Extra notes. |
| due_date | string | – | Due date, YYYY-MM-DD. |
| patient_id | string | – | Patient the task is about. |
| priority | string | – | Priority. |
| subject | string | yes | The task text. |
| task_type | string | – | Task type. |
No output schema declared.
No examples provided.
semble_get_booking Get a booking ~37
One booking by id, with patient, doctor, location, appointment type, status and journey.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Booking id. |
No output schema declared.
No examples provided.
semble_get_invoice Get an invoice ~34
One invoice by id, with its line items, totals and what is outstanding.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Invoice id. |
No output schema declared.
No examples provided.
semble_get_patient Get a patient ~60
One patient by id (personal data): demographics, phones, address, numbers, custom attributes, labels, comments and status. Appointments, invoices and tasks have their own tools.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Patient id (from semble_list_patients). |
No output schema declared.
No examples provided.
semble_get_practice Get the practice ~39
The practice the API token belongs to: name, timezone, locations, appointment types and medical specialties. A good first call to check the connection.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
semble_get_product Get a product or service ~28
One product, service or appointment type by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Product id. |
No output schema declared.
No examples provided.
semble_get_user Get a user (staff) ~24
One staff user by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | User id. |
No output schema declared.
No examples provided.
semble_list_bookings List bookings ~154
Bookings (appointments) of the whole practice. With a date range, a booking is included if it starts or ends inside it. Returns patient, doctor, location, appointment type, status and journey (arrived, consultation, departed, dna).
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | – | Last day, YYYY-MM-DD (until 23:59 UTC, inclusive). |
| include_deleted | boolean | – | Also return deleted bookings (default false). |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| start | string | – | First day, YYYY-MM-DD (from 00:00 UTC). |
No output schema declared.
No examples provided.
semble_list_contacts List contacts ~108
Contacts of the practice (referring doctors, insurers and other payors). `search` matches name, email, phone, specialty and numbers.
| Name | Type | Req | Description |
|---|---|---|---|
| is_doctor | boolean | – | Only doctors. |
| is_payor | boolean | – | Only payors. |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| search | string | – | Free-text search. |
No output schema declared.
No examples provided.
semble_list_invoices List invoices ~140
Invoices whose invoice date is inside a date range, with patient, totals and what is outstanding. Filter by status (active or cancelled) and paid_or_outstanding. Monetary amounts are in the practice currency.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | – | Last invoice date, YYYY-MM-DD. |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| paid_or_outstanding | string | – | Filter by payment state. |
| start | string | – | First invoice date, YYYY-MM-DD. |
| status | string | – | Invoice status. |
No output schema declared.
No examples provided.
semble_list_labels List patient labels ~79
The labels that can be put on patients (id, title, colour). Use the id with semble_add_patient_label.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| search | string | – | Label title. |
No output schema declared.
No examples provided.
semble_list_patient_bookings List a patient's bookings ~176
The bookings (appointments) of one patient between two dates, with doctor, location, appointment type and status. Both dates are required (YYYY-MM-DD).
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | Last day, YYYY-MM-DD (until 23:59 UTC, inclusive). |
| include_deleted | boolean | – | Also return cancelled (deleted) bookings next to the active ones (default false). |
| only_cancelled | boolean | – | Return ONLY cancelled (deleted) bookings. Takes precedence over include_deleted. |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| patient_id | string | yes | Patient id. |
| start | string | yes | First day, YYYY-MM-DD (from 00:00 UTC). |
No output schema declared.
No examples provided.
semble_list_patients List or search patients ~115
Patients of the practice (personal and health data). `search` matches name, email, phone or date of birth. Returns id, name, date of birth, contact details and status, plus pageInfo.hasMore for the next page.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| search | string | – | Free-text search (name, email, phone, date of birth). |
No output schema declared.
No examples provided.
semble_list_products List products and services ~91
The practice's price list: appointment types, services and stock items, with price, cost, duration and stock level. `search` matches the item code or name.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| search | string | – | Item code or name. |
No output schema declared.
No examples provided.
semble_list_tasks List tasks ~132
Practice tasks, filtered by patient, status, priority, type or assignee. Returns subject, due date, priority, assignee and patient.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | – | Only tasks assigned to this user id. |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| patient_id | string | – | Only tasks about this patient id. |
| priority | string | – | Task priority. |
| status | string | – | Task status. |
| task_type | string | – | Task type. |
No output schema declared.
No examples provided.
semble_list_users List users (staff) ~110
Staff users of the practice (clinicians and admin): name, email, role, qualifications and specialties. Use the ids for bookings and tasks.
| Name | Type | Req | Description |
|---|---|---|---|
| clinicians_only | boolean | – | Only clinicians. |
| include_deleted | boolean | – | Also return deleted users (default false). |
| page | integer | – | Page number, from 1 (default 1). |
| page_size | integer | – | Rows per page, 1-100 (default 25). |
| search | string | – | Free-text search. |
No output schema declared.
No examples provided.
semble_update_task Update a task (WRITE) ~127
Changes a task: close or reopen it (status), reassign it, move the due date, or edit subject, priority and notes. Only the fields you pass are changed.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | – | New assignee user id. |
| comments | string | – | New notes (replace the old). |
| due_date | string | – | New due date, YYYY-MM-DD. |
| id | string | yes | Task id (from semble_list_tasks). |
| priority | string | – | New priority. |
| status | string | – | New status. |
| subject | string | – | New subject. |
No output schema declared.
No examples provided.
How do I install the Semble MCP by usefulapi server?
Semble MCP by usefulapi is a hosted endpoint at https://semble.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · semble.usefulapi.io
claude mcp add --transport http io-usefulapi-semble 'https://semble.usefulapi.io/mcp'
What is the Semble MCP by usefulapi server?
Semble MCP by usefulapi is listed in the public MCP registry as io.usefulapi/semble. Read Semble patients, bookings, invoices and products; create patients and tasks, label patients. This page covers its hosted endpoint (https://semble.usefulapi.io/mcp).
Is the Semble MCP by usefulapi server safe to use?
Semble MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Semble MCP by usefulapi server expose?
Semble MCP by usefulapi exposes 19 tools: semble_get_practice, semble_list_patients, semble_get_patient, semble_list_patient_bookings, semble_list_bookings, and 14 more. Their descriptions and schemas cost roughly 1,810 tokens of context every time the server is loaded.
Does the Semble MCP by usefulapi server require authentication?
Its publisher declares no required credentials for Semble MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Semble MCP by usefulapi server still maintained?
Semble MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.