{"ok":true,"site":{"host":"mise-studio.ruddro-roy.chatgpt.site","url":"https://mise-studio.ruddro-roy.chatgpt.site/p/6a1f63750f","type":"live","desc":"A live WebMCP dinner-party studio for ChatGPT Sites. The host and their agent share one table.","tools":[{"name":"get_workspace_state","kind":"answer","impl":"imperative","description":"Read the current dinner: brief, guests, menu, seating, market list, run of show, lock state, and analysis. Use this before acting.","title":"Read the table","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"focus_panel","kind":"act","impl":"imperative","description":"Move the host's view to a studio panel so they can watch the change. Panels: brief, guests, menu, seating, market, run.","title":"Show a studio panel","inputSchema":{"type":"object","properties":{"panel":{"type":"string","enum":["brief","guests","menu","seating","market","run"],"description":"Which panel the host should see."}},"required":["panel"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"set_event_brief","kind":"act","impl":"imperative","description":"Set the dinner brief: title, date (YYYY-MM-DD), start time (HH:mm), guest count, budget in USD, cuisine, vibe, and notes.","title":"Set the brief","inputSchema":{"type":"object","properties":{"title":{"type":"string"},"date":{"type":"string","description":"ISO date YYYY-MM-DD"},"startTime":{"type":"string","description":"24h time HH:mm"},"guestCount":{"type":"number"},"budgetUsd":{"type":"number"},"cuisine":{"type":"string"},"vibe":{"type":"string"},"notes":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"add_guest","kind":"act","impl":"imperative","description":"Add someone to the table. Include diet (omnivore, vegetarian, vegan, pescatarian) and allergens (nuts, gluten, dairy, ...).","title":"Add a guest","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"diet":{"type":"string","enum":["omnivore","vegetarian","vegan","pescatarian"]},"allergens":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"},"rsvp":{"type":"string","enum":["yes","maybe","no","unknown"]}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"update_guest","kind":"act","impl":"imperative","description":"Update a guest by name. Can change diet, allergens, notes, RSVP, or who they should or should not sit beside.","title":"Update a guest","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"diet":{"type":"string"},"allergens":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"},"rsvp":{"type":"string"},"avoidSeatWith":{"type":"string","description":"Name of a guest they should not sit beside."},"preferSeatWith":{"type":"string","description":"Name of a guest they should sit beside."}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"remove_guest","kind":"act","impl":"imperative","description":"Remove a guest from the list by name.","title":"Remove a guest","inputSchema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"propose_menu","kind":"act","impl":"imperative","description":"Replace the menu with a constraint-aware proposal from the house catalog. Respects guest diets, family-style allergens, cuisine, and budget.","title":"Propose a menu","inputSchema":{"type":"object","properties":{"cuisine":{"type":"string"},"guestCount":{"type":"number"},"budgetUsd":{"type":"number"},"extraAllergens":{"type":"array","items":{"type":"string"}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"add_dish","kind":"act","impl":"imperative","description":"Add a dish from the house catalog by name or catalog id. Optionally set servings.","title":"Add a dish","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"servings":{"type":"number"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"remove_dish","kind":"act","impl":"imperative","description":"Remove a menu dish by name.","title":"Remove a dish","inputSchema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"substitute_dish","kind":"act","impl":"imperative","description":"Replace a menu dish with a catalog stand-in that matches a constraint such as gluten-free, vegan, or cheaper.","title":"Substitute a dish","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Current dish to replace."},"constraint":{"type":"string","description":"What the replacement must satisfy, e.g. gluten-free."}},"required":["name","constraint"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"generate_shopping_list","kind":"act","impl":"imperative","description":"Rebuild the shopping list from the current menu. Pantry staples are omitted. Replaces the existing list.","title":"Build the market list","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"check_market_item","kind":"answer","impl":"imperative","description":"Mark a shopping-list item bought or still needed, by name.","title":"Check a market item","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"checked":{"type":"boolean"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"add_market_item","kind":"act","impl":"imperative","description":"Add a custom line to the shopping list.","title":"Add a market item","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"qty":{"type":"number"},"unit":{"type":"string"},"estimatedCost":{"type":"number"},"aisle":{"type":"string"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"set_table_shape","kind":"act","impl":"imperative","description":"Choose a round or rectangle table before seating.","title":"Set the table shape","inputSchema":{"type":"object","properties":{"shape":{"type":"string","enum":["round","rectangle"]}},"required":["shape"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"link_guests_by_diet","kind":"act","impl":"imperative","description":"Mark every guest with the given diet as preferring to sit beside each other, then leave seating to auto_seat.","title":"Sit a diet together","inputSchema":{"type":"object","properties":{"diet":{"type":"string","enum":["vegan","vegetarian","pescatarian","omnivore"]}},"required":["diet"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"auto_seat","kind":"act","impl":"imperative","description":"Seat every RSVP'd guest using avoid/prefer constraints. Replaces the current chart.","title":"Seat the table","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"assign_seat","kind":"act","impl":"imperative","description":"Place a guest in a seat index (0-based). Moves them if they already have a chair.","title":"Assign a seat","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"index":{"type":"number"}},"required":["name","index"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"swap_seats","kind":"act","impl":"imperative","description":"Swap two guests by name.","title":"Swap two seats","inputSchema":{"type":"object","properties":{"a":{"type":"string"},"b":{"type":"string"}},"required":["a","b"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"generate_run_of_show","kind":"act","impl":"imperative","description":"Write a day-of timeline working backward from dinner start. hours is the prep window, default 4.","title":"Build the run of show","inputSchema":{"type":"object","properties":{"hours":{"type":"number","description":"Hours of prep before sit-down."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"add_timeline_step","kind":"act","impl":"imperative","description":"Add a custom run-of-show step. offsetMinutes is relative to sit-down; negative is before.","title":"Add a timeline step","inputSchema":{"type":"object","properties":{"title":{"type":"string"},"detail":{"type":"string"},"offsetMinutes":{"type":"number"},"owner":{"type":"string","enum":["host","agent","guest"]}},"required":["title"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"lock_menu","kind":"act","impl":"imperative","description":"Ask the host to lock the menu. The tool waits for an on-page confirmation. After lock, dishes cannot change until unlock_menu.","title":"Lock the menu","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"unlock_menu","kind":"act","impl":"imperative","description":"Unlock the menu so dishes can change again.","title":"Unlock the menu","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"send_invites","kind":"transact","impl":"imperative","description":"Draft invite copy from the current brief and menu, then wait for the host to approve sending. This is a confirmation-gated write.","title":"Send invites","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"load_sample_party","kind":"act","impl":"imperative","description":"Replace the workspace with the sample Saturday Italian dinner: eight guests, diets, seating politics, and a starter menu.","title":"Load the sample Saturday","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"reset_workspace","kind":"act","impl":"imperative","description":"Ask the host to wipe the workspace. Waits for confirmation.","title":"Clear the table","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"explain_seating","kind":"act","impl":"imperative","description":"Read-only walk through the current seating chart, neighbor pairs, and unmet avoid/prefer rules.","title":"Explain the seating","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"},{"name":"explain_menu_gaps","kind":"answer","impl":"imperative","description":"Read-only analysis of the current menu: diet coverage, allergens, missing courses, and budget.","title":"Explain the menu","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p/6a1f63750f"}],"favicon":"/favicons/mise-studio.ruddro-roy.chatgpt.site.png","apiSurface":"spec","category":"Travel & Events","toolCount":27}}