{"apiVersion":"v1","directorySlug":"waitry-mcp-c02cbdc992","title":"Waitry","description":null,"pageUrl":"https://www.mcpbundles.com/skills/waitry-mcp-c02cbdc992","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.waitry.ai/mcp","hostedMcpUrl":null,"toolCount":128,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"ai.waitry/waitry-mcp-c02cbdc992","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"orders_get","description":"Get the full details of one order — items, totals, customer info, timestamps, and current status. Use when you already have the order ID and need the complete ticket (\"what exactly did table 12 order?\").","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get","displayName":"orders_get","title":"orders_get"},{"name":"orders_list_pending","description":"List orders that are open RIGHT NOW (live service) — shortcut for orders_list with status=open. Answers \"which tickets are still pending?\" during service; for past periods use orders_list with a date range.","inputSchema":{"type":"object","properties":{"rows":{"type":"number","default":20},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_list_pending","displayName":"orders_list_pending","title":"orders_list_pending"},{"name":"orders_list_by_table","description":"List the live orders for a specific table, by table ID or table name/number search. Answers \"what has table 5 ordered?\" during service; for a table's past history use orders_list.","inputSchema":{"type":"object","properties":{"rows":{"type":"number","default":20},"search":{"type":"string"},"place_id":{"type":"string"},"table_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_list_by_table","displayName":"orders_list_by_table","title":"orders_list_by_table"},{"name":"orders_accept","description":"Accept an incoming order — moves the ticket from pending to confirmed and notifies the customer. First lifecycle stage; mutates live service, so confirm with the user before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_accept","displayName":"orders_accept","title":"orders_accept","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_reject","description":"Reject an incoming (still pending) order and notify the customer. Use when the venue cannot fulfill it (closed, item 86'd, out of range). Mutates live service — confirm before calling; for orders already in progress use orders_cancel.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_reject","displayName":"orders_reject","title":"orders_reject","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_start_cooking","description":"Fire the ticket to the kitchen — marks the order as cooking. Updates the kitchen display and customer tracking in real time. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_start_cooking","displayName":"orders_start_cooking","title":"orders_start_cooking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_finish_cooking","description":"Mark an order as finished cooking and ready at the pass for pickup/serving. Triggers the kitchen-to-service handoff notification. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_finish_cooking","displayName":"orders_finish_cooking","title":"orders_finish_cooking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_serve","description":"Mark an order as served/delivered to the guest — the stage right before closing for dine-in tickets. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_serve","displayName":"orders_serve","title":"orders_serve","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_close","description":"Close a completed order and finalize billing — the final lifecycle stage, run after payment is confirmed. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_close","displayName":"orders_close","title":"orders_close","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_cancel","description":"Cancel an active order at any lifecycle stage (void); triggers the refund process if payment was taken. Destructive and mutates live service — always confirm before calling. Prefer orders_reject for orders still pending acceptance.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_cancel","displayName":"orders_cancel","title":"orders_cancel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_add_note","description":"Add an internal staff note to an order (e.g. \"allergy — no nuts\", \"VIP guest\"). Visible to staff only, never to the customer.","inputSchema":{"type":"object","required":["id","note","place_id"],"properties":{"id":{"type":"string"},"note":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_add_note","displayName":"orders_add_note","title":"orders_add_note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_discount","description":"Apply a pre-configured discount to an order (promo, staff discount, comp scenario). Changes the order total on a live ticket — confirm with the user before calling.","inputSchema":{"type":"object","required":["order_id","discount_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"},"discount_id":{"type":"string"}}},"logicalName":"orders_set_discount","displayName":"orders_set_discount","title":"orders_set_discount","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_client_name","description":"Set or update the customer name shown on an order ticket. Use to fix a misspelled name or label an anonymous walk-in/pickup order.","inputSchema":{"type":"object","required":["order_id","client_name","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"},"client_name":{"type":"string"}}},"logicalName":"orders_set_client_name","displayName":"orders_set_client_name","title":"orders_set_client_name","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_urgent","description":"Flag (or unflag) an order as urgent so its ticket jumps to the top of the kitchen display. Use when a ticket is running long and the kitchen should fire it first.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"urgent":{"type":"boolean"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_set_urgent","displayName":"orders_set_urgent","title":"orders_set_urgent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_priority","description":"Set a numeric priority level for an order on the kitchen display. Use for fine-grained ticket sequencing beyond the simple urgent flag (orders_set_urgent).","inputSchema":{"type":"object","required":["order_id","priority","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"},"priority":{"type":"number"}}},"logicalName":"orders_set_priority","displayName":"orders_set_priority","title":"orders_set_priority","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_packaged","description":"Mark a delivery/takeaway order as packaged and ready for handoff to the rider or customer. Mutates live service state.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"packaged":{"type":"boolean"},"place_id":{"type":"string"}}},"logicalName":"orders_set_packaged","displayName":"orders_set_packaged","title":"orders_set_packaged","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_list_payment_types","description":"List the payment methods configured for a venue (cash, card, QR, digital wallets). Use to get valid payment type IDs before recording a payment or marking an order as paid.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_list_payment_types","displayName":"orders_list_payment_types","title":"orders_list_payment_types"},{"name":"orders_list_pos","description":"List the point-of-sale terminals configured for a venue. Use to get a point_sale_id before opening a cash register shift or attributing sales to a terminal.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_list_pos","displayName":"orders_list_pos","title":"orders_list_pos"},{"name":"orders_get_paids","description":"Get every payment recorded against an order — amounts, methods, and timestamps. Use to check whether a ticket is fully or partially paid (\"does table 8 still owe anything?\").","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_paids","displayName":"orders_get_paids","title":"orders_get_paids"},{"name":"orders_get_invoice","description":"Get the generated invoice or fiscal document for a specific order. Returns invoice number, line items, taxes, and payment details. Use for accounting and customer receipt requests.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_invoice","displayName":"orders_get_invoice","title":"orders_get_invoice"},{"name":"orders_get_invoice_pdf","description":"Get the downloadable PDF URL for an order's invoice/fiscal document. Use when the customer or the accountant needs the printable receipt.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_invoice_pdf","displayName":"orders_get_invoice_pdf","title":"orders_get_invoice_pdf"},{"name":"orders_cancel_invoice","description":"Cancel/void the fiscal invoice issued for an order (e.g. wrong tax data or amount). Fiscal operation — confirm before calling; the order itself stays active.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_cancel_invoice","displayName":"orders_cancel_invoice","title":"orders_cancel_invoice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_batch_summary","description":"Get a real-time snapshot of pending, accepted, and rejected order counts across all stores in the brand. Answers \"how is every store doing RIGHT NOW?\"; for historical counts use orders_list with a date range.","inputSchema":{"type":"object","required":["place_ids"],"properties":{"place_ids":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_batch_summary","displayName":"orders_batch_summary","title":"orders_batch_summary"},{"name":"orders_batch_list_status","description":"Search for orders with a specific status across multiple venues at once. Use for crisis management or auditing (\"which stores are rejecting orders right now?\").","inputSchema":{"type":"object","required":["place_ids","status"],"properties":{"status":{"type":"string"},"place_ids":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_batch_list_status","displayName":"orders_batch_list_status","title":"orders_batch_list_status"},{"name":"orders_get_items","description":"List the individual line items of an order with quantities and prices. Use when only the items are needed and a full orders_get would be overkill.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_items","displayName":"orders_get_items","title":"orders_get_items"},{"name":"orders_set_order_note","description":"Set a staff-visible note on an order (service instructions, allergy warnings, special requests). The customer never sees it.","inputSchema":{"type":"object","required":["order_id","place_id","note"],"properties":{"note":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_set_order_note","displayName":"orders_set_order_note","title":"orders_set_order_note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_delete_order_note","description":"Delete a previously added staff note from an order (e.g. it is outdated or was added to the wrong ticket).","inputSchema":{"type":"object","required":["order_id","place_id","note_id"],"properties":{"note_id":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_delete_order_note","displayName":"orders_delete_order_note","title":"orders_delete_order_note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_mark_as_paid","description":"Manually mark an order as paid outside the normal payment flow (e.g. settled in cash at the counter). Affects shift reconciliation totals — confirm before calling.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"},"payment_type_id":{"type":"string"}}},"logicalName":"orders_mark_as_paid","displayName":"orders_mark_as_paid","title":"orders_mark_as_paid","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_get_actions","description":"Get the full audit trail of an order — every status change, who performed it, and when. Use to investigate service issues (\"why did this ticket take 40 minutes?\") or staff accountability questions.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_actions","displayName":"orders_get_actions","title":"orders_get_actions"},{"name":"orders_checkout","description":"Move an order into checkout state — the bill has been requested and the ticket is ready for payment. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_checkout","displayName":"orders_checkout","title":"orders_checkout","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_packaging","description":"Flag a delivery/takeaway order as in-packaging (being boxed). Fulfillment stage between finished cooking and shipping. Mutates live service.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_set_packaging","displayName":"orders_set_packaging","title":"orders_set_packaging","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_set_shipping","description":"Mark an order as shipped/out for delivery — the customer sees delivery-in-progress tracking. Fulfillment stage after packaging. Mutates live service.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_set_shipping","displayName":"orders_set_shipping","title":"orders_set_shipping","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_export","description":"Export bulk order data for a venue over a date range (for spreadsheets/BI). Historical tool — for interactive questions prefer orders_list.","inputSchema":{"type":"object","required":["place_id"],"properties":{"to":{"type":"string"},"from":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_export","displayName":"orders_export","title":"orders_export"},{"name":"orders_get_live_tables","description":"Get the live floor view of which tables currently have active orders. Live-state tool — reflects RIGHT NOW, not history; for the full occupancy map use live_get_tables, for past periods use orders_list.","inputSchema":{"type":"object","required":["place_id","layout_id"],"properties":{"place_id":{"type":"string"},"layout_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_live_tables","displayName":"orders_get_live_tables","title":"orders_get_live_tables"},{"name":"orders_get_abandoned_carts","description":"Get abandoned cart data — orders that were started but not completed. Use when the user asks about abandoned carts, incomplete orders, or cart drop-off analysis.","inputSchema":{"type":"object","required":["place_id"],"properties":{"to":{"type":"string"},"from":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_abandoned_carts","displayName":"orders_get_abandoned_carts","title":"orders_get_abandoned_carts"},{"name":"orders_get_order_status","description":"Get the current status of a specific order, including timeline of status changes. Use when checking an order's current state or tracking its progress through the pipeline.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_order_status","displayName":"orders_get_order_status","title":"orders_get_order_status"},{"name":"orders_revise","description":"Revise an order — modify items or quantities on an existing live order (add/remove items, change quantities). Mutates a live ticket — confirm the exact changes with the user before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"items":{"type":"array","items":{"type":"object"}},"place_id":{"type":"string"}}},"logicalName":"orders_revise","displayName":"orders_revise","title":"orders_revise","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_send_notice","description":"Send a notification/notice to the customer about their order (e.g., ready for pickup, delayed). Use when the venue needs to communicate order updates to the customer.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"message":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_send_notice","displayName":"orders_send_notice","title":"orders_send_notice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"orders_get_admin_users","description":"Get admin/staff users associated with orders. Shows which staff members handled which orders. Use for operational accountability or staff performance analysis.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"orders_get_admin_users","displayName":"orders_get_admin_users","title":"orders_get_admin_users"},{"name":"orders_release_holded","description":"Release a held order back to the active queue. Use when an order was put on hold and needs to be released for processing.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"orders_release_holded","displayName":"orders_release_holded","title":"orders_release_holded","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_accept","description":"Accept a pending order — confirms it to the kitchen and notifies the customer. First lifecycle stage for orders requiring manual acceptance. Mutates live service — confirm before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_accept","displayName":"live_order_accept","title":"live_order_accept","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_reject","description":"Reject a pending order — notifies the customer and releases the table lock. Destructive live-service action — confirm before calling; provide a reason the customer will see.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"reason":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_reject","displayName":"live_order_reject","title":"live_order_reject","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_cancel","description":"Cancel an in-progress order (void) from the restaurant side. Triggers a refund if payment was taken. Destructive — always confirm with the user before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"reason":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_cancel","displayName":"live_order_cancel","title":"live_order_cancel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_close","description":"Close/complete an order — marks it as fully served and settled. Final lifecycle stage; mutates live service — confirm payment is done before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_close","displayName":"live_order_close","title":"live_order_close","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_serve","description":"Mark an order as served — all items delivered to the table. Triggers service-time KPI recording.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_serve","displayName":"live_order_serve","title":"live_order_serve","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_pay","description":"Mark an order as paid — records the payment and triggers fiscal/receipt generation. Affects billing and shift reconciliation — confirm amount and method before calling.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"},"payment_type":{"type":"string"}}},"logicalName":"live_order_pay","displayName":"live_order_pay","title":"live_order_pay","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_start_cooking","description":"Mark an order as started cooking in the kitchen. Records start time for kitchen KPIs.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_start_cooking","displayName":"live_order_start_cooking","title":"live_order_start_cooking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_finish_cooking","description":"Mark an order as finished cooking — ready for serving. Records kitchen completion time.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_finish_cooking","displayName":"live_order_finish_cooking","title":"live_order_finish_cooking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_change_table","description":"Move an active order from one table to another. Handles all session and billing re-assignments automatically.","inputSchema":{"type":"object","required":["id","table_id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"},"table_id":{"type":"string"}}},"logicalName":"live_order_change_table","displayName":"live_order_change_table","title":"live_order_change_table","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_get_items","description":"Get all items/dishes in a specific order with their status (pending, cooking, served, cancelled).","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_get_items","displayName":"live_order_get_items","title":"live_order_get_items"},{"name":"live_order_get_users","description":"Get all users/diners associated with an order (for group/shared table orders).","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_get_users","displayName":"live_order_get_users","title":"live_order_get_users"},{"name":"live_order_by_waiter","description":"Get all active orders assigned to or taken by a specific waiter. Essential for waiter performance tracking and section management.","inputSchema":{"type":"object","required":["waiter_id","place_id"],"properties":{"place_id":{"type":"string"},"waiter_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_by_waiter","displayName":"live_order_by_waiter","title":"live_order_by_waiter"},{"name":"live_order_light_search","description":"Lightweight order search by customer name, table, or order number. Faster than full search — use for quick lookup during service.","inputSchema":{"type":"object","required":["place_id","query"],"properties":{"query":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_light_search","displayName":"live_order_light_search","title":"live_order_light_search"},{"name":"live_order_send_notice","description":"Send a custom notice/message to a customer at their table (e.g. \"Your food is coming soon!\", \"Please come to the bar to collect your order\").","inputSchema":{"type":"object","required":["id","place_id","message"],"properties":{"id":{"type":"string"},"message":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_send_notice","displayName":"live_order_send_notice","title":"live_order_send_notice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_assign_rider","description":"Assign a delivery rider to a delivery order. Required for delivery channel orders before dispatch.","inputSchema":{"type":"object","required":["id","rider_id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"},"rider_id":{"type":"string"}}},"logicalName":"live_order_assign_rider","displayName":"live_order_assign_rider","title":"live_order_assign_rider","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_track_time","description":"Track a time event for an order (e.g. \"order placed\", \"kitchen start\", \"rider picked up\"). Used for SLA monitoring and customer communication.","inputSchema":{"type":"object","required":["id","place_id","event"],"properties":{"id":{"type":"string"},"event":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_track_time","displayName":"live_order_track_time","title":"live_order_track_time"},{"name":"live_order_set_service_charge","description":"Set the service charge/tip count for an order. Used to calculate staff gratuity distribution at the end of shift.","inputSchema":{"type":"object","required":["id","place_id","count"],"properties":{"id":{"type":"string"},"count":{"type":"number"},"place_id":{"type":"string"}}},"logicalName":"live_order_set_service_charge","displayName":"live_order_set_service_charge","title":"live_order_set_service_charge","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_end_inactive","description":"End/close all inactive sessions that have not had activity for a specified duration. Use for automatic table cleanup at end of service.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"},"minutes_inactive":{"type":"number","default":120}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_end_inactive","displayName":"live_order_end_inactive","title":"live_order_end_inactive"},{"name":"live_order_add_item_delivered","description":"Mark a specific item within an order as delivered to the table. Enables item-level delivery tracking for multi-course service.","inputSchema":{"type":"object","required":["order_id","item_id","place_id"],"properties":{"item_id":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_add_item_delivered","displayName":"live_order_add_item_delivered","title":"live_order_add_item_delivered","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_auto_status","description":"Trigger automatic status progression for an order based on business rules (e.g. auto-accept after timeout). Used by scheduled jobs and automation.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_auto_status","displayName":"live_order_auto_status","title":"live_order_auto_status"},{"name":"live_order_set_user_address","description":"Assign a delivery address to a live delivery order. Must be called before dispatching a delivery.","inputSchema":{"type":"object","required":["order_id","address_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"},"address_id":{"type":"string"}}},"logicalName":"live_order_set_user_address","displayName":"live_order_set_user_address","title":"live_order_set_user_address","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_get_rider_assigned","description":"Get the rider currently assigned to a delivery order.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_get_rider_assigned","displayName":"live_order_get_rider_assigned","title":"live_order_get_rider_assigned"},{"name":"live_order_visitor_confirm","description":"Visitor-side order confirmation — used when a non-authenticated customer needs to confirm their order via PIN or token.","inputSchema":{"type":"object","required":["order_id","token"],"properties":{"token":{"type":"string"},"order_id":{"type":"string"}}},"logicalName":"live_order_visitor_confirm","displayName":"live_order_visitor_confirm","title":"live_order_visitor_confirm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_control_previous_status","description":"Roll back an order to its previous status (undo a status transition). Use with care — for correcting accidental status advances.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_control_previous_status","displayName":"live_order_control_previous_status","title":"live_order_control_previous_status"},{"name":"live_order_get_delivery_charge","description":"Get the delivery charge applicable for an order based on address distance and venue settings.","inputSchema":{"type":"object","required":["place_id","address_id"],"properties":{"place_id":{"type":"string"},"address_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_get_delivery_charge","displayName":"live_order_get_delivery_charge","title":"live_order_get_delivery_charge"},{"name":"live_order_cancel_external","description":"Cancel an order that originated from an external delivery platform (Glovo, Uber Eats, etc.). Sends cancellation back to the aggregator.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"reason":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_cancel_external","displayName":"live_order_cancel_external","title":"live_order_cancel_external","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_update_external","description":"Update an order's status back to an external aggregator platform (e.g. notify Uber Eats that food is ready).","inputSchema":{"type":"object","required":["order_id","status","place_id"],"properties":{"status":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_update_external","displayName":"live_order_update_external","title":"live_order_update_external","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_reject_attached","description":"Reject an attached sub-order (e.g. a companion order added to a table session by a different user).","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"reason":{"type":"string"},"order_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"live_order_reject_attached","displayName":"live_order_reject_attached","title":"live_order_reject_attached","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_visitor_confirm_attached","description":"Visitor-side confirmation of an attached sub-order (when a guest accepts joining their order to an existing table session). Public endpoint — no auth required.","inputSchema":{"type":"object","required":["order_id","token"],"properties":{"token":{"type":"string"},"order_id":{"type":"string"}}},"logicalName":"live_order_visitor_confirm_attached","displayName":"live_order_visitor_confirm_attached","title":"live_order_visitor_confirm_attached","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"live_order_place_to_aggregator","description":"Forward/relay a Waitry order to a connected delivery aggregator (OneInterface) for dispatch.","inputSchema":{"type":"object","required":["order_id","place_id"],"properties":{"order_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"live_order_place_to_aggregator","displayName":"live_order_place_to_aggregator","title":"live_order_place_to_aggregator"},{"name":"live_order_emit_event","description":"Emit a custom live order event (for integrations, automation triggers, and real-time dashboard notifications).","inputSchema":{"type":"object","required":["order_id","event_type"],"properties":{"payload":{"type":"object"},"order_id":{"type":"string"},"event_type":{"type":"string"}}},"logicalName":"live_order_emit_event","displayName":"live_order_emit_event","title":"live_order_emit_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_get_stock","description":"Get current stock levels for every item in a venue (id, name, SKU, stock, active flag). Use to answer \"what is low or sold out (86ed) right now?\" or to audit stock before service. Requires STOCK_CONTROL enabled.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_get_stock","displayName":"menu_get_stock","title":"menu_get_stock"},{"name":"menu_get_categories","description":"List all menu categories for a venue with their ids, names, and status. Use as the first step before creating items (to pick a category_id) or to review menu structure.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_get_categories","displayName":"menu_get_categories","title":"menu_get_categories"},{"name":"menu_get_ingredients","description":"Get all ingredients for a venue with cost and stock data — the base for COGS tracking, recipe costing (food cost % = ingredient cost / menu price), and low-stock alerts.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_get_ingredients","displayName":"menu_get_ingredients","title":"menu_get_ingredients"},{"name":"menu_get_allergens","description":"Get all allergen types available for tagging menu items (e.g., gluten, dairy, nuts) — required for compliance labeling","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_get_allergens","displayName":"menu_get_allergens","title":"menu_get_allergens"},{"name":"menu_manage_pricelists","description":"List the price lists configured for a venue. Price lists override default item prices per context (happy hour, delivery, take-away, group rates). Use to answer \"what special pricing do we run?\" before editing with menu_pricelist_set.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_manage_pricelists","displayName":"menu_manage_pricelists","title":"menu_manage_pricelists"},{"name":"menu_delete_pricelist","description":"Permanently delete a custom pricelist from a venue. Irreversible — confirm before calling","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_delete_pricelist","displayName":"menu_delete_pricelist","title":"menu_delete_pricelist","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_delete_item","description":"Permanently delete a menu item and all its variants. Irreversible — use menu_save_item with status:disabled to hide instead","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_delete_item","displayName":"menu_delete_item","title":"menu_delete_item","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_sync","description":"Pull the product catalog from the venue's connected POS system into Waitry (full menu import, forcing variation sync). Use after products change in the POS and the digital menu looks stale. Can overwrite local menu edits — confirm with the user before running; check progress with menu_sync_status.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"logicalName":"menu_sync","displayName":"menu_sync","title":"menu_sync","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_create","description":"Create a new menu (a menu is the top-level entity that contains menu categories and items).","inputSchema":{"type":"object","required":["place_id","name"],"properties":{"name":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_create","displayName":"menu_create","title":"menu_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_update","description":"Update a menu name, description, or settings.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_update","displayName":"menu_update","title":"menu_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_enable","description":"Enable (publish) a menu, making it visible to customers.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_enable","displayName":"menu_enable","title":"menu_enable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_disable","description":"Disable (unpublish) a menu, hiding it from customers.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_disable","displayName":"menu_disable","title":"menu_disable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_save","description":"Create or update a menu category (link a category to a menu).","inputSchema":{"type":"object","required":["place_id","menu_id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"menu_id":{"type":"string"},"place_id":{"type":"string"},"category_id":{"type":"string"}}},"logicalName":"menu_category_save","displayName":"menu_category_save","title":"menu_category_save","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_unlink","description":"Remove a category from a menu, leaving the category record itself intact so it can be re-added or used on another menu. To delete the category permanently instead, use menu_category_delete.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_category_unlink","displayName":"menu_category_unlink","title":"menu_category_unlink","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_item_list","description":"List the items placed in one menu category, with link ids, positions, and per-menu prices. Use to inspect or reorganize a single section of the menu.","inputSchema":{"type":"object","required":["place_id","menu_category_id"],"properties":{"place_id":{"type":"string"},"menu_category_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_category_item_list","displayName":"menu_category_item_list","title":"menu_category_item_list"},{"name":"menu_category_item_delete","description":"Remove an item from a menu category.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_category_item_delete","displayName":"menu_category_item_delete","title":"menu_category_item_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_upselling_list","description":"List upselling rules — \"goes well with\" suggestions shown when a customer adds an item to their cart (e.g. fries suggested with a burger). Use to audit which items drive add-on revenue.","inputSchema":{"type":"object","required":["place_id"],"properties":{"item_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_upselling_list","displayName":"menu_upselling_list","title":"menu_upselling_list"},{"name":"menu_upselling_delete","description":"Delete an upselling rule so the suggestion no longer appears at checkout. Does not affect the items themselves.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_upselling_delete","displayName":"menu_upselling_delete","title":"menu_upselling_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_combo_list","description":"List combo conversion rules — bundles that combine multiple items into one priced offer (meal deals, \"menu del dia\"). Combos bundle separate items; variations only modify a single item. Use to audit bundle pricing vs. discount promos.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_combo_list","displayName":"menu_combo_list","title":"menu_combo_list"},{"name":"menu_combo_eligible","description":"Check whether ONE menu item can be turned into a combo (bundle), and what it could bundle with. Call before creating a combo conversion rule with menu_combo_save.","inputSchema":{"type":"object","required":["place_id","item_id"],"properties":{"item_id":{"type":"string"},"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_combo_eligible","displayName":"menu_combo_eligible","title":"menu_combo_eligible"},{"name":"menu_combo_delete","description":"Delete a combo conversion rule — the bundle offer disappears but the underlying items remain on the menu.","inputSchema":{"type":"object","required":["id","place_id"],"properties":{"id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_combo_delete","displayName":"menu_combo_delete","title":"menu_combo_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_combo_sync","description":"Push ONE item's combo conversion rules to the venue's connected POS so its bundles ring up correctly there. Run after creating or editing that item's combos.","inputSchema":{"type":"object","required":["place_id","item_id"],"properties":{"item_id":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_combo_sync","displayName":"menu_combo_sync","title":"menu_combo_sync","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_sync_status","description":"Get the current POS menu synchronization status (in progress, finished, failed). Check this after triggering menu_sync or when the digital menu seems out of date with the POS.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_sync_status","displayName":"menu_sync_status","title":"menu_sync_status"},{"name":"menu_allergen_create","description":"Create a new allergen definition (e.g. Sesame, Sulphites) that can then be tagged on items for allergen compliance labeling on the customer-facing menu.","inputSchema":{"type":"object","required":["place_id","name"],"properties":{"icon":{"type":"string"},"name":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_allergen_create","displayName":"menu_allergen_create","title":"menu_allergen_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_allergen_update","description":"Rename an allergen definition or change its icon. The change propagates to every item tagged with it — relevant for allergen compliance labeling.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"icon":{"type":"string"},"name":{"type":"string"}}},"logicalName":"menu_allergen_update","displayName":"menu_allergen_update","title":"menu_allergen_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_allergen_delete","description":"Permanently delete an allergen definition — it disappears from every item tagged with it, which affects compliance disclosure. Confirm with the user before calling.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_allergen_delete","displayName":"menu_allergen_delete","title":"menu_allergen_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_get","description":"List all category records (id, name, status) for a venue. Use to find category IDs before creating, moving, or publishing categories.","inputSchema":{"type":"object","required":["place_id"],"properties":{"place_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_category_get","displayName":"menu_category_get","title":"menu_category_get"},{"name":"menu_category_create","description":"Create a new category record for a venue (e.g. \"Desserts\"). Categories are the sections customers browse — link it to a menu afterwards with menu_category_save.","inputSchema":{"type":"object","required":["place_id","name"],"properties":{"name":{"type":"string"},"place_id":{"type":"string"}}},"logicalName":"menu_category_create","displayName":"menu_category_create","title":"menu_category_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_update","description":"Rename a category or change its description. The new name shows immediately on the customer-facing menu.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"logicalName":"menu_category_update","displayName":"menu_category_update","title":"menu_category_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_delete","description":"Permanently delete a category record. Destructive — confirm with the user first; prefer menu_category_unpublish to just hide it from customers.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_category_delete","displayName":"menu_category_delete","title":"menu_category_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_publish","description":"Publish a menu category (make visible to customers).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_category_publish","displayName":"menu_category_publish","title":"menu_category_publish","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_category_unpublish","description":"Unpublish a menu category (hide from customers).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_category_unpublish","displayName":"menu_category_unpublish","title":"menu_category_unpublish","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategory_enable","description":"Enable a menu-category link, making that category section visible again inside its menu.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_menucategory_enable","displayName":"menu_menucategory_enable","title":"menu_menucategory_enable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategory_disable","description":"Disable a menu-category link, hiding that category section (and its items) from the menu without deleting anything.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_menucategory_disable","displayName":"menu_menucategory_disable","title":"menu_menucategory_disable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategory_update","description":"Update a menu-category link, mainly its position. Position controls the customer-facing display order of sections in the menu.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"position":{"type":"number"}}},"logicalName":"menu_menucategory_update","displayName":"menu_menucategory_update","title":"menu_menucategory_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategoryitem_create","description":"Place an existing item into a menu category so customers can order it from that section. The same item can appear in several categories.","inputSchema":{"type":"object","required":["menu_category_id","item_id"],"properties":{"item_id":{"type":"string"},"position":{"type":"number"},"menu_category_id":{"type":"string"}}},"logicalName":"menu_menucategoryitem_create","displayName":"menu_menucategoryitem_create","title":"menu_menucategoryitem_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategoryitem_get","description":"List the item links inside one menu category, with their link ids, positions, and status — use to find the link id needed by enable/disable/update/reorder tools.","inputSchema":{"type":"object","required":["menu_category_id"],"properties":{"menu_category_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"menu_menucategoryitem_get","displayName":"menu_menucategoryitem_get","title":"menu_menucategoryitem_get"},{"name":"menu_menucategoryitem_update","description":"Update an item's placement within a category: its display position and/or a category-specific price override (e.g. same dish priced differently on the lunch menu).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"price":{"type":"number"},"position":{"type":"number"}}},"logicalName":"menu_menucategoryitem_update","displayName":"menu_menucategoryitem_update","title":"menu_menucategoryitem_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategoryitem_enable","description":"Re-enable an item within a menu category so customers can order it again (un-86 it).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_menucategoryitem_enable","displayName":"menu_menucategoryitem_enable","title":"menu_menucategoryitem_enable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategoryitem_disable","description":"Disable an item within a menu category — hides it from ordering (86ing) without deleting the item or its data.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_menucategoryitem_disable","displayName":"menu_menucategoryitem_disable","title":"menu_menucategoryitem_disable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_menucategoryitem_set_points","description":"Set loyalty points for an item in a category.","inputSchema":{"type":"object","required":["id","points"],"properties":{"id":{"type":"string"},"points":{"type":"number"}}},"logicalName":"menu_menucategoryitem_set_points","displayName":"menu_menucategoryitem_set_points","title":"menu_menucategoryitem_set_points","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_variation_enable","description":"Enable a previously disabled menu item variation, making it available for ordering","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_variation_enable","displayName":"menu_variation_enable","title":"menu_variation_enable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"menu_variation_disable","description":"Disable a variation (modifier option) so customers can no longer select it — e.g. 86 \"Avocado\" as a topping when it runs out. Reversible via menu_variation_enable.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"menu_variation_disable","displayName":"menu_variation_disable","title":"menu_variation_disable","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Waitry&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aud2FpdHJ5LmFpL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Waitry%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.waitry.ai%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Waitry%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.waitry.ai%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Waitry&connectorUrl=https%3A%2F%2Fmcp.waitry.ai%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Waitry\" --url \"https://mcp.waitry.ai/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/waitry-mcp-c02cbdc992","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/waitry-mcp-c02cbdc992/tools/{tool}","mcpServerUrl":"https://mcp.waitry.ai/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/waitry-mcp-c02cbdc992?live=1"}