{"ok":true,"site":{"host":"webmcp-ochre.vercel.app","url":"https://webmcp-ochre.vercel.app/","type":"live","desc":"Reactive Salon & Spa appointment booking storefront with WebMCP tool registration (PR #498 pattern)","tools":[{"name":"salon.search_services","kind":"act","impl":"imperative","description":"Search LuxeSalon & Spa treatments by keyword, category, or budget. Returns service IDs, pricing, duration, and descriptions. Updates the catalog UI reactively.","title":"Search Salon Services & Treatments","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Keyword to search for salon treatments (e.g. 'haircut', 'facial', 'color', 'massage', 'nails')."},"category":{"type":"string","enum":["all","hair","skin","massage","nails"],"description":"Filter treatments by service category."},"maxPrice":{"type":"number","minimum":0,"description":"Upper price limit in USD."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"salon.get_available_slots","kind":"act","impl":"imperative","description":"Look up available time slots and designated specialists for a service on a given date. Returns slot IDs required for booking. Updates the calendar UI view.","title":"Check Available Appointment Slots","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","minLength":1,"description":"Unique ID of the salon service (e.g., 'hair-cut-style', 'hydra-glow-facial', 'hair-balayage-color'). Must be obtained from salon.search_services."},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Target appointment date in YYYY-MM-DD format (e.g. '2026-09-05')."},"stylistId":{"type":"string","description":"Optional specialist handle (e.g. 'alex-vance', 'elena-rostova') if the client requests a specific stylist."}},"required":["serviceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"salon.book_appointment","kind":"transact","impl":"imperative","description":"Propose an appointment booking. Surfaces a pending confirmation modal in the storefront UI for human user approval. Resolves once user confirms or declines.","title":"Book Salon Appointment","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","minLength":1,"description":"Service ID from salon.search_services (e.g., 'hair-cut-style')."},"slotId":{"type":"string","minLength":1,"description":"Exact slot ID returned by salon.get_available_slots (e.g., 'slot-2026-09-05-1100-alex-vance')."},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Appointment date in YYYY-MM-DD format."},"clientName":{"type":"string","minLength":2,"maxLength":100,"description":"Full name of the client receiving the service."},"clientPhone":{"type":"string","minLength":7,"maxLength":25,"description":"Client phone number for booking confirmation and SMS reminders."},"notes":{"type":"string","maxLength":500,"description":"Optional requests, hair/skin allergies, or styling preferences."}},"required":["serviceId","slotId","date","clientName","clientPhone"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"salon.get_booking_status","kind":"answer","impl":"imperative","description":"Retrieve details and status for an existing appointment by booking reference code or client phone number. Opens the appointments list for the customer.","title":"Look Up Booking Status","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"bookingReference":{"type":"string","description":"The confirmation reference code (e.g. 'LUXE-9412') provided when the appointment was booked."},"clientPhone":{"type":"string","description":"The phone number used during booking to search customer reservations."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Commerce","apiSurface":"spec","toolCount":4}}