WaiverFile MCP by usefulapi
Read WaiverFile waivers, events, forms and SMS opt-ins; create and update events, invite managers.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (6)
- LOWen waiverfile_list_upcoming_events
- LOWen waiverfile_list_event_categories
- LOWen waiverfile_find_waivers_by_reference
- LOWen waiverfile_list_sms_subscribers
- LOWen waiverfile_invite_event_managers
- LOWen waiverfile_create_event_category
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"waiverfile": {
"url": "https://waiverfile.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://waiverfile.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (17)
🟢waiverfile_get_site
Details of the WaiverFile site (WaiverSite) this API key belongs to: name, settings and plan information as WaiverFile reports them. GET /GetSiteDetails.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_waiver_forms(include_deleted)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"include_deleted": {
"description": "Also return deleted forms (default false).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_events(start, end, category_id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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."
},
"category_id": {
"description": "Only events of this event category id (from waiverfile_list_event_categories).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_upcoming_events(start, end)
List upcoming waiver events between two dates (UTC), for example the next 7 days. GET /GetUpcomingEvents.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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."
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_event_categories(include_disabled)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"include_disabled": {
"description": "Also return disabled categories (default false).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_get_event_waivers(event_id)
The waivers collected for one event: who signed, when, and the participants. Personal data of signers. GET /GetWaiversForEvent.
Esquema de entrada
{
"type": "object",
"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."
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_search_waivers(terms)
Search signed waivers by free-text terms (a signer's name, email or phone). Personal data of signers. GET /SearchWaivers.
Esquema de entrada
{
"type": "object",
"properties": {
"terms": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Search terms, for example a name or an email address."
}
},
"required": [
"terms"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_get_waiver(waiver_id, lite)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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)."
},
"lite": {
"description": "Only the collected form data, without agreement text or event info (default false).",
"type": "boolean"
}
},
"required": [
"waiver_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_find_waivers_by_reference(reference_id_1, reference_id_2, reference_id_3, reference_id_any)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"reference_id_1": {
"description": "Match the Reference ID 1 field.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reference_id_2": {
"description": "Match the Reference ID 2 field.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reference_id_3": {
"description": "Match the Reference ID 3 field.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reference_id_any": {
"description": "Match any of the three reference id fields.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_waivers(start, end, lite, page_index, page_size)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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": {
"description": "Only the collected form data, without agreement text or event info (default false).",
"type": "boolean"
},
"page_index": {
"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.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 10-200 (default 25).",
"type": "integer",
"minimum": 10,
"maximum": 200
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_export_waiver_data(start, end, include_custom_columns, consolidate_participants, page_index, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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."
},
"include_custom_columns": {
"description": "Include the custom form fields of all waiver forms (default false: standard fields only).",
"type": "boolean"
},
"consolidate_participants": {
"description": "true (default) = one row per waiver with participant names in one column; false = full participant information, one row per participant.",
"type": "boolean"
},
"page_index": {
"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.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 10-200 (default 25).",
"type": "integer",
"minimum": 10,
"maximum": 200
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_count_waivers(start, end, page_size)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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."
},
"page_size": {
"description": "Results per page, 10-200 (default 25).",
"type": "integer",
"minimum": 10,
"maximum": 200
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢waiverfile_list_sms_subscribers(start, end, opted_out)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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."
},
"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."
},
"opted_out": {
"description": "List subscribers that opted OUT in the range instead of opted in (default false).",
"type": "boolean"
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡waiverfile_create_event(name, start, end, all_day, category_id, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Event name."
},
"start": {
"type": "string",
"description": "Event start (UTC): yyyy-mm-dd or ISO 8601 date-time with timezone."
},
"end": {
"type": "string",
"description": "Event end (UTC), not before the start."
},
"all_day": {
"description": "All-day event (no time of day).",
"type": "boolean"
},
"category_id": {
"description": "Event category id (waiverfile_list_event_categories).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"waiver_form_ids": {
"description": "Waiver form ids to attach (waiverfile_list_waiver_forms).",
"maxItems": 100,
"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}$"
}
},
"location": {
"description": "Event location.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"signing_cutoff": {
"description": "Last moment a waiver can be signed for this event.",
"type": "string"
},
"max_participants": {
"description": "Participant limit.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"name",
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴waiverfile_update_event(event_id, name, start, end, all_day, ...)
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.
Esquema de entrada
{
"type": "object",
"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": "Event id (waiverEventID) from waiverfile_list_events."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Event name."
},
"start": {
"type": "string",
"description": "Event start (UTC)."
},
"end": {
"type": "string",
"description": "Event end (UTC), not before the start."
},
"all_day": {
"type": "boolean",
"description": "true for an all-day event (no time of day)."
},
"category_id": {
"description": "Event category id; omit for no category.",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"waiver_form_ids": {
"description": "Waiver form ids for this event; omit or empty to attach all active forms.",
"maxItems": 100,
"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}$"
}
}
},
"required": [
"event_id",
"name",
"start",
"end",
"all_day"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴waiverfile_invite_event_managers(event_id, email_addresses, message, skip_email_if_account_exists, confirm)
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.
Esquema de entrada
{
"type": "object",
"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": "Event id (waiverEventID)."
},
"email_addresses": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"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,}$"
},
"description": "Addresses to invite (1-20)."
},
"message": {
"description": "Optional message added to the invitation email.",
"type": "string",
"maxLength": 2000
},
"skip_email_if_account_exists": {
"description": "Do not send the email to people who already have a WaiverFile account (default false).",
"type": "boolean"
},
"confirm": {
"description": "Must be true: the user approved emailing these addresses and giving them access to this event's signers. Without it nothing is sent.",
"type": "boolean"
}
},
"required": [
"event_id",
"email_addresses"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡waiverfile_create_event_category(name, active)
Create an event category (a label to group events). Not idempotent: calling twice with the same name creates two categories. POST /InsertEventCategory.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Category name."
},
"active": {
"description": "Whether the category is active (default true).",
"type": "boolean"
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia