WaiverFile MCP by usefulapi
REMOTE · WAIVERFILE.USEFULAPI.IO
Read WaiverFile waivers, events, forms and SMS opt-ins; create and update events, invite managers.
Available components
Last scanned (4 hours ago)
Scores higher than 46% of remote servers
Reachable. Last reached 25 Oct 2026.
Category CRM and Sales
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 Security78
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- 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. View diagnostics → Pass
- 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
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
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 Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2839 tokens (~167/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
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.
- 25 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- Server version: 1.0.0 → 1.0.3 functional
- 24 Oct 26 62
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 25 Oct 2026 · Probed https://waiverfile.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 waiverfile.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690, 57355 | 8, 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 302 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://waiverfile.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://waiverfile.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://waiverfile.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://waiverfile.usefulapi.io/mcp |
| Authorisation server | https://waiverfile.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://waiverfile.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/waiverfile/ |
| http (plaintext) | http://waiverfile.usefulapi.io/mcp | Inconclusive | 302 | http://waiverfile.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 →
waiverfile_count_waivers Count waivers in a date range ~227
How many waivers a date range holds: record_count (GetWaiverDataCount, the rows waiverfile_export_waiver_data pages through) and waiver_count (GetAllWaiversByDateRangePageCount, which WaiverFile documents as the number of waivers in the range, used to work out the pages of waiverfile_list_waivers). pages_at_page_size is waiver_count divided by page_size (default 25), rounded up. GET /GetWaiverDataCount and /GetAllWaiversByDateRangePageCount.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| page_size | integer | – | Results per page, 10-200 (default 25). |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_create_event Create an event ~243
Create a waiver event (a class, tour or session that collects waivers) with a name and a start/end time (UTC). Optionally an all-day flag, category, location, signing cut-off, participant limit and which waiver forms to attach (default: WaiverFile's own choice, see list_waiver_forms). Not idempotent: calling twice creates two events. Sends no email. POST /InsertEvent.
| Name | Type | Req | Description |
|---|---|---|---|
| all_day | boolean | – | All-day event (no time of day). |
| category_id | string | – | Event category id (waiverfile_list_event_categories). |
| end | string | yes | Event end (UTC), not before the start. |
| location | string | – | Event location. |
| max_participants | integer | – | Participant limit. |
| name | string | yes | Event name. |
| signing_cutoff | string | – | Last moment a waiver can be signed for this event. |
| start | string | yes | Event start (UTC): yyyy-mm-dd or ISO 8601 date-time with timezone. |
| waiver_form_ids | array | – | Waiver form ids to attach (waiverfile_list_waiver_forms). |
No output schema declared.
No examples provided.
waiverfile_create_event_category Create an event category ~67
Create an event category (a label to group events). Not idempotent: calling twice with the same name creates two categories. POST /InsertEventCategory.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | Whether the category is active (default true). |
| name | string | yes | Category name. |
No output schema declared.
No examples provided.
waiverfile_export_waiver_data Export waiver data ~288
A page of flat waiver rows for a date range (the data behind the WaiverFile export): standard fields, optionally every custom form field as a column, and participants either as one comma-separated column or one row each. Personal data of signers. GET /GetWaiverData.
| Name | Type | Req | Description |
|---|---|---|---|
| consolidate_participants | boolean | – | true (default) = one row per waiver with participant names in one column; false = full participant information, one row per participant. |
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| include_custom_columns | boolean | – | Include the custom form fields of all waiver forms (default false: standard fields only). |
| page_index | integer | – | Page index (default 0). WaiverFile does not state whether the first page is 0 or 1; if page 0 looks like it skips data or is empty while the count is not, try 1. |
| page_size | integer | – | Results per page, 10-200 (default 25). |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_find_waivers_by_reference Find waivers by reference id ~142
Find waivers by the reference ids an outside booking or reservation system attached to them (referenceID1, 2, 3). Give at least one of reference_id_1/2/3, or reference_id_any to match all three fields. GET /GetWaiversByReferenceID.
| Name | Type | Req | Description |
|---|---|---|---|
| reference_id_1 | string | – | Match the Reference ID 1 field. |
| reference_id_2 | string | – | Match the Reference ID 2 field. |
| reference_id_3 | string | – | Match the Reference ID 3 field. |
| reference_id_any | string | – | Match any of the three reference id fields. |
No output schema declared.
No examples provided.
waiverfile_get_event_waivers Get waivers for an event ~68
The waivers collected for one event: who signed, when, and the participants. Personal data of signers. GET /GetWaiversForEvent.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | WaiverFile event id (waiverEventID) from waiverfile_list_events. |
No output schema declared.
No examples provided.
waiverfile_get_site Get site details ~47
Details of the WaiverFile site (WaiverSite) this API key belongs to: name, settings and plan information as WaiverFile reports them. GET /GetSiteDetails.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
waiverfile_get_waiver Get a waiver ~110
One signed waiver by id: signer, date signed, participants, collected form data, event and the agreement text. Set lite for only the collected form data (no agreement text or event info). Signature and image bytes are never returned. GET /GetWaiver or /GetWaiverLite.
| Name | Type | Req | Description |
|---|---|---|---|
| lite | boolean | – | Only the collected form data, without agreement text or event info (default false). |
| waiver_id | string | yes | WaiverFile waiver id (waiverID). |
No output schema declared.
No examples provided.
waiverfile_invite_event_managers Invite event managers ~224
SENDS EMAIL: invites people (by email address) to manage one event; they can log in to WaiverFile and see its signers and participants, with the fields set in the account settings. WaiverFile emails each address, with your optional message in the body (skip_email_if_account_exists suppresses the email for people who already have an account). Cannot be undone by this server except with the vendor's own remove-managers action. Requires confirm=true after the user approved it. POST /InviteEventManagers.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true: the user approved emailing these addresses and giving them access to this event's signers. Without it nothing is sent. |
| email_addresses | array | yes | Addresses to invite (1-20). |
| event_id | string | yes | Event id (waiverEventID). |
| message | string | – | Optional message added to the invitation email. |
| skip_email_if_account_exists | boolean | – | Do not send the email to people who already have a WaiverFile account (default false). |
No output schema declared.
No examples provided.
waiverfile_list_event_categories List event categories ~60
List the event categories of the site (id and name). Use the ids to filter events or to put a new event in a category. GET /GetEventCategories.
| Name | Type | Req | Description |
|---|---|---|---|
| include_disabled | boolean | – | Also return disabled categories (default false). |
No output schema declared.
No examples provided.
waiverfile_list_events List events by date range ~181
List waiver events (a class, tour, party or session that collects waivers) whose date falls in a range, optionally only one event category. Each event has an id, name, start/end, headcount and spots remaining. Dates are UTC. GET /GetEventsByDateRange or /GetEventsByCategory.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | – | Only events of this event category id (from waiverfile_list_event_categories). |
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_list_sms_subscribers List SMS subscribers ~170
SMS marketing subscribers (phone numbers) that opted in during a date range, or with opted_out set the ones that opted out. Dates are UTC. Personal data. GET /GetSubscribersByDate or /GetOptedOutSubscribersByOptOutDate.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| opted_out | boolean | – | List subscribers that opted OUT in the range instead of opted in (default false). |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_list_upcoming_events List upcoming events ~120
List upcoming waiver events between two dates (UTC), for example the next 7 days. GET /GetUpcomingEvents.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_list_waiver_forms List waiver forms ~100
List the waiver forms of the site (name, id, which fields they collect: email, address, phone, date of birth, minimum age, signature). Active forms by default; set include_deleted for all forms including deleted ones. Use the form ids when creating or updating events. GET /GetActiveWaiverForms or /GetAllWaiverForms.
| Name | Type | Req | Description |
|---|---|---|---|
| include_deleted | boolean | – | Also return deleted forms (default false). |
No output schema declared.
No examples provided.
waiverfile_list_waivers List waivers by date range ~268
A page of the waivers signed in a date range. Set lite for only the collected form data (smaller). For a flat export with custom form columns use waiverfile_export_waiver_data; for totals use waiverfile_count_waivers. Personal data of signers. GET /GetAllWaiversByDateRange or /GetAllWaiversByDateRangeLite.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of the range: yyyy-mm-dd means 00:00 UTC of that day, so pass the next day to include the whole day. |
| lite | boolean | – | Only the collected form data, without agreement text or event info (default false). |
| page_index | integer | – | Page index (default 0). WaiverFile does not state whether the first page is 0 or 1; if page 0 looks like it skips data or is empty while the count is not, try 1. |
| page_size | integer | – | Results per page, 10-200 (default 25). |
| start | string | yes | Start of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z. |
No output schema declared.
No examples provided.
waiverfile_search_waivers Search waivers ~60
Search signed waivers by free-text terms (a signer's name, email or phone). Personal data of signers. GET /SearchWaivers.
| Name | Type | Req | Description |
|---|---|---|---|
| terms | string | yes | Search terms, for example a name or an email address. |
No output schema declared.
No examples provided.
waiverfile_update_event Update an event ~213
Update an existing event. WaiverFile replaces the whole event, so name, start, end and all_day are required and anything left out is reset: category_id empty = no category, waiver_form_ids empty = ALL active forms are attached. Read the event first (waiverfile_list_events) and send its current values for the fields you do not change. Same input twice gives the same result. POST /UpdateEvent.
| Name | Type | Req | Description |
|---|---|---|---|
| all_day | boolean | yes | true for an all-day event (no time of day). |
| category_id | string | – | Event category id; omit for no category. |
| end | string | yes | Event end (UTC), not before the start. |
| event_id | string | yes | Event id (waiverEventID) from waiverfile_list_events. |
| name | string | yes | Event name. |
| start | string | yes | Event start (UTC). |
| waiver_form_ids | array | – | Waiver form ids for this event; omit or empty to attach all active forms. |
No output schema declared.
No examples provided.
How do I install the WaiverFile MCP by usefulapi server?
WaiverFile MCP by usefulapi is a hosted endpoint at https://waiverfile.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 · waiverfile.usefulapi.io
claude mcp add --transport http io-usefulapi-waiverfile 'https://waiverfile.usefulapi.io/mcp'
What is the WaiverFile MCP by usefulapi server?
WaiverFile MCP by usefulapi is listed in the public MCP registry as io.usefulapi/waiverfile. Read WaiverFile waivers, events, forms and SMS opt-ins; create and update events, invite managers. This page covers its hosted endpoint (https://waiverfile.usefulapi.io/mcp).
Is the WaiverFile MCP by usefulapi server safe to use?
WaiverFile MCP by usefulapi scores 62 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 WaiverFile MCP by usefulapi server expose?
WaiverFile MCP by usefulapi exposes 17 tools: waiverfile_get_site, waiverfile_list_waiver_forms, waiverfile_list_events, waiverfile_list_upcoming_events, waiverfile_list_event_categories, and 12 more. Their descriptions and schemas cost roughly 2,588 tokens of context every time the server is loaded.
Does the WaiverFile MCP by usefulapi server require authentication?
Yes. WaiverFile MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the WaiverFile MCP by usefulapi server still maintained?
WaiverFile MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.