Read WaiverFile waivers, events, forms and SMS opt-ins; create and update events, invite managers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
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 of the range: yyyy-mm-dd (00:00 UTC) or an ISO 8601 date-time with timezone, e.g. 2026-10-01T00:00:00Z.
Results per page, 10-200 (default 25).
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.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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 | 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. |
| page_size | integer | Results per page, 10-200 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 10,
"description": "Results per page, 10-200 (default 25)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | Event end (UTC), not before the start. |
| name* | string | Event name. |
| start* | string | Event start (UTC): yyyy-mm-dd or ISO 8601 date-time with timezone. |
| all_day | boolean | All-day event (no time of day). |
| location | string | Event location. |
| category_id | string | Event category id (waiverfile_list_event_categories). |
| signing_cutoff | string | Last moment a waiver can be signed for this event. |
| waiver_form_ids | array | Waiver form ids to attach (waiverfile_list_waiver_forms). |
Create an event category (a label to group events). Not idempotent: calling twice with the same name creates two categories. POST /InsertEventCategory.
| Argument | Type | Description |
|---|---|---|
| name* | string | Category name. |
| active | boolean | Whether the category is active (default true). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Category name."
},
"active": {
"type": "boolean",
"description": "Whether the category is active (default true)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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 | 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. |
| page_size | integer | Results per page, 10-200 (default 25). |
| 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. |
| include_custom_columns | boolean | Include the custom form fields of all waiver forms (default false: standard fields only). |
| consolidate_participants | boolean | true (default) = one row per waiver with participant names in one column; false = full participant information, one row per participant. |
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.
| Argument | Type | 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. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"reference_id_1": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Match the Reference ID 1 field."
},
"reference_id_2": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Match the Reference ID 2 field."
},
"reference_id_3": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Match the Reference ID 3 field."
},
"reference_id_any": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Match any of the three reference id fields."
}
}
}The waivers collected for one event: who signed, when, and the participants. Personal data of signers. GET /GetWaiversForEvent.
| Argument | Type | Description |
|---|---|---|
| event_id* | string | WaiverFile event id (waiverEventID) from waiverfile_list_events. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "WaiverFile event id (waiverEventID) from waiverfile_list_events."
}
}
}Details of the WaiverFile site (WaiverSite) this API key belongs to: name, settings and plan information as WaiverFile reports them. GET /GetSiteDetails.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| lite | boolean | Only the collected form data, without agreement text or event info (default false). |
| waiver_id* | string | WaiverFile waiver id (waiverID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"waiver_id"
],
"properties": {
"lite": {
"type": "boolean",
"description": "Only the collected form data, without agreement text or event info (default false)."
},
"waiver_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "WaiverFile waiver id (waiverID)."
}
}
}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.
| Argument | Type | 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. |
| message | string | Optional message added to the invitation email. |
| event_id* | string | Event id (waiverEventID). |
| email_addresses* | array | Addresses to invite (1-20). |
| skip_email_if_account_exists | boolean | Do not send the email to people who already have a WaiverFile account (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id",
"email_addresses"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true: the user approved emailing these addresses and giving them access to this event's signers. Without it nothing is sent."
},
"message": {
"type": "string",
"maxLength": 2000,
"description": "Optional message added to the invitation email."
},
"event_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Event id (waiverEventID)."
},
"email_addresses": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
"maxItems": 20,
"minItems": 1,
"description": "Addresses to invite (1-20)."
},
"skip_email_if_account_exists": {
"type": "boolean",
"description": "Do not send the email to people who already have a WaiverFile account (default false)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| include_disabled | boolean | Also return disabled categories (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include_disabled": {
"type": "boolean",
"description": "Also return disabled categories (default false)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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 | 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. |
| category_id | string | Only events of this event category id (from waiverfile_list_event_categories). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
},
"category_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only events of this event category id (from waiverfile_list_event_categories)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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 | 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. |
| opted_out | boolean | List subscribers that opted OUT in the range instead of opted in (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
},
"opted_out": {
"type": "boolean",
"description": "List subscribers that opted OUT in the range instead of opted in (default false)."
}
}
}List upcoming waiver events between two dates (UTC), for example the next 7 days. GET /GetUpcomingEvents.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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 | 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. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| include_deleted | boolean | Also return deleted forms (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include_deleted": {
"type": "boolean",
"description": "Also return deleted forms (default false)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | 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). |
| start* | string | 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. |
| page_size | integer | Results per page, 10-200 (default 25). |
| 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. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "boolean",
"description": "Only the collected form data, without agreement text or event info (default false)."
},
"start": {
"type": "string",
"description": "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."
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 10,
"description": "Results per page, 10-200 (default 25)."
},
"page_index": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "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."
}
}
}Search signed waivers by free-text terms (a signer's name, email or phone). Personal data of signers. GET /SearchWaivers.
| Argument | Type | Description |
|---|---|---|
| terms* | string | Search terms, for example a name or an email address. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"terms"
],
"properties": {
"terms": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search terms, for example a name or an email address."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | Event end (UTC), not before the start. |
| name* | string | Event name. |
| start* | string | Event start (UTC). |
| all_day* | boolean | true for an all-day event (no time of day). |
| event_id* | string | Event id (waiverEventID) from waiverfile_list_events. |
| category_id | string | Event category id; omit for no category. |
| waiver_form_ids | array | Waiver form ids for this event; omit or empty to attach all active forms. |
| max_participants |
| integer |
| Participant limit. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "Event end (UTC), not before the start."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Event name."
},
"start": {
"type": "string",
"description": "Event start (UTC): yyyy-mm-dd or ISO 8601 date-time with timezone."
},
"all_day": {
"type": "boolean",
"description": "All-day event (no time of day)."
},
"location": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Event location."
},
"category_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Event category id (waiverfile_list_event_categories)."
},
"signing_cutoff": {
"type": "string",
"description": "Last moment a waiver can be signed for this event."
},
"waiver_form_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"maxItems": 100,
"description": "Waiver form ids to attach (waiverfile_list_waiver_forms)."
},
"max_participants": {
"type": "integer",
"maximum": 100000,
"description": "Participant limit.",
"exclusiveMinimum": 0
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 10,
"description": "Results per page, 10-200 (default 25)."
},
"page_index": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "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."
},
"include_custom_columns": {
"type": "boolean",
"description": "Include the custom form fields of all waiver forms (default false: standard fields only)."
},
"consolidate_participants": {
"type": "boolean",
"description": "true (default) = one row per waiver with participant names in one column; false = full participant information, one row per participant."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id",
"name",
"start",
"end",
"all_day"
],
"properties": {
"end": {
"type": "string",
"description": "Event end (UTC), not before the start."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Event name."
},
"start": {
"type": "string",
"description": "Event start (UTC)."
},
"all_day": {
"type": "boolean",
"description": "true for an all-day event (no time of day)."
},
"event_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Event id (waiverEventID) from waiverfile_list_events."
},
"category_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Event category id; omit for no category."
},
"waiver_form_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"maxItems": 100,
"description": "Waiver form ids for this event; omit or empty to attach all active forms."
}
}
}