Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://mcp.paxaver.com
Certificate changed, valid to 2027-01-08
Authorization required, Bearer, issuer https://mcp.paxaver.com
Authorization required, Bearer, issuer https://paxaver.com/auth
Authorization not required → required, Bearer, issuer https://paxaver.com/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Added "archive_restaurant_menu_item", "cancel_my_event_registration", "cancel_my_lunch_order" and 22 more; removed "cancel_event", "cancel_order", "create_draft_order" and 17 more; changed the definition of "list_school_restaurants" (21 tools before, 26 now)
⟨19 unchanged words⟩ returned. The restaurant_id values returned are required bylist_menu_itemslist_restaurant_menu_items,create_menu_itemcreate_restaurant_menu_item,update_menu_itemupdate_restaurant_menu_item,delete_menu_itemarchive_restaurant_menu_item, andset_daily_menu.schedule_lunch_menu_item. Requires pac_cordinator, pac_member, or lunch_cordinator role.
Authorization not required, issuer https://paxaver.ca/auth
Added "cancel_event", "cancel_order", "create_draft_order" and 17 more; removed "archive_restaurant_menu_item", "cancel_my_event_registration", "cancel_my_lunch_order" and 22 more; changed the definition of "list_school_restaurants" (26 tools before, 21 now)
⟨19 unchanged words⟩ returned. The restaurant_id values returned are required bylist_restaurant_menu_itemslist_menu_items,create_restaurant_menu_itemcreate_menu_item,update_restaurant_menu_itemupdate_menu_item,archive_restaurant_menu_itemdelete_menu_item, andschedule_lunch_menu_item.set_daily_menu. Requires pac_cordinator, pac_member, or lunch_cordinator role.
Authorization not required, issuer https://paxaver.ca/auth
Recently observed → Live
Live → Recently observed
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Changed the definition of "list_my_lunch_orders" and "pay_lunch_order_draft"
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"GetList My Lunch Orders"}
⟨16 unchanged words⟩ tip_cents (donated to the school's PAC). Wallet-only: if the balance cannot cover the full total, the call fails with an error directing the user to open the Paxaver panel and top up the wallet balance, then retry - no card payment is offered through this tool. Not for new orders - use create_lunch_order_draft first. ⟨7 unchanged words⟩
Authorization not required, issuer https://paxaver.ca/auth
Added "archive_restaurant_menu_item", "cancel_my_event_registration", "cancel_my_lunch_order" and 22 more; removed "cancel_event", "cancel_event_registration", "cancel_order" and 23 more; changed the definition of "list_school_restaurants" (27 tools before, 26 now)
⟨19 unchanged words⟩ returned. The restaurant_id values returned are required bylist_menu_itemslist_restaurant_menu_items,create_menu_itemcreate_restaurant_menu_item,update_menu_itemupdate_restaurant_menu_item,delete_menu_itemarchive_restaurant_menu_item, andset_daily_menu.schedule_lunch_menu_item. Requires pac_cordinator, pac_member, or lunch_cordinator role.
Authorization not required, issuer https://paxaver.ca/auth
Verified owner set by github_owner proof on smartoire
Added "discard_draft_order" and "update_draft_order"; changed the definition of "create_draft_order" and "get_upcoming_events" (25 tools before, 27 now)
⟨60 unchanged words⟩ prices times quantities plus nothing else until finalize_order. To change or abandon the draft, use update_draft_order or discard_draft_order. FINANCIAL - confirm student, items, and date before calling.
⟨37 unchanged words⟩ use get_my_event_registrations / cancel_event_registration and get_my_volunteer_signups / cancel_volunteer_signup.Admins with coordinator roles additionally get create_event, update_event, and cancel_event for managing the events themselves.Optionally filter by date range.
Added "cancel_event_registration", "cancel_volunteer_signup", "get_my_event_registrations" and 1 more; changed the definition of "cancel_event", "cancel_order", "create_draft_order" and 9 more (21 tools before, 25 now)
⟨4 unchanged words⟩ ":{"description":"Event ID - fromget_upcoming_eventsget_upcoming_events; cancelling is permanent and cannot be undone","type":"string"}},"required": ⟨3 unchanged words⟩
{"additionalProperties":false,"properties":{"order_id":{"description":"OrderIDtoofcancel
Changed the definition of "list_school_restaurants" and "order_lunch"
ADMIN: Lists the active restaurants attached to a school (defaults to the active school),.includingInactiveinactiverestaurantsones.are not returned. The restaurant_id values returned are required by list_menu_items ⟨11 unchanged words⟩
{"properties":{"restaurants":{"description":"RestaurantsActive
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Changed the definition of "cancel_event", "cancel_order", "create_draft_order" and 18 more
before
—after
Cancel Event (Admin)ADMIN: Cancels a schoolevent.eventRequiresoutright;pac_cordinatorcancelledoreventsevent_cordinatorcannotrole.be
Added "get_menu"; removed "get_daily_menu", "get_daily_orders", "get_monthly_orders" and 2 more; changed the definition of "cancel_event", "cancel_order", "create_draft_order" and 12 more (25 tools before, 21 now)
⟨20 unchanged words⟩ user before cancelling. Cancelled events cannot be reactivated. Get event_id from get_upcoming_events.
{"additionalProperties":false,"properties":{"event_id":{"description":"Event ID — from get_upcoming_events","type":"string"}},"required":["event_id ⟨2 unchanged words⟩
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"
Changed the definition of "create_event", "create_menu_item", "create_restaurant" and 7 more
{"additionalProperties":false,"properties":{"description":{"description":"Optional event description","type":"string"},"ends_at":{"description":"End time (e.g. 20:00)","type":"string"},"event_date":{"description":"Event date, YYYY-MM-DD","type":"string"},"location":{"description":"Event location (e.g. Gymnasium)","type":"string"},"max_capacity":{"description":"Maximum attendees/tickets; omit for unlimited","type":"integer"},"name":{"description":"Event name shown to parents","type":"string"},"school_slug":{"description" ⟨6 unchanged words⟩ ","type":"string"},"starts_at":{"description":"Start time (e.g. 18:30)","type":"string"},"ticket_price_cents":{"description ⟨14 unchanged words⟩
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Authorization not required, issuer https://paxaver.ca/auth
Certificate recorded, valid to 2026-11-10
Authorization not required, issuer https://paxaver.ca/auth
First tool surface recorded: 25 tools (server version 2.4.1)
Showing the latest 54 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Archive Restaurant Menu Item (Admin) — ADMIN: Archives (soft-deletes) a menu item so it can no longer be ordered - the item is removed from ordering but stays on historical orders. To retire it from the restaurant menu without archiving, use update_restaurant_menu_item with is_active=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_restaurant_menu_items.
Cancel My Event Registration — Cancels one of the authenticated user's own event tickets (ticket_id from list_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Lunch Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Volunteer Signup — Cancels one of the authenticated user's own volunteer signups (signup_id from list_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel School Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_school_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from list_school_events.
Create Lunch Order Draft — Creates an unpaid draft lunch order with one or more items - nothing is charged until pay_lunch_order_draft commits it. Use for multi-item orders or when the user should review the total first; each items entry pairs a menu_item_id with a quantity. The draft total is the sum of item prices times quantities plus nothing else until pay_lunch_order_draft. To change or abandon the draft, use update_lunch_order_draft or discard_lunch_order_draft. FINANCIAL - confirm student, items, and date before calling.
Create Restaurant Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_restaurant_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create School Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_school_event; to register a parent for an event use register_for_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create School Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_restaurant_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Discard Lunch Order Draft — Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_lunch_order_draft). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_my_lunch_order instead. DESTRUCTIVE - confirm with the user before discarding.
Get Lunch Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity. Pass date for a single day or month for a per-day listing across the whole month (today if neither is given); if both are passed, date wins. The menu_item_id values returned are required by create_lunch_order_draft. For orders already placed, use list_my_lunch_orders.
Get My Context — Read-only lookup with no side effects - safe to call repeatedly. Requires authentication: returns only the caller's own context (never another user's data): first name, active school, the students they are a guardian for, and their role codes at that school. This is the context-discovery call - most other tools need a student_id or school_slug from here, and admin-role checks come from roles. Returns live account state, so call again if the user may have switched schools or had roles changed.
Get My Wallet Balance — Read-only lookup - never moves funds or has side effects. Requires authentication: returns only the caller's spendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before pay_lunch_order_draft or register_for_event to confirm the user can cover the charge; not needed for read-only lookups.
List My Event Registrations — Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_my_event_registration. Pair with list_school_events for events the user has not registered for.
List My Lunch Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students, newest first (up to ~100 most recent). Filters combine with AND: student_id narrows to one student; menu_date and month narrow the date range, and if both are given menu_date wins. With no filters returns recent orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_lunch_menu.
List My Volunteer Signups — Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_my_volunteer_signup.
List Restaurant Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_lunch_menu for that). Provides menu_item_id values for update_restaurant_menu_item, archive_restaurant_menu_item, and schedule_lunch_menu_item. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
List School Events — Returns upcoming events for the user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feed register_for_event; shift IDs feed sign_up_for_volunteer_shift. To review or undo your own registrations and signups, use list_my_event_registrations / cancel_my_event_registration and list_my_volunteer_signups / cancel_my_volunteer_signup. Optionally filter by date range.
Pay Lunch Order Draft — Commits a draft order from create_lunch_order_draft and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Wallet-only: if the balance cannot cover the full total, the call fails with an error directing the user to open the Paxaver panel and top up the wallet balance, then retry - no card payment is offered through this tool. Not for new orders - use create_lunch_order_draft first. FINANCIAL - confirm the total before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times the ticket price is charged to the user's wallet - the call fails on insufficient balance or when the event is sold out or registration is closed. To volunteer at an event rather than attend, use sign_up_for_volunteer_shift. FINANCIAL for paid events - confirm before registering.
Schedule Lunch Menu Item (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_restaurant_menu_item (is_active) or archive_restaurant_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_restaurant_menu_items.
Sign Up for Volunteer Shift — Signs the authenticated user up for a specific volunteer shift - no payment involved. shift_id identifies one shift within an event, not the event itself: get it from the event's volunteer shifts in list_school_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_for_event. WRITE - confirm with the user before signing up.
Update Lunch Order Draft — Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_lunch_order_draft). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_my_lunch_order. WRITE - confirm the new contents with the user.
Update Restaurant Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or retiring an item (is_active=false). Day-level orderability is controlled by schedule_lunch_menu_item, not this tool. Use archive_restaurant_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from lis…
Update School Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_school_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from list_school_events.
Cancel Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from get_upcoming_events.
Cancel Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Create Draft Order — Creates an unpaid draft lunch order with one or more items - nothing is charged until finalize_order commits it. Use for multi-item orders or when the user should review the total first; for a single item paid immediately, order_lunch is simpler. FINANCIAL - confirm student, items, and date before calling.
Create Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_event; to register a parent for an event use register_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Delete Menu Item (Admin) — ADMIN: Soft-deletes a menu item so it can no longer be ordered. To only hide it temporarily, prefer update_menu_item with is_available=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Finalize Order — Commits a draft order from create_draft_order and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Not for new orders - use order_lunch or create_draft_order first. FINANCIAL - confirm the total before calling.
Get Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity - for one date or a full month (today if neither is given). The menu_item_id values returned are required by order_lunch and create_draft_order. For orders already placed, use get_orders.
Get Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students. Filter by student_id, a single menu_date, or a month; with no filters returns recent orders. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_menu.
Get Upcoming Events — Returns upcoming events for the user's active school: date, times, location, and whether registration is closed. The event IDs returned feed register_event, update_event, and cancel_event. Optionally filter by date range.
Get User Info — Returns the authenticated user's context: first name, active school, the students they are a guardian for, and their roles. Call this when you need a student_id, school_slug, or to check whether the user holds an admin role - most other tools take those IDs as input.
Get Wallet Balance — Returns the spendable wallet balance for the authenticated user at their active school, in cents and formatted. Call before order_lunch, finalize_order, or register_event to confirm the user can cover the charge; not needed for read-only lookups.
List Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_menu for that). Provides menu_item_id values for update_menu_item, delete_menu_item, and set_daily_menu. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
Order Lunch — Places and pays for a single-item lunch order for one student - the wallet is charged immediately. For a multi-item order or an order the user should review before paying, use create_draft_order then finalize_order instead. Requires menu_item_id from get_menu and menu_date; student_id is required when the user has more than one student and defaults to the user's only student otherwise (IDs from get_user_info). FINANCIAL - confirm student, item, date, and quantity before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets. For paid events the total is charged to the user's wallet - the call fails on insufficient balance. quantity defaults to 1. To volunteer at an event rather than attend, use sign_up_to_volunteer. FINANCIAL for paid events - confirm before registering.
Set Daily Menu (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_menu_item (is_active) or delete_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_menu_items.
Sign Up to Volunteer — Signs the authenticated user up for a specific volunteer shift - no payment involved. To attend an event as a guest instead, use register_event. Requires shift_id (from the event's volunteer shifts). WRITE - confirm with the user before signing up.
Update Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from get_upcoming_events.
Update Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or toggling availability (is_available for out-of-stock, is_active to retire an item). Use delete_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Cancel Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from get_upcoming_events.
Cancel Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Create Draft Order — Creates an unpaid draft lunch order with one or more items - nothing is charged until finalize_order commits it. Use for multi-item orders or when the user should review the total first; for a single item paid immediately, order_lunch is simpler. FINANCIAL - confirm student, items, and date before calling.
Create Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_event; to register a parent for an event use register_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Delete Menu Item (Admin) — ADMIN: Soft-deletes a menu item so it can no longer be ordered. To only hide it temporarily, prefer update_menu_item with is_available=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Finalize Order — Commits a draft order from create_draft_order and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Not for new orders - use order_lunch or create_draft_order first. FINANCIAL - confirm the total before calling.
Get Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity - for one date or a full month (today if neither is given). The menu_item_id values returned are required by order_lunch and create_draft_order. For orders already placed, use get_orders.
Get Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students. Filter by student_id, a single menu_date, or a month; with no filters returns recent orders. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_menu.
Get Upcoming Events — Returns upcoming events for the user's active school: date, times, location, and whether registration is closed. The event IDs returned feed register_event, update_event, and cancel_event. Optionally filter by date range.
Get User Info — Returns the authenticated user's context: first name, active school, the students they are a guardian for, and their roles. Call this when you need a student_id, school_slug, or to check whether the user holds an admin role - most other tools take those IDs as input.
Get Wallet Balance — Returns the spendable wallet balance for the authenticated user at their active school, in cents and formatted. Call before order_lunch, finalize_order, or register_event to confirm the user can cover the charge; not needed for read-only lookups.
List Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_menu for that). Provides menu_item_id values for update_menu_item, delete_menu_item, and set_daily_menu. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
Order Lunch — Places and pays for a single-item lunch order for one student - the wallet is charged immediately. For a multi-item order or an order the user should review before paying, use create_draft_order then finalize_order instead. Requires menu_item_id from get_menu and menu_date; student_id is required when the user has more than one student and defaults to the user's only student otherwise (IDs from get_user_info). FINANCIAL - confirm student, item, date, and quantity before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets. For paid events the total is charged to the user's wallet - the call fails on insufficient balance. quantity defaults to 1. To volunteer at an event rather than attend, use sign_up_to_volunteer. FINANCIAL for paid events - confirm before registering.
Set Daily Menu (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_menu_item (is_active) or delete_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_menu_items.
Sign Up to Volunteer — Signs the authenticated user up for a specific volunteer shift - no payment involved. To attend an event as a guest instead, use register_event. Requires shift_id (from the event's volunteer shifts). WRITE - confirm with the user before signing up.
Update Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from get_upcoming_events.
Update Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or toggling availability (is_available for out-of-stock, is_active to retire an item). Use delete_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Archive Restaurant Menu Item (Admin) — ADMIN: Archives (soft-deletes) a menu item so it can no longer be ordered - the item is removed from ordering but stays on historical orders. To retire it from the restaurant menu without archiving, use update_restaurant_menu_item with is_active=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_restaurant_menu_items.
Cancel My Event Registration — Cancels one of the authenticated user's own event tickets (ticket_id from list_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Lunch Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Volunteer Signup — Cancels one of the authenticated user's own volunteer signups (signup_id from list_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel School Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_school_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from list_school_events.
Create Lunch Order Draft — Creates an unpaid draft lunch order with one or more items - nothing is charged until pay_lunch_order_draft commits it. Use for multi-item orders or when the user should review the total first; each items entry pairs a menu_item_id with a quantity. The draft total is the sum of item prices times quantities plus nothing else until pay_lunch_order_draft. To change or abandon the draft, use update_lunch_order_draft or discard_lunch_order_draft. FINANCIAL - confirm student, items, and date before calling.
Create Restaurant Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_restaurant_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create School Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_school_event; to register a parent for an event use register_for_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create School Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_restaurant_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Discard Lunch Order Draft — Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_lunch_order_draft). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_my_lunch_order instead. DESTRUCTIVE - confirm with the user before discarding.
Get Lunch Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity. Pass date for a single day or month for a per-day listing across the whole month (today if neither is given); if both are passed, date wins. The menu_item_id values returned are required by create_lunch_order_draft. For orders already placed, use list_my_lunch_orders.
Get My Context — Read-only lookup with no side effects - safe to call repeatedly. Requires authentication: returns only the caller's own context (never another user's data): first name, active school, the students they are a guardian for, and their role codes at that school. This is the context-discovery call - most other tools need a student_id or school_slug from here, and admin-role checks come from roles. Returns live account state, so call again if the user may have switched schools or had roles changed.
Get My Wallet Balance — Read-only lookup - never moves funds or has side effects. Requires authentication: returns only the caller's spendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before pay_lunch_order_draft or register_for_event to confirm the user can cover the charge; not needed for read-only lookups.
List My Event Registrations — Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_my_event_registration. Pair with list_school_events for events the user has not registered for.
List My Lunch Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students, newest first (up to ~100 most recent). Filters combine with AND: student_id narrows to one student; menu_date and month narrow the date range, and if both are given menu_date wins. With no filters returns recent orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_lunch_menu.
List My Volunteer Signups — Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_my_volunteer_signup.
List Restaurant Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_lunch_menu for that). Provides menu_item_id values for update_restaurant_menu_item, archive_restaurant_menu_item, and schedule_lunch_menu_item. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
List School Events — Returns upcoming events for the user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feed register_for_event; shift IDs feed sign_up_for_volunteer_shift. To review or undo your own registrations and signups, use list_my_event_registrations / cancel_my_event_registration and list_my_volunteer_signups / cancel_my_volunteer_signup. Optionally filter by date range.
Pay Lunch Order Draft — Commits a draft order from create_lunch_order_draft and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Wallet-only: if the balance cannot cover the full total, the call fails with an error directing the user to open the Paxaver panel and top up the wallet balance, then retry - no card payment is offered through this tool. Not for new orders - use create_lunch_order_draft first. FINANCIAL - confirm the total before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times the ticket price is charged to the user's wallet - the call fails on insufficient balance or when the event is sold out or registration is closed. To volunteer at an event rather than attend, use sign_up_for_volunteer_shift. FINANCIAL for paid events - confirm before registering.
Schedule Lunch Menu Item (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_restaurant_menu_item (is_active) or archive_restaurant_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_restaurant_menu_items.
Sign Up for Volunteer Shift — Signs the authenticated user up for a specific volunteer shift - no payment involved. shift_id identifies one shift within an event, not the event itself: get it from the event's volunteer shifts in list_school_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_for_event. WRITE - confirm with the user before signing up.
Update Lunch Order Draft — Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_lunch_order_draft). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_my_lunch_order. WRITE - confirm the new contents with the user.
Update Restaurant Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or retiring an item (is_active=false). Day-level orderability is controlled by schedule_lunch_menu_item, not this tool. Use archive_restaurant_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from lis…
Update School Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_school_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from list_school_events.
{"properties":{"balanceCentsitemTotalCents":{"description":"Wallet balance after theItemcharge,total in cents","type":["number","nullinteger"]},"idorderId":{"description":"Order ID","type":"string"},"itemTotalCentsstatus":{"description":"Item'finalized'totalwheninthecents","type":"integer"},"status":{"description":"Orderwalletstatuscovered(finalized)the full total","type":"string"},"tipCents":{"description":"PAC donation added, in cents","type":"integer"},"totalCents":{"description":"Total charged to the wallet, in cents","type":"integer"}} ⟨2 unchanged words⟩
Archive Restaurant Menu Item (Admin) — ADMIN: Archives (soft-deletes) a menu item so it can no longer be ordered - the item is removed from ordering but stays on historical orders. To retire it from the restaurant menu without archiving, use update_restaurant_menu_item with is_active=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_restaurant_menu_items.
Cancel My Event Registration — Cancels one of the authenticated user's own event tickets (ticket_id from list_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Lunch Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Cancel My Volunteer Signup — Cancels one of the authenticated user's own volunteer signups (signup_id from list_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel School Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_school_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from list_school_events.
Create Lunch Order Draft — Creates an unpaid draft lunch order with one or more items - nothing is charged until pay_lunch_order_draft commits it. Use for multi-item orders or when the user should review the total first; each items entry pairs a menu_item_id with a quantity. The draft total is the sum of item prices times quantities plus nothing else until pay_lunch_order_draft. To change or abandon the draft, use update_lunch_order_draft or discard_lunch_order_draft. FINANCIAL - confirm student, items, and date before calling.
Create Restaurant Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_restaurant_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create School Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_school_event; to register a parent for an event use register_for_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create School Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_restaurant_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Discard Lunch Order Draft — Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_lunch_order_draft). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_my_lunch_order instead. DESTRUCTIVE - confirm with the user before discarding.
Get Lunch Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity. Pass date for a single day or month for a per-day listing across the whole month (today if neither is given); if both are passed, date wins. The menu_item_id values returned are required by create_lunch_order_draft. For orders already placed, use list_my_lunch_orders.
Get My Context — Read-only lookup with no side effects - safe to call repeatedly. Requires authentication: returns only the caller's own context (never another user's data): first name, active school, the students they are a guardian for, and their role codes at that school. This is the context-discovery call - most other tools need a student_id or school_slug from here, and admin-role checks come from roles. Returns live account state, so call again if the user may have switched schools or had roles changed.
Get My Wallet Balance — Read-only lookup - never moves funds or has side effects. Requires authentication: returns only the caller's spendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before pay_lunch_order_draft or register_for_event to confirm the user can cover the charge; not needed for read-only lookups.
List My Event Registrations — Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_my_event_registration. Pair with list_school_events for events the user has not registered for.
List My Lunch Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students, newest first (up to ~100 most recent). Filters combine with AND: student_id narrows to one student; menu_date and month narrow the date range, and if both are given menu_date wins. With no filters returns recent orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_lunch_menu.
List My Volunteer Signups — Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_my_volunteer_signup.
List Restaurant Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_lunch_menu for that). Provides menu_item_id values for update_restaurant_menu_item, archive_restaurant_menu_item, and schedule_lunch_menu_item. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
List School Events — Returns upcoming events for the user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feed register_for_event; shift IDs feed sign_up_for_volunteer_shift. To review or undo your own registrations and signups, use list_my_event_registrations / cancel_my_event_registration and list_my_volunteer_signups / cancel_my_volunteer_signup. Optionally filter by date range.
Pay Lunch Order Draft — Commits a draft order from create_lunch_order_draft and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Not for new orders - use create_lunch_order_draft first. FINANCIAL - confirm the total before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times the ticket price is charged to the user's wallet - the call fails on insufficient balance or when the event is sold out or registration is closed. To volunteer at an event rather than attend, use sign_up_for_volunteer_shift. FINANCIAL for paid events - confirm before registering.
Schedule Lunch Menu Item (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_restaurant_menu_item (is_active) or archive_restaurant_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_restaurant_menu_items.
Sign Up for Volunteer Shift — Signs the authenticated user up for a specific volunteer shift - no payment involved. shift_id identifies one shift within an event, not the event itself: get it from the event's volunteer shifts in list_school_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_for_event. WRITE - confirm with the user before signing up.
Update Lunch Order Draft — Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_lunch_order_draft). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_my_lunch_order. WRITE - confirm the new contents with the user.
Update Restaurant Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or retiring an item (is_active=false). Day-level orderability is controlled by schedule_lunch_menu_item, not this tool. Use archive_restaurant_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from lis…
Update School Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_school_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from list_school_events.
Cancel Event (Admin) — ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from get_upcoming_events.
Cancel Event Registration — Cancels one of the authenticated user's own event tickets (ticket_id from get_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel Order — Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
Cancel Volunteer Signup — Cancels one of the authenticated user's own volunteer signups (signup_id from get_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Create Draft Order — Creates an unpaid draft lunch order with one or more items - nothing is charged until finalize_order commits it. Use for multi-item orders or when the user should review the total first; for a single item paid immediately, order_lunch is simpler. Each items entry pairs a menu_item_id from get_menu with a quantity; the draft total is the sum of item prices times quantities plus nothing else until finalize_order. To change or abandon the draft, use update_draft_order or discard_draft_order. FINANCIAL - confirm student, items, and date before calling.
Create Event (Admin) — ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_event; to register a parent for an event use register_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
Create Menu Item (Admin) — ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
Create Restaurant (Admin) — ADMIN: Adds a restaurant to the active school so it can offer menu items via create_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
Delete Menu Item (Admin) — ADMIN: Soft-deletes a menu item so it can no longer be ordered. To only hide it temporarily, prefer update_menu_item with is_available=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Discard Draft Order — Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_draft_order). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_order instead. DESTRUCTIVE - confirm with the user before discarding.
Finalize Order — Commits a draft order from create_draft_order and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Not for new orders - use order_lunch or create_draft_order first. FINANCIAL - confirm the total before calling.
Get Menu — Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity. Pass date for a single day or month for a per-day listing across the whole month (today if neither is given); if both are passed, date wins. The menu_item_id values returned are required by order_lunch and create_draft_order. For orders already placed, use get_orders.
Get My Event Registrations — Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_event_registration. Pair with get_upcoming_events for events the user has not registered for.
Get My Volunteer Signups — Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_volunteer_signup.
Get Orders — Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students, newest first (up to ~100 most recent). Filters combine with AND: student_id narrows to one student; menu_date and month narrow the date range, and if both are given menu_date wins. With no filters returns recent orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_menu.
Get Upcoming Events — Returns upcoming events for the user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feed register_event; shift IDs feed sign_up_to_volunteer. To review or undo your own registrations and signups, use get_my_event_registrations / cancel_event_registration and get_my_volunteer_signups / cancel_volunteer_signup. Optionally filter by date range.
Get User Info — Read-only lookup with no side effects and no rate-limit concerns - safe to call repeatedly. Requires authentication: returns only the caller's own context (never another user's data): first name, active school, the students they are a guardian for, and their role codes at that school. This is the context-discovery call - most other tools need a student_id or school_slug from here, and admin-role checks come from roles. Returns live account state, so call again if the user may have switched schools or had roles changed.
Get Wallet Balance — Read-only lookup - never moves funds or has side effects. Requires authentication: returns only the caller's spendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before order_lunch, finalize_order, or register_event to confirm the user can cover the charge; not needed for read-only lookups.
List Menu Items (Admin) — ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_menu for that). Provides menu_item_id values for update_menu_item, delete_menu_item, and set_daily_menu. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
Order Lunch — Places and pays for a single-item lunch order for one student - the wallet is charged immediately. For a multi-item order or an order the user should review before paying, use create_draft_order then finalize_order instead. Requires menu_item_id from get_menu and menu_date; student_id is required when the user has more than one student and defaults to the user's only student otherwise (IDs from get_user_info). FINANCIAL - confirm student, item, date, and quantity before calling.
Register for Event — Registers the authenticated user for a school event and issues tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times the ticket price is charged to the user's wallet - the call fails on insufficient balance or when the event is sold out or registration is closed. To volunteer at an event rather than attend, use sign_up_to_volunteer. FINANCIAL for paid events - confirm before registering.
Set Daily Menu (Admin) — ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_menu_item (is_active) or delete_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_menu_items.
Sign Up to Volunteer — Signs the authenticated user up for a specific volunteer shift - no payment involved. shift_id identifies one shift within an event, not the event itself: get it from the event's volunteer shifts in get_upcoming_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_event. WRITE - confirm with the user before signing up.
Update Draft Order — Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_draft_order). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_order. WRITE - confirm the new contents with the user.
Update Event (Admin) — ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from get_upcoming_events.
Update Menu Item (Admin) — ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or toggling availability (is_available for out-of-stock, is_active to retire an item). Use delete_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
Discard Draft Order — Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_draft_order). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_order instead. DESTRUCTIVE - confirm with the user before discarding.
Update Draft Order — Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_draft_order). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_order. WRITE - confirm the new contents with the user.
⟨34 unchanged words⟩ single item paid immediately, order_lunch is simpler. Each items entry pairs a menu_item_id from get_menu with a quantity; the draft total is the sum of item prices times quantities plus nothing else until finalize_order. FINANCIAL - confirm student, items, and date before calling.
⟨74 unchanged words⟩ :{"description":"School slug (from get_user_info); defaults to the active school","type":"string"},"student_id":{"description":"Student ID (must be your own student; from get_user_info); required when the user has more than one student, defaults to their only student","type":"string"}},"required": ⟨6 unchanged words⟩
{"additionalProperties":false,"properties":{"order_id":{"description":"OrderDraft order ID from create_draft_order - must still be in draft status; already-finalized orders are rejected","type":"string"},"tip_cents":{ ⟨16 unchanged words⟩
⟨12 unchanged words⟩ names, prices, dietary tags, and remainingquantityquantity.-Pass date foroneadatesingle day or month for afullper-day listing across the whole month (today if neither is given).; if both are passed, date wins. The menu_item_id values returned are required by order_lunch ⟨8 unchanged words⟩
⟨4 unchanged words⟩ :{"description":"Single day to show,YYYY-MM-DDYYYY-MM-DD; omit when using month","type":"string"},"month":{"description":"Calendar month to show,YYYY-MMYYYY-MM; omit when using date. Today is used when neither is given","type":"string"}},"type":"object"}
⟨10 unchanged words⟩ , and total - for the authenticated user'sstudents.students,Filternewestbyfirst (up to ~100 most recent). Filters combine with AND: student_id,anarrowssingleto one student; menu_date and month narrow the date range,orandaifmonth;bothwithare given menu_date wins. With no filters returns recentorders.orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; ⟨15 unchanged words⟩
⟨4 unchanged words⟩ :{"description":"Single day to query,YYYY-MM-DDYYYY-MM-DD; omit when using month","type":"string"},"month":{"description":"Calendar month to query,YYYY-MMYYYY-MM; omit when using menu_date","type":"string"},"student_id":{"description":"Filter to a specific student (must be yourown;own student, fromget_user_infoget_user_info; admins may filter any student in the school)","type":"string"}},"type":"object"}
⟨5 unchanged words⟩ user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feedregister_eventregister_event; shift IDs feed sign_up_to_volunteer. To review or undo your own registrations and signups, use get_my_event_registrations / cancel_event_registration and get_my_volunteer_signups / cancel_volunteer_signup. Admins with coordinator roles additionally get create_event, update_event, andcancel_event.cancel_event for managing the events themselves. Optionally filter by date range.
{"additionalProperties":false,"properties":{"end_date":{"description":"Last day of the range, YYYY-MM-DD (inclusive); omit for all upcoming events","type":"string"},"start_date":{"description":"First day of the range, YYYY-MM-DD (inclusive); omit for all upcoming events","type":"string"}},"type":"object"}
ReturnsRead-only lookup with no side effects and no rate-limit concerns - safe to call repeatedly. Requires authentication: returns only theauthenticatedcaller'suser'sown context (never another user's data): first name, active school, the students they are a guardian for, and theirroles.roleCallcodesthisatwhenthatyouschool. This is the context-discovery call - most other tools need a student_id,or school_slug from here,orandtoadmin-rolecheckcheckswhethercomethefromuserroles.holdsReturnsanliveadminaccountrolestate,-somostcallotheragaintoolsiftakethethoseuserIDsmayashaveinput.switched schools or had roles changed.
ReturnsRead-onlythelookupspendable-walletneverbalancemovesforfunds or has side effects. Requires authentication: returns only theauthenticatedcaller'suserspendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before order_lunch, finalize_order, or register_event to ⟨12 unchanged words⟩
⟨39 unchanged words⟩ (must be your own student; from get_user_info); required when the user has more than one student, defaults to their only student","type":"string"}},"required": ⟨4 unchanged words⟩
Registers the authenticated user for a school event and issuestickets.tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times thetotalticket price is charged to the user's wallet - the call fails on insufficientbalance.balancequantityordefaultswhentothe1.event is sold out or registration is closed. To volunteer at an event rather than attend ⟨10 unchanged words⟩
⟨3 unchanged words⟩ ":{"event_id":{"description":"Event ID from get_upcoming_events - registration must still be open (check the closed flag)","type":"string"},"quantity":{ ⟨14 unchanged words⟩
⟨6 unchanged words⟩ a specific volunteer shift - no payment involved.To attendshift_idanidentifieseventoneasshiftawithinguestaninsteadevent,usenotregister_event.theRequireseventshift_iditself:(get it from the event's volunteer shifts).in get_upcoming_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_event. WRITE - confirm with the user before signing up.
⟨3 unchanged words⟩ {"shift_id":{"description":"Volunteer shift ID - from the event's volunteer shifts (get_upcoming_events)","type":"string"}},"required": ⟨3 unchanged words⟩
Cancel Event Registration — Cancels one of the authenticated user's own event tickets (ticket_id from get_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Cancel Volunteer Signup — Cancels one of the authenticated user's own volunteer signups (signup_id from get_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
Get My Event Registrations — Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_event_registration. Pair with get_upcoming_events for events the user has not registered for.
Get My Volunteer Signups — Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_volunteer_signup.
⟨34 unchanged words⟩ instead. Requires menu_item_id from get_menu and menu_date; student_id is required when the user has more than one student and defaults to the user'sfirstonlystudent.student otherwise (IDs from get_user_info). FINANCIAL - confirm student, item, date, and quantity before calling.
⟨3 unchanged words⟩ :{"event_id":{"description":"Event ID—- from get_upcoming_events","type":"string"}}, ⟨4 unchanged words⟩
{"properties":{"id":{"description":"Event ID","type":"string"},"status":{"description":"Event status (cancelled)","type":"string"}},"type":"object"}
before
—after
Cancel OrderCancels a finalized orderif labels have notandbeenrefundssenttheyet.chargeRefundsto the wallet.ThisOnlyisworksabeforeDESTRUCTIVEorderoperationlabels-havealwaysbeenconfirmsent;withafter that theuserrequestbeforeiscancelling.rejectedIfandlabelsthehaveorderalreadystands.beenDESTRUCTIVEsent,-theconfirmcancellationwithwillthebeuserrejected.beforeIdempotent.cancelling.
{"properties":{"balanceCents":{"description":"Wallet balance after the refund, in cents","type":["number","null"]},"id":{"description":"Order ID","type":"string"},"refundCents":{"description":"Amount refunded to the wallet, in cents","type":"integer"},"status":{"description":"Order status (cancelled)","type":"string"}},"type":"object"}
before
—after
Create Draft OrderCreatesaan unpaid draft lunch orderfor awithstudent.oneRequiresorstudent_id,moreschool_slug,itemsmenu_date,-andnothingitemsisarray.chargedEachuntilitemfinalize_orderneedscommitsmenu_item_id,it.menu_item_name,Useprice_cents,forandmulti-itemquantity.ordersTheordraftwhenisthenotuserfinalizedshould-reviewcallthefinalize_ordertotaltofirst;commitfortheaordersingleanditemdeductpaidpayment.immediately,Thisorder_lunch isasimpler. FINANCIAL+ WRITE operation-alwaysconfirmthe order detailsstudent,withitems,theanduserdate before calling.Idempotent.
{"additionalProperties":false,"properties":{"items":{"description":"Line items to order; get IDs and prices from get_menu","items":{"properties":{"menu_item_id":{"description":"Menu item ID from get_menu","type":"string"},"menu_item_name":{"description":"Item display name from get_menu","type":"string"},"price_cents":{"description":"Unit price in cents from get_menu","type":"integer"},"quantity":{"description":"Number of servings","minimum":1,"type":"integer"}}," ⟨8 unchanged words⟩ :"array"},"menu_date":{"description":"Date the lunch is served, YYYY-MM-DD","type":"string"},"school_slug":{"description":"School slug (from get_user_info)","type":"string"},"student_id":{"description":"Student ID (must be your own student; from get_user_info)","type":"string"}},"required": ⟨6 unchanged words⟩
{"properties":{"id":{"description":"Draft order ID - pass to finalize_order","type":"string"},"itemTotalCents":{"description":"Item total in cents - charged on finalize","type":"integer"},"items":{"description":"Draft line items","items":{"type":"object"},"type":"array"},"menuDate":{"description":"Date the lunch is served, YYYY-MM-DD","type":"string"},"schoolSlug":{"description":"School the order was placed at","type":"string"},"status":{"description":"Order status (draft)","type":"string"},"studentId":{"description":"Student the order is for","type":"string"}},"type":"object"}
before
—after
Create Event (Admin)ADMIN: Creates a schoolevent.event,Requiresoptionallypac_cordinatorticketed,oratevent_cordinatortherole.activeThisschool.isTo change an existing event use update_event; to register aWRITEparentoperationfor-anconfirmeventdetailsusewithregister_event.theRequiresuserpac_cordinatorbeforeorcreating.event_cordinatorDorole.notWRITEcreate-eventsonlywithoutcreate on explicit user request.
{"properties":{"eventDate":{"description":"Event date, YYYY-MM-DD","type":"string"},"id":{"description":"Event ID","type":"string"},"name":{"description":"Event name","type":"string"},"status":{"description":"Event status (e.g. active)","type":"string"}},"type":"object"}
before
—after
Create Menu Item (Admin)⟨7 unchanged words⟩ a restaurant. Only restaurant_id and name are required—- set price_cents before the item can be meaningfully ⟨12 unchanged words⟩ later. Requires pac_cordinator or lunch_cordinator role. WRITE operation—- confirm with the user. Get restaurant_id from list_school_restaurants.
⟨56 unchanged words⟩ },"restaurant_id":{"description":"Restaurant ID—- from list_school_restaurants","type":"string"}}, ⟨5 unchanged words⟩
{"properties":{"id":{"description":"Menu item ID","type":"string"},"isActive":{"description":"Whether the item is on the restaurant menu","type":"boolean"},"name":{"description":"Item name","type":"string"},"priceCents":{"description":"Sale price in cents","type":"integer"}},"type":"object"}
before
—after
Create Restaurant (Admin)ADMIN:CreatesAdds a restaurantforto the activeschool;schoolthesorestaurantit canthen holdoffer menu items via create_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITEoperation —- confirm with the user.
⟨17 unchanged words⟩ },"school_slug":{"description":"School slug—- defaults to the active school","type": ⟨19 unchanged words⟩
{"properties":{"id":{"description":"Restaurant ID","type":"string"},"isActive":{"description":"Whether the restaurant is active","type":"boolean"},"name":{"description":"Restaurant name","type":"string"}},"type":"object"}
before
—after
Delete Menu Item (Admin)⟨3 unchanged words⟩ "menu_item_id":{"description":"Menu item ID—- from list_menu_items","type":"string"},"restaurant_id":{"description":"Restaurant ID—- from list_school_restaurants","type":"string"}}, ⟨5 unchanged words⟩
{"properties":{"deleted":{"description":"Whether the item was soft-deleted","type":"boolean"},"id":{"description":"Menu item ID","type":"string"}},"type":"object"}
before
—after
Finalize OrderFinalizesCommits a draft order,deductingfrompaymentcreate_draft_orderfromand charges thewallet.walletOptionallyforincludethe item total plus optional tip_cents (donated to the school's PAC).ThisNotisforanewFINANCIALorders+-WRITEuseoperationorder_lunch-oralwayscreate_draft_orderconfirmfirst.withFINANCIAL - confirm theusertotal before calling.Idempotent.
{"properties":{"balanceCents":{"description":"Wallet balance after the charge, in cents","type":["number","null"]},"id":{"description":"Order ID","type":"string"},"itemTotalCents":{"description":"Item total in cents","type":"integer"},"status":{"description":"Order status (finalized)","type":"string"},"tipCents":{"description":"PAC donation added, in cents","type":"integer"},"totalCents":{"description":"Total charged to the wallet, in cents","type":"integer"}},"type":"object"}
before
—after
Get MenuReturns the orderable lunch menu for the user's activeschool. Acceptsschooleither-"date"item(YYYY-MM-DD)names,forprices,adietarysingletags,dayandorremaining"month"quantity(YYYY-MM)- fortheone date or a fullmonth.monthIf(today if neither is given,).returnsThetoday'smenu_item_idmenu.valuesRead-only.returnedUsearethisrequiredtobyfindorder_lunchmenu_item_idandvaluescreate_draft_order.forFororder_lunch.orders already placed, use get_orders.
{"properties":{"date":{"description":"Date this menu applies to, YYYY-MM-DD","type":"string"},"menuItems":{"description":"Items orderable on that date","items":{"properties":{"availableQty":{"description":"Remaining portions; null means unlimited","type":["integer","null"]},"dailyMenuId":{"description":"Daily-menu entry ID","type":"string"},"dietaryTags":{"description":"Dietary labels (e.g. vegetarian, halal)","items":{"type":"string"},"type":"array"},"menuItemId":{"description":"Menu item ID for ordering tools","type":"string"},"menuItemName":{"description":"Item display name","type":"string"},"priceCents":{"description":"Sale price in cents","type":"integer"},"restaurantName":{"description":"Restaurant offering the item","type":["string","null"]}}, ⟨6 unchanged words⟩
before
—after
Get OrdersReturns lunch ordersfor the authenticated user's students —alreadyeachplacedorder's- items, menu date, status, andtotal.total - for the authenticated user's students. Filter by student_id, a single menu_date, or amonth (YYYY-MM).month;Withwith no filters,returns recent orders. Admins (pac_cordinator, lunch_cordinator)receivesee school-wideorders for the requested period;orders; parents onlyseetheir own students.Read-only.For what can be ordered (menu and prices), use get_menu.
{"properties":{"orders":{"description":"Orders matching the filters","items":{"properties":{"createdAt":{"description":"ISO timestamp the order was placed","type":"string"},"id":{"description":"Order ID","type":"string"},"itemTotalCents":{"description":"Item total in cents","type":"integer"},"items":{"description":"Ordered line items","items":{"type":"object"},"type":"array"},"menuDate":{"description":"Date the lunch is served, YYYY-MM-DD","type":"string"},"status":{"description":"Order status","type":"string"},"studentId":{"description":"Student the order is for","type":"string"}},"type":"object ⟨4 unchanged words⟩
before
—after
Get Upcoming EventsReturns upcoming events for the user's active school, including each event's: date, times, location, andclosedwhetherstatus.registrationOptionallyisfilterclosed.byThedateeventrangeIDs(start_datereturned/feedend_dateregister_event,YYYY-MM-DD).update_event,Read-only.and cancel_event. Optionally filter by date range.
{"properties":{"events":{"description":"Upcoming events matching the date range","items":{"properties":{"endsAt":{"description":"End time","type":["string","null"]},"eventDate":{"description":"Event date, YYYY-MM-DD","type":"string"},"id":{"description":"Event ID - input to register_event, update_event, cancel_event","type":"string"},"isClosed":{"description":"Whether registration is closed","type":"boolean"},"location":{"description":"Event location","type":["string","null"]},"name":{"description":"Event name","type":"string"},"startsAt":{"description":"Start time","type":["string","null"]}}, ⟨6 unchanged words⟩
before
—after
Get User InfoReturns the authenticatedPaxaver useruser's context:theirfirst name, active school, the students they are a guardian for, andavailabletheir roles.ALWAYS callCall thisfirstwhenbeforeyouanyneedotheratoolstudent_id, school_slug, or toestablishcheckcontext.whetherThistheisuseraholdsread-onlyanoperation.admin role - most other tools take those IDs as input.
{"properties":{"firstName":{"description":"User first name","type":["string","null"]},"roles":{"description":"Role codes the user holds at the active school","items":{"type":"string"},"type":"array"},"schoolName":{"description":"Active school display name","type":["string","null"]},"schoolSlug":{"description":"Active school slug","type":["string","null"]},"students":{"description":"Students the user is guardian for (id, firstName, schoolSlug)","items":{"type":"object"},"type ⟨3 unchanged words⟩
before
—after
Get Wallet BalanceReturns thecurrentspendable wallet balance for the authenticated user at their activeschool.school,Read-only.inUsecentsthisand formatted. Call before order_lunch, finalize_order, or register_event tocheckconfirmfundsthebeforeuserorderingcanlunch.cover the charge; not needed for read-only lookups.
{"properties":{"balanceCents":{"description":"Spendable balance in cents","type":["number","null"]},"balanceFormatted":{"description":"Balance formatted with the currency symbol","type":["string","null"]},"currency":{"description":"ISO currency code (CAD, USD, or MXN)","type":["string","null"]}},"type":"object"}
before
—after
List Menu Items (Admin)ADMIN: Listsallthemenufullitemsmenu-item catalog for a restaurant, including inactive and unavailableones.items - this is the catalog, not what parents can order on a date (use get_menu for that). Provides menu_item_id values for update_menu_item, delete_menu_item, and set_daily_menu. Requires pac_cordinator or lunch_cordinator role.Read-only.Get restaurant_id from list_school_restaurants.
⟨3 unchanged words⟩ :{"restaurant_id":{"description":"Restaurant ID—- from list_school_restaurants","type":"string"}}, ⟨4 unchanged words⟩
{"properties":{"items":{"description":"Full catalog items, including inactive and unavailable","items":{"properties":{"calories":{"description":"Calorie count","type":["integer","null"]},"costCents":{"description":"Kitchen cost in cents","type":["integer","null"]},"description":{"description":"Item description","type":["string","null"]},"id":{"description":"Menu item ID","type":"string"},"ingredients":{"description":"Ingredient list text","type":["string","null"]},"isActive":{"description":"Whether the item is on the restaurant menu","type":"boolean"},"isAvailable":{"description":"Whether the item can currently be ordered","type":"boolean"},"name":{"description":"Item name","type":"string"},"priceCents":{"description":"Sale price in cents","type":"integer"}},"type":"object ⟨4 unchanged words⟩
before
—after
List School Restaurants (Admin)ADMIN: Lists the restaurantsforattached to a school (defaults to the activeschool.school), including inactive ones. The restaurant_id values returned are required by list_menu_items, create_menu_item, update_menu_item, delete_menu_item, and set_daily_menu. Requires pac_cordinator, pac_member, or lunch_cordinator role.Read-only.
{"properties":{"restaurants":{"description":"Restaurants attached to the school, including inactive ones","items":{"properties":{"description":{"description":"Restaurant description","type":["string","null"]},"id":{"description":"Restaurant ID - input to menu-item and daily-menu tools","type":"string"},"isActive":{"description":"Whether the restaurant is active","type":"boolean"},"logoUrl":{"description":"Restaurant logo URL","type":["string","null"]},"name":{"description":"Restaurant name","type":"string"}},"type":"object ⟨4 unchanged words⟩
before
—after
Order LunchPlaces and pays for a single-item lunch order foraone studentthe-authenticatedtheuserwallet isa guardianchargedof.immediately.RequiresFormenu_item_ida(frommulti-itemget_menu)orderandormenu_datean(YYYY-MM-DD).orderOptionallythespecifyuserstudent_idshould(defaultsreviewtobeforethepaying,user'susefirstcreate_draft_orderstudenttheniffinalize_orderonlyinstead.one).RequiresPaymentmenu_item_idisfromdeductedget_menufromandthemenu_date;wallet.student_idThisdefaultsistoatheFINANCIALuser's+firstWRITEstudent.operationFINANCIAL -alwaysconfirmthe order details (student, item, date,quantity) with theanduserquantity before calling.Idempotent: duplicate calls with the same idempotency context will not create duplicate orders.
{"properties":{"id":{"description":"Order ID","type":"string"},"itemTotalCents":{"description":"Item total in cents","type":"integer"},"items":{"description":"Ordered line items","items":{"type":"object"},"type":"array"},"menuDate":{"description":"Date the lunch is served, YYYY-MM-DD","type":"string"},"schoolSlug":{"description":"School the order was placed at","type":"string"},"status":{"description":"Order status (e.g. finalized)","type":"string"},"studentId":{"description":"Student the order is for","type":"string"}},"type":"object"}
before
—after
Register for EventRegisters the authenticated user for a schoolevent.eventRequiresandevent_id.issuesOptionallytickets.specifyForquantitypaid(defaultevents1).theThistotal isachargedWRITEtooperationthe-user'sconfirmwalletwith- theusercall fails on insufficient balance. quantity defaults to 1. To volunteer at an event rather than attend, use sign_up_to_volunteer. FINANCIAL for paid events - confirm before registering.Idempotent.
{"properties":{"eventId":{"description":"Event the user registered for","type":"string"},"id":{"description":"Registration ID","type":"string"},"quantity":{"description":"Tickets issued","type":"integer"},"status":{"description":"Registration status","type":"string"}},"type":"object"}
before
—after
Set Daily Menu (Admin)ADMIN:AssignsPuts a restaurant menu itemtoonathedateorderablesomenuparentsforcanaordergivenitdate, optionally capping portions. This only schedules thequantity.item - to retire it entirely use update_menu_item (is_active) or delete_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITEoperation —- confirm with the user. Get IDs from list_school_restaurants and list_menu_items.
⟨25 unchanged words⟩ "menu_item_id":{"description":"Menu item ID—- from list_menu_items","type":"string"},"restaurant_id":{"description":"Restaurant ID—- from list_school_restaurants","type":"string"}}, ⟨6 unchanged words⟩
{"properties":{"availableQty":{"description":"Portion cap for the day; null means unlimited","type":["integer","null"]},"id":{"description":"Daily-menu entry ID","type":"string"},"menuDate":{"description":"Date the item is orderable, YYYY-MM-DD","type":"string"},"menuItemId":{"description":"Menu item scheduled","type":"string"}},"type":"object"}
before
—after
Sign Up to VolunteerSignsupthe authenticated userasup for a specific volunteerforshift - no payment involved. To attend an event as aspecificguestshift.instead, use register_event. Requires shift_id (fromget_upcoming_eventstheorevent'seventvolunteerdetailshifts).This is aWRITEoperation- confirm with the user before signing up.Idempotent.
{"properties":{"id":{"description":"Signup ID","type":"string"},"shiftId":{"description":"Volunteer shift signed up for","type":"string"},"status":{"description":"Signup status","type":"string"}},"type":"object"}
before
—after
Update Event (Admin)ADMIN: Partially updates an existing school event—- only the provided fields change; omitted fields keep ⟨19 unchanged words⟩ outright. Requires pac_cordinator or event_cordinator role. WRITE operation—- confirm changes with the user. Get event_id from get_upcoming_events.
⟨29 unchanged words⟩ },"event_id":{"description":"Event ID—- from get_upcoming_events","type":"string"}," ⟨32 unchanged words⟩ },"status":{"description":"Event status—- cancelled stops sales, completed closes the event" ⟨22 unchanged words⟩
{"properties":{"eventDate":{"description":"Event date, YYYY-MM-DD","type":"string"},"id":{"description":"Event ID","type":"string"},"name":{"description":"Event name","type":"string"},"status":{"description":"Event status after the update","type":"string"}},"type":"object"}
before
—after
Update Menu Item (Admin)ADMIN: Partially updates an existing menu item—- only the provided fields change; omitted fields keep ⟨5 unchanged words⟩ renames, description edits, price changes (price_cents—- FINANCIAL, confirm the new price), nutrition ⟨19 unchanged words⟩ permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation—- confirm changes with the user. Get restaurant_id from ⟨5 unchanged words⟩
⟨39 unchanged words⟩ Whether the item stays on the restaurant menu—- set false to retire it","type": ⟨2 unchanged words⟩ description":"Whether the item can be ordered—- set false while out of stock","type":"boolean"},"menu_item_id":{"description":"Menu item ID—- from list_menu_items","type":"string"}," ⟨22 unchanged words⟩ },"restaurant_id":{"description":"Restaurant ID—- from list_school_restaurants","type":"string"}}, ⟨5 unchanged words⟩
{"properties":{"id":{"description":"Menu item ID","type":"string"},"isActive":{"description":"Whether the item is on the restaurant menu","type":"boolean"},"isAvailable":{"description":"Whether the item can currently be ordered","type":"boolean"},"name":{"description":"Item name","type":"string"},"priceCents":{"description":"Sale price in cents","type":"integer"}},"type":"object"}
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Cancel Order"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Create Draft Order"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨3 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨4 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨3 unchanged words⟩
ADMIN: Soft-deletes a menuitem.item so it can no longer be ordered. To only hide it temporarily, prefer update_menu_item with is_available=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
{"additionalProperties":false,"properties":{"menu_item_id":{"description":"Menu item ID — from list_menu_items","type":"string"},"restaurant_id":{"description":"Restaurant ID — from list_school_restaurants","type":"string"}},"required":[" ⟨4 unchanged words⟩
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨4 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Finalize Order"}
Returnsrecentlunch orders for the authenticated user's students,including— each order's items, menu date, status, and total.Optionally filterFilter bystudent_id.student_id, a single menu_date, or a month (YYYY-MM). With no filters, returns recent orders. Admins (pac_cordinator, lunch_cordinator) receive school-wide orders for the requested period; parents only see their own students. Read-only.
{"additionalProperties":false,"properties":{"menu_date":{"description":"Single day to query, YYYY-MM-DD","type":"string"},"month":{"description":"Calendar month to query, YYYY-MM","type":"string"},"student_id":{"description":"Filter to a specific student (must be yourownown; from get_user_info)","type":"string"}},"type":"object"}
⟨10 unchanged words⟩ is a guardian of. Requires menu_item_id (fromget_daily_menuget_menu) and menu_date (YYYY-MM-DD). Optionally specify student_id ⟨51 unchanged words⟩
{"additionalProperties":false,"properties":{"menu_date":{"description":"Date the lunch is served, YYYY-MM-DD","type":"string"},"menu_item_id":{"description":"Menu item ID fromget_daily_menuget_menu","type":"string"},"quantity":{ ⟨30 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Order Lunch"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Register for Event"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨4 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨4 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨3 unchanged words⟩
⟨17 unchanged words⟩ current values. Use for renames, description edits,price/costprice changes (price_cents — FINANCIAL, confirm the new price), nutrition updates, or toggling availability (is_available for out-of-stock, is_active to retire an item).Prefer set_menu_item_price for a price-only change andUse delete_menu_item to remove the item permanently. Requires pac_cordinator ⟨19 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":" ⟨4 unchanged words⟩
Returns the lunch menu for the user's active school. Accepts either "date" (YYYY-MM-DD) for a single day or "month" (YYYY-MM) for the full month. If neither is given, returns today's menu. Read-only. Use this to find menu_item_id values for order_lunch.
Returns the daily lunch menu for the user's active school. Accepts either "date" (YYYY-MM-DD) or "month" (YYYY-MM). If neither is given, returns today's menu. Read-only. Use this to find menu_item_id values for order_lunch.
ADMIN: Returns all orders for the active school on a given date. Requires pac_cordinator or lunch_cordinator role. Read-only.
Returns one row per lunch order placed in a calendar month — student, menu date, status, and item total — for the authenticated user's students. Optionally filter by month (YYYY-MM) and student. Read-only.
Returns the wallet balance plus recent transactions and pending deposits. Read-only. Use this for a wallet overview.
ADMIN: Sets the price of a menu item. Requires pac_cordinator or lunch_cordinator role. FINANCIAL + WRITE operation - confirm the new price with the user.
ADMIN: Creates a new menu itemforon a restaurant. Only restaurant_id and name are required — set price_cents before the item can be meaningfully ordered. New items start active and available; use update_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITEoperation.operation — confirm with the user. Get restaurant_id from list_school_restaurants.
{"additionalProperties":false,"properties":{"calories":{"description":"Calorie count","type":"integer"},"cost_cents":{"description":"Kitchen cost in cents (internal margin tracking)","type":"integer"},"description":{"description":"Optional item description","type":"string"},"ingredients":{"description":"Ingredient list text","type":"string"},"name":{"description":"Item display name shown to parents","type":"string"},"price_cents":{"description":"Sale price in cents (e.g. 550 = $5.50)","type":"integer"},"restaurant_id":{"description":"Restaurant ID — from list_school_restaurants","type":"string"}},"required":[" ⟨4 unchanged words⟩
ADMIN: Creates a restaurant for the activeschool.school; the restaurant can then hold menu items via create_menu_item. Requires pac_cordinator role. WRITE operation-— confirm with the user.
{"additionalProperties":false,"properties":{"description":{"description":"Optional restaurant description","type":"string"},"name":{"description":"Restaurant display name","type":"string"},"school_slug":{"description":"School slug — defaults to the active school","type":"string"},"tax_percent":{"description":"Sales tax percentage applied to orders (e.g. 5 for 5%)","type":"number"}},"required":[" ⟨3 unchanged words⟩
Returns one row per lunch order placed in amonthlycalendarsummarymonthof—orders.student, menu date, status, and item total — for the authenticated user's students. Optionally filter by month (YYYY-MM) and student. Read-only.
Returns recent lunch orders for the authenticated user'sstudents.students,Read-only.including each order's items, menu date, status, and total. Optionally filter by student_id. Read-only.
Returns upcoming events for the user's activeschool.school, including each event's date, times, location, and closed status. Optionally filter by date range (start_date / end_date, YYYY-MM-DD). Read-only.
ADMIN: Lists all menu items for arestaurant.restaurant, including inactive and unavailable ones. Requires pac_cordinator or lunch_cordinator role. Read-only. Get restaurant_id from list_school_restaurants.
{"additionalProperties":false,"properties":{"restaurant_id":{"description":"Restaurant ID — from list_school_restaurants","type":"string"}},"required":["restaurant_id ⟨2 unchanged words⟩
ADMIN:Sets the daily menu (assignsAssigns a restaurant menu item to a datewithsoavailableparentsquantity).can order it, optionally capping the quantity. Requires pac_cordinator or lunch_cordinator role. WRITEoperation.operation — confirm with the user. Get IDs from list_school_restaurants and list_menu_items.
{"additionalProperties":false,"properties":{"available_qty":{"description":"Maximum portions for the day; omit for unlimited","type":"integer"},"menu_date":{"description":"Date the item is orderable, YYYY-MM-DD","type":"string"},"menu_item_id":{"description":"Menu item ID — from list_menu_items","type":"string"},"restaurant_id":{"description":"Restaurant ID — from list_school_restaurants","type":"string"}},"required":[" ⟨5 unchanged words⟩
ADMIN:UpdatesPartially updates an existing schoolevent.event — only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation-— confirm changes with the user. Get event_id from get_upcoming_events.
{"additionalProperties":false,"properties":{"description":{"description":"New event description shown to parents","type":"string"},"ends_at":{"description":"End time (e.g. 20:00)","type":"string"},"event_date":{"description":"Event date, YYYY-MM-DD","type":"string"},"event_id":{"description":"Event ID — from get_upcoming_events","type":"string"},"location":{"description":"Event location (e.g. Gymnasium)","type":"string"},"max_capacity":{"description":"Maximum number of attendees/tickets","type":"integer"},"name":{"description":"New event name","type":"string"},"starts_at":{"description":"Start time (e.g. 18:30)","type":"string"},"status":{"description":"Event status — cancelled stops sales, completed closes the event","enum":["active","cancelled","completed"],"type":"string"},"ticket_price_cents":{"description":"Ticket price in cents; 0 for free events","type":"integer"}},"required":[" ⟨3 unchanged words⟩
ADMIN:UpdatesPartiallyaupdates an existing menuitem.item — only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price/cost changes, nutrition updates, or toggling availability (is_available for out-of-stock, is_active to retire an item). Prefer set_menu_item_price for a price-only change and delete_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITEoperation.operation — confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_menu_items.
{"additionalProperties":false,"properties":{"calories":{"description":"Calorie count","type":"integer"},"cost_cents":{"description":"Kitchen cost in cents (internal margin tracking)","type":"integer"},"description":{"description":"New item description shown to parents","type":"string"},"ingredients":{"description":"Ingredient list text","type":"string"},"is_active":{"description":"Whether the item stays on the restaurant menu — set false to retire it","type":"boolean"},"is_available":{"description":"Whether the item can be ordered — set false while out of stock","type":"boolean"},"menu_item_id":{"description":"Menu item ID — from list_menu_items","type":"string"},"name":{"description":"New display name for the item","type":"string"},"price_cents":{"description":"Sale price in cents (e.g. 550 = $5.50)","type":"integer"},"restaurant_id":{"description":"Restaurant ID — from list_school_restaurants","type":"string"}},"required":[" ⟨4 unchanged words⟩