WaitApp
by waitapp.online · remote · no sign-in to list tools · v1.1.1 · published by online.waitapp
Find venues, book tables, rooms and services, buy event tickets and order food delivery.
30 tools: 2 can delete or cancel things, 15 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things15Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http waitapp https://waitapp.online/api/mcp/Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
30 tools
Deletes or cancels 2Claude Code: deny
cancel_orderCancels the connected person's own order under the same rules as the WaitApp website: free while the venue or a rider has not started, refused once the rider is collecting or has t…No findings
Why it is in this group
- The name "cancel_order" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancels the connected person's own order under the same rules as the WaitApp website: free while the venue or a rider has not started, refused once the rider is collecting or has the food. A paid order is flagged for the venue to review a refund; refunds are never instant or automatic. When the connection is set to confirm each decision, the first call returns what would be cancelled and cancels nothing, and a call with confirmed: true cancels. With full control it cancels immediately, at most 3 a day.
Annotations the server declares
- title: Cancel an order
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_saved_locationRemoves one of the connected person's saved delivery locations.No findings
Why it is in this group
- The name "delete_saved_location" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Removes one of the connected person's saved delivery locations. Orders already placed to it are not affected. Use the id from list_saved_locations.
Annotations the server declares
- title: Remove a saved location
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 15Claude Code: ask
book_reservationBook a table reservation (not a room/stay — use book_room for that) on behalf of a real guest.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Book a table reservation (not a room/stay — use book_room for that) on behalf of a real guest. The venue's city/countryCode come from search_venues. This is a REQUEST the venue reviews and confirms, not an instant confirmation.
Annotations the server declares
- title: Request a table reservation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
book_roomSubmit a stay booking request on behalf of a real guest — check_room_availability shows whether the dates are free; the venue's city/countryCode come from search_venues.No findings
Why it is in this group
- The description's first verb is "submit": a word for a change.
Description, as the server wrote it Submit a stay booking request on behalf of a real guest — check_room_availability shows whether the dates are free; the venue's city/countryCode come from search_venues. This is a REQUEST the venue reviews and confirms (same as a guest booking on the website), not an instant confirmation. No payment is collected by this tool. If the venue takes a deposit, it is requested after the venue confirms the room.
Annotations the server declares
- title: Request a room booking
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
book_serviceBook a spa/massage-style SERVICE slot on behalf of a real guest — check_service_availability shows free slots; the venue's city/countryCode come from search_venues.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Book a spa/massage-style SERVICE slot on behalf of a real guest — check_service_availability shows free slots; the venue's city/countryCode come from search_venues. Unlike book_room this is an INSTANT confirmation (a real slot is atomically reserved). No payment is collected by this tool — the guest pays at the venue.
Annotations the server declares
- title: Book a service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_event_availabilityCheck remaining capacity for a specific event.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check remaining capacity for a specific event.
Annotations the server declares
- title: Check event availability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_room_availabilityCheck which physical rooms/facilities of a given catalog type are actually free for a date range — real availability, not just that the type exists.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check which physical rooms/facilities of a given catalog type are actually free for a date range — real availability, not just that the type exists. Use list_room_types first to get roomFacilityTypeId.
Annotations the server declares
- title: Check room availability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_service_availabilityCheck whether a bookable SERVICE (spa, massage, etc.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check whether a bookable SERVICE (spa, massage, etc. — a list_room_types entry with kind "service") has a free slot at a specific start time. Real time-slot availability, not date-range like rooms. Use list_room_types first to get the service's id.
Annotations the server declares
- title: Check service availability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
confirm_delivery_orderPlaces a drafted delivery order exactly as drafted.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Places a drafted delivery order exactly as drafted. The draftId comes from draft_delivery_order, or from place_delivery_order when the connection is set to confirm each decision. Retrying with the same draftId never creates a second order. When payment is online, the result includes a payment link to WaitApp's payment page where the guest pays; this tool charges nothing. The venue must accept the order after it is placed; track_order follows it by orderCode.
Annotations the server declares
- title: Confirm a drafted delivery order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
draft_delivery_orderPrices a food/drink DELIVERY order from the venue's menu (choices and sides included), finds the delivery address and quotes the delivery fee, without placing anything.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Prices a food/drink DELIVERY order from the venue's menu (choices and sides included), finds the delivery address and quotes the delivery fee, without placing anything. Returns the items, delivery fee, total, distance and estimated delivery time, and a draftId that confirm_delivery_order places (place_delivery_order does both steps and follows the connection's permission setting). Requires the connected WaitApp account. Item ids and each item's optionGroups come from list_menu_items; chosen choices go in selectedOptions (group name and choice name), and a group with required=true must be chosen. Give the fullest address available (street or estate, area, city), or a savedLocationId. Fails with a clear message if the venue is closed, doesn't deliver, or the address is outside its delivery area. payment: pay_on_delivery (the guest pays the venue or rider on delivery) or online (the guest pays the meal on WaitApp's payment page after the order is placed; this tool and the assistant send and approve no payment). The delivery fee is always paid to the rider on delivery.
Annotations the server declares
- title: Draft a delivery order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
draft_preorderDrafts a pre-order for a time slot, for PICKUP (default) or courier DELIVERY (method: delivery, with deliveryAddress or savedLocationId; the slot must offer delivery and the venue …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Drafts a pre-order for a time slot, for PICKUP (default) or courier DELIVERY (method: delivery, with deliveryAddress or savedLocationId; the slot must offer delivery and the venue must deliver, and the delivery fee is paid to the rider on delivery). Nothing is placed or reserved: it checks the slot against the items (lead time, capacity, items sold that day), prices the order with choices, and returns the summary: slot and ready time, items, total, what is due now and what on collection. The slot comes from list_preorder_slots (slotInstanceId). Returns a draftId for place_preorder. Requires the connected WaitApp account. payment: on_collection (default; the guest pays the venue when collecting) or online (the amount due now is paid by the guest on WaitApp's payment page after the order is placed; the assistant sends and approves no payment); some venues require online. guestPhone is required: the guest and venue use it to find the order. One slot per order.
Annotations the server declares
- title: Draft a scheduled pre-order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
place_delivery_orderOrders food for delivery in one call: prices the order, quotes the delivery fee, then places it or returns a draft depending on the permission chosen when connecting (get_connectio…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Orders food for delivery in one call: prices the order, quotes the delivery fee, then places it or returns a draft depending on the permission chosen when connecting (get_connection_permissions shows it). With full control it places the order within the spending limits set; with confirm-each-decision it places nothing and returns a draft summary with a draftId that confirm_delivery_order places. Same inputs and rules as draft_delivery_order. idempotencyKey is required: the same key returns the same order instead of creating a second one. When payment is online, the result includes a payment link to WaitApp's payment page where the guest sees the exact charge and pays it; this tool charges nothing. The venue must accept the order after it is placed; track_order follows it by orderCode.
Annotations the server declares
- title: Place a delivery order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
place_preorderPlaces a pre-order drafted with draft_preorder, exactly as drafted: holds the time slot and creates the order.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Places a pre-order drafted with draft_preorder, exactly as drafted: holds the time slot and creates the order. When an amount is due now, the result includes a payment link to WaitApp's payment page where the guest sees the exact charge and pays it themselves; this tool charges nothing. The held slot is released and the order cancelled if the amount due now is not paid in time. If anything fails part-way the slot is released and nothing is charged. Retrying with the same draftId never creates a second order. track_order follows the order by orderCode.
Annotations the server declares
- title: Place a drafted pre-order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
quote_deliveryThe delivery fee, distance and estimated delivery time from one venue to an address or a saved location, with no cart: a quick way to compare venues before building an order.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The delivery fee, distance and estimated delivery time from one venue to an address or a saved location, with no cart: a quick way to compare venues before building an order. The figure is the same one a draft order then shows. Also says whether the address is inside the venue's delivery area and whether the venue is open now. Needs a connected WaitApp account.
Annotations the server declares
- title: Quote delivery to an address
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
rate_orderLeave a rating for the connected person's own DELIVERED order: food quality, delivery speed and packaging, each 1 to 5, an optional short comment, and optionally a rating for the r…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Leave a rating for the connected person's own DELIVERED order: food quality, delivery speed and packaging, each 1 to 5, an optional short comment, and optionally a rating for the rider. One rating per order; a repeat returns the existing one. The scores are the person's own. If the connection is set to confirm each decision, the first call returns the scores and submits nothing until a call with confirmed: true.
Annotations the server declares
- title: Rate a delivered order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
save_locationSaves a delivery location to the connected person's WaitApp account under a label such as Home or Work, so later orders can use it.No findings
Why it is in this group
- The name "save_location" says "save": a word for a change.
Description, as the server wrote it Saves a delivery location to the connected person's WaitApp account under a label such as Home or Work, so later orders can use it. Saving a label the person already has updates that location. Up to 10 can be saved. Notes are for the rider, for example a gate code, floor or landmark.
Annotations the server declares
- title: Save a delivery location
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
track_orderHow an order is going, for the connected person's own order: for a delivery, the stage, minutes remaining, how far the rider is from the drop-off (km) and the rider's first name; f…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it How an order is going, for the connected person's own order: for a delivery, the stage, minutes remaining, how far the rider is from the drop-off (km) and the rider's first name; for a scheduled pre-order, its time slot, ready time (in the venue's local time) and what is due in advance; for other orders, the status. The rider's phone number and exact location are never returned.
Annotations the server declares
- title: Track an order
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 13Claude Code: allow
check_booking_statusLooks up the status of a booking or order by its code: the bookingCode or orderCode returned when it was placed (for example WA-K4M2), for a table, stay, service or delivery reques…No findings
Why it is in this group
- The name "check_booking_status" says "status": a word for reading.
Description, as the server wrote it Looks up the status of a booking or order by its code: the bookingCode or orderCode returned when it was placed (for example WA-K4M2), for a table, stay, service or delivery request, or a pre-order. It needs the restaurantId it was placed at and the phone number it was made with; no sign-in is needed. Returns the status (pending means the venue has not responded yet) and the key details of the booking or order.
Annotations the server declares
- title: Check booking or order status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_connection_permissionsWhat the person allowed this connection to do on their behalf: whether delivery orders, cancellations and ratings go through immediately (full control, within the limits they set) …No findings
Why it is in this group
- The name "get_connection_permissions" says "get": a word for reading.
Description, as the server wrote it What the person allowed this connection to do on their behalf: whether delivery orders, cancellations and ratings go through immediately (full control, within the limits they set) or are returned for their agreement first (confirm each decision), plus the limits and what is left today. Also says whether a WaitApp account is connected.
Annotations the server declares
- title: Check what this connection may do
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_payment_linkReturns the link to WaitApp's payment page for one of the connected person's own orders that still has an amount to pay now (an order placed with online payment, or a pre-order wit…No findings
Why it is in this group
- The name "get_payment_link" says "get": a word for reading.
Description, as the server wrote it Returns the link to WaitApp's payment page for one of the connected person's own orders that still has an amount to pay now (an order placed with online payment, or a pre-order with a deposit). The person opens the link, sees the exact charge, and pays it themselves; this tool charges nothing and sends no payment prompt. Find the order by orderCode (with restaurantId if the same code exists at two venues) or by orderId from list_my_orders.
Annotations the server declares
- title: Get the payment link for an order
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_ticket_checkout_linkReturns the link to WaitApp's ticket checkout page for an event, with the chosen ticket type and quantity filled in.No findings
Why it is in this group
- The name "get_ticket_checkout_link" says "get": a word for reading.
Description, as the server wrote it Returns the link to WaitApp's ticket checkout page for an event, with the chosen ticket type and quantity filled in. The guest opens it, sees the exact price, and buys the tickets themselves; this tool charges nothing and sends no payment prompt. check_event_availability shows what is left and the ticket types (tierId).
Annotations the server declares
- title: Get the ticket checkout link for an event
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_eventsList upcoming, published events (ticketed or free) for a venue, or across all venues if restaurantId is omitted.No findings
Why it is in this group
- The name "list_events" says "list": a word for reading.
Description, as the server wrote it List upcoming, published events (ticketed or free) for a venue, or across all venues if restaurantId is omitted.
Annotations the server declares
- title: List events
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_my_ordersThe connected person's own order history at WaitApp venues, newest first.No findings
Why it is in this group
- The name "list_my_orders" says "list": a word for reading.
Description, as the server wrote it The connected person's own order history at WaitApp venues, newest first. Each order has its venue, code, status, total, type, when it was placed and what was ordered: every item with its quantity, price and chosen choices. Items carry menuItemId and selectedOptions in the form draft_delivery_order accepts. Deliveries also show the address, delivery fee and stage. A kitchen and a bar order placed together are one entry. Filter by venue, status, text (an item or venue name) or date, and page back with nextBefore. Only this person's own orders are returned.
Annotations the server declares
- title: List my orders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_preorder_slotsFor venues that take scheduled pre-orders (bakeries, caterers; list_menu_items marks their items soldAheadOnly): the dates and times an order can be booked for.No findings
Why it is in this group
- The name "list_preorder_slots" says "list": a word for reading.
Description, as the server wrote it For venues that take scheduled pre-orders (bakeries, caterers; list_menu_items marks their items soldAheadOnly): the dates and times an order can be booked for. Pass the items the guest wants (menuItemId and quantity) so each slot is checked against them: lead time (a cake may need days of notice), items not sold on some days, per-slot limits and capacity. First states the venue's schedule in plain words (schedule: e.g. weekdays, order by 08:00, ready at 11:00; weekends only; every day), so you can describe the pattern to the guest, then lists bookable slots soonest first, each with slotInstanceId, when it will be ready (readyAtLocal), the last moment to order (orderByLocal), places left, and payment terms where a deposit or full payment is required; plus unavailable slots with the reason. method is pickup or delivery.
Annotations the server declares
- title: List pre-order time slots
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_room_typesList a venue's bookable room/facility catalog (only entries visible to customers).No findings
Why it is in this group
- The name "list_room_types" says "list": a word for reading.
Description, as the server wrote it List a venue's bookable room/facility catalog (only entries visible to customers). Use search_venues first to find the restaurantId.
Annotations the server declares
- title: List rooms and services
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_saved_locationsThe connected person's saved delivery locations, such as Home and Work: label, address, notes for the rider, and which one is their default.No findings
Why it is in this group
- The name "list_saved_locations" says "list": a word for reading.
Description, as the server wrote it The connected person's saved delivery locations, such as Home and Work: label, address, notes for the rider, and which one is their default. Pass a location's id as savedLocationId to draft_delivery_order or place_delivery_order instead of typing an address. Only ever shows this person's own.
Annotations the server declares
- title: List my saved locations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_venuesSearch WaitApp venues (restaurants, hotels, lodges) by name, city and/or country, and filter them: takesDelivery, venueType (restaurant, hotel, event_organizer, ...) and openNow.No findings
Why it is in this group
- The name "search_venues" says "search": a word for reading.
Description, as the server wrote it Search WaitApp venues (restaurants, hotels, lodges) by name, city and/or country, and filter them: takesDelivery, venueType (restaurant, hotel, event_organizer, ...) and openNow. Empty query lists venues. Name matching is forgiving (case, '&' vs 'and', small typos); if nothing matches closely, the closest names come back as didYouMean. Each venue says what it supports (delivery, table reservations, stays), whether it is open now and on what basis (openNowBasis: the venue's own switch, its opening hours, or no hours set so assumed open), when it next opens if closed (opensAt), and its hours in words (hoursSummary) and per day (openingHours). With a saved location (savedLocationId) or coordinates (nearLat and nearLng), each venue carries its straight-line distance and venues come back nearest first; with neither, the connected person's default saved location is used when they have one (sortedBy says so). For the delivery fee to an address use quote_delivery. Each venue includes its city and countryCode: venue names repeat across countries. To find who sells a dish, use search_menu.
Annotations the server declares
- title: Search venues
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
view_photosOPTIONAL.No findings
Why it is in this group
- The name "view_photos" says "view": a word for reading.
Description, as the server wrote it OPTIONAL. Fetch a small version of the actual photo(s) of a menu item, room/facility type, event or venue so you can look at them and describe them to the guest. Meant for when the guest asks what something looks like. To just show a picture, the imageUrl / photos / coverImageUrl links in the other tools are enough. Returns up to 3 images (resized small) or a note that none exist. Use the id from list_menu_items, list_room_types, list_events or search_venues.
Annotations the server declares
- title: View photos
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http waitapp https://waitapp.online/api/mcp/Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__waitapp__search_venues",
"mcp__waitapp__search_menu",
"mcp__waitapp__list_room_types",
"mcp__waitapp__list_events",
"mcp__waitapp__check_booking_status",
"mcp__waitapp__list_my_orders",
"mcp__waitapp__get_payment_link",
"mcp__waitapp__get_ticket_checkout_link",
"mcp__waitapp__list_saved_locations",
"mcp__waitapp__get_connection_permissions",
"mcp__waitapp__view_photos",
"mcp__waitapp__list_preorder_slots",
"mcp__waitapp__list_menu_items"
],
"ask": [
"mcp__waitapp__quote_delivery",
"mcp__waitapp__check_room_availability",
"mcp__waitapp__book_room",
"mcp__waitapp__check_event_availability",
"mcp__waitapp__draft_delivery_order",
"mcp__waitapp__place_delivery_order",
"mcp__waitapp__confirm_delivery_order",
"mcp__waitapp__book_reservation",
"mcp__waitapp__check_service_availability",
"mcp__waitapp__book_service",
"mcp__waitapp__track_order",
"mcp__waitapp__rate_order",
"mcp__waitapp__save_location",
"mcp__waitapp__draft_preorder",
"mcp__waitapp__place_preorder"
],
"deny": [
"mcp__waitapp__cancel_order",
"mcp__waitapp__delete_saved_location"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as waitapp. Review it before you use it.