WaiverFile MCP by usefulapi
Read WaiverFile waivers, events, forms and SMS opt-ins; create and update events, invite managers.
사용해야 할까요
품질 및 안전성
발견 사항 (6)
- LOWwaiverfile_list_upcoming_events에서
- LOWwaiverfile_list_event_categories에서
- LOWwaiverfile_find_waivers_by_reference에서
- LOWwaiverfile_list_sms_subscribers에서
- LOWwaiverfile_invite_event_managers에서
- LOWwaiverfile_create_event_category에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"waiverfile": {
"url": "https://waiverfile.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://waiverfile.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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"
}커뮤니티
증거