← The evidence ledger
Evidence row 301651
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 7d8d2ef2-ef63-4b8b-81e4-6fc9f18a5797
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- a95ab6eeba8f8414aa311015294c24af7c3181b2f7f3be6d65847264994715bc
- Leaf
- 0x23cac023ebed7a0f57242b969986f2c48596ae1df45bcd20130ff97db098e048
What was observed
{
"count": 29,
"tools": [
{
"description": "WRITE: add one staff note to a customer's record (optionally tied to a visit and location). Adds only; nothing is edited or sent to the customer. POST /customers/{customerId}/notes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"content": {
"description": "The note text.",
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"customer_id": {
"description": "Customer id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"location_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"visit_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"customer_id",
"content"
],
"type": "object"
},
"name": "waitwhile_add_customer_note"
},
{
"description": "WRITE: cancel ONE visit (a waitlist entry or booking). Waitwhile sets its state to COMPLETE and adds the CANCELLED tag; the visit is kept, not deleted. By default the request asks Waitwhile to suppress the customer message; this may only stop the immediate cancellation notice, and scheduled reminders/follow-ups can still go out per the location's settings. With send_notifications=true Waitwhile may text/e-mail this ONE customer. POST /visits/{visitId}/cancel.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"send_notifications": {
"description": "Default false: the request asks Waitwhile not to send the immediate confirmation/status message. This may not stop everything: scheduled reminders and follow-ups can still go out according to the location's own settings. Set true to let Waitwhile send its normal messages to the customer.",
"type": "boolean"
},
"visit_id": {
"description": "Visit id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"visit_id"
],
"type": "object"
},
"name": "waitwhile_cancel_visit"
},
{
"description": "WRITE: create ONE visit at a location. Without a date it adds the customer to the waitlist; with a local date-time (YYYY-MM-DDThh:mm) it creates a booking. Needs a location and at least a name, phone or e-mail. Not idempotent: calling it twice creates two visits. Visit notes are not supported here (the field is deprecated): use waitwhile_add_customer_note. By default the request asks Waitwhile to suppress the customer message; this may only stop the immediate confirmation, and scheduled reminders/follow-ups can still go out per the location's settings. With send_notifications=true Waitwhile may text/e-mail this ONE customer. POST /visits.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"date": {
"description": "Booking start in the location's local time, YYYY-MM-DDThh:mm. Omit to join the waitlist.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"duration": {
"description": "Booking duration in seconds.",
"maximum": 86400,
"minimum": 0,
"type": "integer"
},
"email": {
"description": "Customer e-mail.",
"format": "email",
"maxLength": 100,
"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,}$",
"type": "string"
},
"first_name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"last_name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"location_id": {
"description": "Location id (see waitwhile_list_locations).",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"name": {
"description": "Customer name.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"party_size": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"phone": {
"description": "Customer phone, E.164 (+16005551234).",
"pattern": "^\\+[1-9]\\d{6,14}$",
"type": "string"
},
"resource_ids": {
"description": "Preferred resources (staff, rooms).",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"send_notifications": {
"description": "Default false: the request asks Waitwhile not to send the immediate confirmation/status message. This may not stop everything: scheduled reminders and follow-ups can still go out according to the location's own settings. Set true to let Waitwhile send its normal messages to the customer.",
"type": "boolean"
},
"service_ids": {
"description": "Services the customer wants.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "waitwhile_create_visit"
},
{
"description": "The first available booking slots of a location (optionally for a party size, services and resources) from a date. Use it to propose appointment times. GET /visits/first-available-slots.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from_date": {
"description": "Local start, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"location_id": {
"description": "Location id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"max_num_slots": {
"description": "Max number of slots to return.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"party_size": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"resource_ids": {
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"service_duration": {
"description": "Service duration in seconds.",
"maximum": 86400,
"minimum": 60,
"type": "integer"
},
"service_ids": {
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"to_date": {
"description": "Local end, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "waitwhile_first_available_slots"
},
{
"description": "One customer by id: contact details, tags, per-location state and last visit. Contains personal data. GET /customers/{customerId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"description": "Customer id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"customer_id"
],
"type": "object"
},
"name": "waitwhile_get_customer"
},
{
"description": "One data field by id. GET /data-fields/{dataFieldId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"data_field_id": {
"description": "Data field id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"data_field_id"
],
"type": "object"
},
"name": "waitwhile_get_data_field"
},
{
"description": "One location by id or short name (the part of its public Waitwhile URL). GET /locations/{shortNameOrId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"location": {
"description": "Location id or short name.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"location"
],
"type": "object"
},
"name": "waitwhile_get_location"
},
{
"description": "Live status of one location: open/closed, waiting and serving counts, estimated wait. GET /location-status/{locationId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"location_id": {
"description": "Location id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "waitwhile_get_location_status"
},
{
"description": "One message by id. Contains personal data. GET /messages/{messageId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"message_id": {
"description": "Message id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"message_id"
],
"type": "object"
},
"name": "waitwhile_get_message"
},
{
"description": "One resource by id. GET /resources/{resourceId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"resource_id": {
"description": "Resource id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"resource_id"
],
"type": "object"
},
"name": "waitwhile_get_resource"
},
{
"description": "One service by id. GET /services/{serviceId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"service_id": {
"description": "Service id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"service_id"
],
"type": "object"
},
"name": "waitwhile_get_service"
},
{
"description": "One visit (waitlist entry or booking) by id: customer, state, tags, services, resources, party size, position, estimated wait and all timestamps. GET /visits/{visitId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"visit_id": {
"description": "Visit id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"visit_id"
],
"type": "object"
},
"name": "waitwhile_get_visit"
},
{
"description": "The account's audit log: who changed what and when (visits, customers, locations, services, resources, users, messages). Filter by type, event, entity, location or date. GET /audit-entries.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"desc": {
"description": "Newest first.",
"type": "boolean"
},
"entity_id": {
"description": "Id of the changed object.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"event": {
"description": "Audit event type.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"from_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01 or 2026-10-01T00:00:00Z).",
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"to_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01 or 2026-10-01T00:00:00Z).",
"type": "string"
},
"type": {
"enum": [
"ACCOUNT",
"CUSTOMER",
"DATA-FIELD",
"MESSAGE",
"LOCATION",
"RESOURCE",
"SERVICE",
"USER",
"VISIT"
],
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_audit_entries"
},
{
"description": "Booking slots of a location for a date range with the free spots per resource and service, so you can see when an appointment can be booked. Dates are local to the location, YYYY-MM-DDThh:mm. GET /visits/availability.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from_date": {
"description": "Local start, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"location_id": {
"description": "Location id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"resource_ids": {
"description": "Only slots for these resources.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"service_duration": {
"description": "Service duration in seconds, to size the slots.",
"maximum": 86400,
"minimum": 60,
"type": "integer"
},
"service_ids": {
"description": "Only slots for these services.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"show_min_spots": {
"description": "Only slots with at least this many free spots.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"to_date": {
"description": "Local end, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "waitwhile_list_booking_slots"
},
{
"description": "The staff notes recorded on a customer (content, author, visit and location, timestamps). GET /customers/{customerId}/notes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"description": "Customer id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"customer_id"
],
"type": "object"
},
"name": "waitwhile_list_customer_notes"
},
{
"description": "List customers (name, phone, e-mail, tags, last visit per location, created/updated). Cursor-paged, 20 per page by default; filter by location, external id or created/updated date. Contains personal data. GET /customers.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"desc": {
"description": "Newest first.",
"type": "boolean"
},
"external_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"from_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01T00:00:00Z), or epoch milliseconds.",
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only customers with visits at this location.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"to_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01T00:00:00Z), or epoch milliseconds.",
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_customers"
},
{
"description": "List the custom data fields (intake/booking form questions) with type, options and where they apply. Use the ids to read answers on visits. GET /data-fields.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"external_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only items offered at these locations.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"q": {
"description": "Prefix match on name or display name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_data_fields"
},
{
"description": "Live status of every location: open/closed, number of people waiting and being served, current estimated wait time, and booking counters. GET /location-status.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_location_status"
},
{
"description": "List the account's locations (businesses/sites): id, name, short name, address, time zone, opening hours and waitlist/booking settings. Use the ids to filter visits, services and resources. GET /locations.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"country_code": {
"description": "Two-letter country code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"desc": {
"description": "Newest first.",
"type": "boolean"
},
"external_id": {
"description": "Only the location with this external id.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_locations"
},
{
"description": "List the SMS/e-mail messages Waitwhile sent to and received from customers: channel, recipient, body, delivery state (PENDING, BLOCKED, FAILED, DELIVERED, UNCONFIRMED, RECEIVED) and error. Filter by location, visit, customer, state or date. Contains personal data. This only reads; it cannot send. GET /messages.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"desc": {
"description": "Newest first.",
"type": "boolean"
},
"external_customer_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"from_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01T00:00:00Z), or epoch milliseconds.",
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"state": {
"enum": [
"PENDING",
"BLOCKED",
"FAILED",
"DELIVERED",
"UNCONFIRMED",
"RECEIVED"
],
"type": "string"
},
"to_date": {
"description": "ISO 8601 date or date-time (e.g. 2026-10-01T00:00:00Z), or epoch milliseconds.",
"type": "string"
},
"visit_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_messages"
},
{
"description": "List resources — the people, rooms, tables or equipment that serve customers: name, locations, services, availability flag and category structure. GET /resources.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"description": "Only the resource with this e-mail.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"external_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"is_category": {
"description": "Only resource categories (true) or only resources (false).",
"type": "boolean"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only items offered at these locations.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"parent_id": {
"description": "Only children of this category.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"q": {
"description": "Prefix match on name or display name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_resources"
},
{
"description": "List services (what customers book or queue for): name, duration, price, locations, resources and category structure. GET /services.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"external_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"is_category": {
"description": "Only service categories (true) or only services (false).",
"type": "boolean"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only items offered at these locations.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"parent_id": {
"description": "Only children of this category.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"q": {
"description": "Prefix match on name or display name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_services"
},
{
"description": "List the staff users of the account: name, e-mail, roles, locations. Password data and tokens are never returned. GET /users.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"external_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only users with access to these locations.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"q": {
"description": "Prefix match on name or e-mail.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"role": {
"description": "Only users with these roles.",
"items": {
"maxLength": 50,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_users"
},
{
"description": "List visits: waitlist entries (people in line) and bookings (appointments), with customer, state (PENDING, DRAFT, BOOKED, WAITING, SERVING, COMPLETE), tags (e.g. NO-SHOW, CANCELLED, ARRIVED), services, resources, party size, position and timestamps. Filter by location, state, tag, customer, service, resource, booking date (local time) or created/updated date. Cursor-paged. Contains customer contact details. GET /visits.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"desc": {
"description": "Newest first.",
"type": "boolean"
},
"external_customer_id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"from_booking_date": {
"description": "Bookings starting at or after this local date-time, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"from_date": {
"description": "Visits created from this date-time (ISO 8601 or epoch ms).",
"type": "string"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "Only visits at this location.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"resource_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"service_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"start_after": {
"description": "Cursor: pass the previous reply's next_start_after to get the next page.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"state": {
"enum": [
"PENDING",
"DRAFT",
"BOOKED",
"WAITING",
"SERVING",
"COMPLETE"
],
"type": "string"
},
"tag": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
},
"to_booking_date": {
"description": "Bookings starting at or before this local date-time, YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"to_date": {
"description": "Visits created up to this date-time (ISO 8601 or epoch ms).",
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_list_visits"
},
{
"description": "Working hours/availability of a location's resources on a date (e.g. who is working today). GET /resources/availability.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"date": {
"description": "Date (yyyy-mm-dd) or ISO 8601 date-time; default today.",
"type": "string"
},
"location_id": {
"description": "Location id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"resource_ids": {
"description": "Only these resources.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "waitwhile_resources_availability"
},
{
"description": "Search customers by a prefix match on name, phone, e-mail or customer id; optionally narrowed by location, visit state or tag. Page-numbered. Contains personal data. GET /customers/search.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"maximum": 1000000,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Prefix match on name, phone, e-mail or customer id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"state": {
"enum": [
"PENDING",
"DRAFT",
"BOOKED",
"WAITING",
"SERVING",
"COMPLETE"
],
"type": "string"
},
"tag": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "waitwhile_search_customers"
},
{
"description": "Search visits by a prefix match on customer name, phone, e-mail or customer id, optionally filtered by location, state, tag and excluded tags. Page-numbered. Contains customer contact details. GET /visits/search.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"exclude_tags": {
"description": "Leave out visits carrying any of these tags.",
"items": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"limit": {
"description": "Results per page, 1-100 (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"location_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"maximum": 1000000,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Prefix match on name, phone, e-mail or customer id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"state": {
"enum": [
"PENDING",
"DRAFT",
"BOOKED",
"WAITING",
"SERVING",
"COMPLETE"
],
"type": "string"
},
"tag": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "waitwhile_search_visits"
},
{
"description": "WRITE: change ONE visit — its state (e.g. WAITING to SERVING to COMPLETE, or BOOKED), add/remove tags (e.g. ARRIVED, CONFIRMED, NO-SHOW), booking date/duration or party size. Only the fields you pass change. By default the request asks Waitwhile to suppress the customer message; this may only stop the immediate status message, and scheduled reminders/follow-ups can still go out per the location's settings. With send_notifications=true Waitwhile may text/e-mail this ONE customer. Use waitwhile_cancel_visit to cancel. POST /visits/{visitId}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"add_tags": {
"description": "Tags to add.",
"items": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"date": {
"description": "New booking start, local time YYYY-MM-DDThh:mm.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"type": "string"
},
"duration": {
"description": "New booking duration in seconds.",
"maximum": 86400,
"minimum": 0,
"type": "integer"
},
"party_size": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"remove_tags": {
"description": "Tags to remove.",
"items": {
"enum": [
"NO-SHOW",
"CANCELLED",
"REMOVED",
"ALERTED",
"ARRIVED",
"DELAYED",
"CONFIRMED",
"EXPIRED",
"FLAGGED",
"IMPORTED",
"PRIORITIZED",
"CAPACITY",
"REJECTED",
"QUICK"
],
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"send_notifications": {
"description": "Default false: the request asks Waitwhile not to send the immediate confirmation/status message. This may not stop everything: scheduled reminders and follow-ups can still go out according to the location's own settings. Set true to let Waitwhile send its normal messages to the customer.",
"type": "boolean"
},
"state": {
"description": "New state.",
"enum": [
"PENDING",
"DRAFT",
"BOOKED",
"WAITING",
"SERVING",
"COMPLETE"
],
"type": "string"
},
"visit_id": {
"description": "Visit id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"visit_id"
],
"type": "object"
},
"name": "waitwhile_update_visit"
},
{
"description": "Aggregated visit statistics for a period: visits, waitlisted, bookings, served, no-shows, cancellations, wait and serve duration quantiles, and breakdowns by location, resource, service, party size, user, day of week and hour of day. GET /analytics/visits (JSON).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from_date": {
"description": "Period start (ISO 8601 or epoch ms).",
"type": "string"
},
"location_id": {
"description": "Only this location (default: all).",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"to_date": {
"description": "Period end (ISO 8601 or epoch ms).",
"type": "string"
}
},
"type": "object"
},
"name": "waitwhile_visit_analytics"
}
]
}What the leaf hashes
{"body":"a95ab6eeba8f8414aa311015294c24af7c3181b2f7f3be6d65847264994715bc","id":301651,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793054206608499,"prev":null,"subject":"7d8d2ef2-ef63-4b8b-81e4-6fc9f18a5797","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x23cb38c0b83f9a60aac8a6458687f8ef95985ce5678953808263b09b3d768341
- 0x6046e5ea29e817ce4a0e412f758ab7fc7d9c9b788402c0b498aae4150badfeb3
- 0x1869fff17b5367e4524b68d7576158e604ea8e237d5f3ddffd56f168789d2c6f
- 0xe6cdb1be3b7a148905d0c1032dd5f3542983db20fd0d363d4da66e4405b9c90d
- 0x275a3987b60d8e6d39d8399eea0bf3cb532fdfc8c69ac4fb28e3a5f2fc2486f8
- 0x3a7a338ef23f29a73c6f06594ac545ab0ab2d979a773cb759f971a61733302ad
- 0x7f996aa54219e16c68d3ce360e2a1ed44779a7d8d4562298022d67066a9125fb
- 0x9c6ad1cf02df1e6a7d6b0c8bb5d5184ebfa7a9fecca36004f667e0d38ae44231
- 0xbc5246cda47158df1c064ca68cdd8d908ba87a0a982f369c71005f5c4c337831
- 0x1f665fd33ff003b77fc5f27a4e56219f36aaae7e346794cb25d15f47d71ec758
- 0x395ecef2713b13f9a2a88fe836fbc1a4e94906043e3938cd3fd16627be6b95de
- 0x2ceb9cc3a43f479e6ab73db5d3d474a93995fb4188ee45f71846b4cf537a0016
- 0x830b2c874449c7499489eba2baa67d49f991298225763c0161b471621038d0fb
- 0xd843afcced75dedd39194ff9bd12326b88099e6112686db2299392d022dc3146
- 0xc3a6a3ae44ec0da1848b16d40c45d7aac97a67352eea8df18e0f26edabea8a2f
- 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae