{"ok":true,"site":{"host":"parleywebmcp.vercel.app","url":"https://parleywebmcp.vercel.app/","type":"live","desc":"Win more direct hotel bookings with offers made on your terms, while you keep control of every important decision.","tools":[{"name":"get_parley_overview","kind":"answer","impl":"imperative","description":"Explains how Parley makes a hotel website negotiable for guest agents, what is live today, and which onboarding action to take next. Use it when a hotelier or their agent first reaches this page; it changes nothing.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_hotel_onboarding_context","kind":"answer","impl":"imperative","description":"Reads the hotel profile, generated integration asset, and pilot-signup state currently visible in the shared setup studio. Use it before changing the setup; it changes nothing and never submits a signup.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"estimate_direct_booking_upside","kind":"transact","impl":"imperative","description":"Estimates how much OTA commission a hotel could recover by shifting a stated share of annual OTA revenue to direct bookings. Use it for an indicative business case; it changes nothing and returns transparent assumptions, not a guarantee.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"annual_ota_revenue_eur":{"type":"number","minimum":1000,"maximum":1000000000},"ota_commission_pct":{"type":"number","minimum":0,"maximum":40},"shift_to_direct_pct":{"type":"number","minimum":1,"maximum":100}},"required":["annual_ota_revenue_eur","ota_commission_pct","shift_to_direct_pct"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"set_hotel_profile","kind":"act","impl":"imperative","description":"Fills the visible setup studio with a hotel's public profile and commercial baseline. Use it when the hotelier supplies these details; it changes only shared page fields, stores nothing, and does not enroll the hotel.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"hotel_name":{"type":"string","minLength":2,"maxLength":120},"website":{"type":"string","format":"uri","maxLength":500},"city":{"type":"string","minLength":2,"maxLength":120},"rooms":{"type":"integer","minimum":1,"maximum":2000},"ota_commission_pct":{"type":"integer","minimum":0,"maximum":40},"contact_email":{"type":"string","format":"email","maxLength":254}},"required":["hotel_name","website","city","rooms","ota_commission_pct"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"configure_negotiation_rules","kind":"act","impl":"imperative","description":"Turns the hotelier's plain-language deal preferences into the rule fields visible on this page. Use it after discussing their floors, discounts, perks, group limits, prepayment, and tone; it changes only the setup preview and does not activate the rules.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"min_hotel_uplift_pct":{"type":"integer","minimum":0,"maximum":20},"quiet_dates_max_discount_pct":{"type":"integer","minimum":0,"maximum":25},"preferred_perks":{"type":"array","maxItems":5,"items":{"type":"string","enum":["breakfast","late_checkout","early_checkin","upgrade","parking"]}},"owner_review_above_rooms":{"type":"integer","minimum":1,"maximum":50},"prepay_required_over_discount_pct":{"type":"integer","minimum":0,"maximum":25},"voice":{"type":"string","minLength":2,"maxLength":160}},"required":["min_hotel_uplift_pct","quiet_dates_max_discount_pct","preferred_perks","owner_review_above_rooms","prepay_required_over_discount_pct","voice"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"set_guest_enquiry_inbox","kind":"act","impl":"imperative","description":"Sets the visible hotel inbox for guest follow-up requests and fixes the privacy rule to ask each guest before any contact details are shared. Use it when the hotelier names their reservations inbox; it changes only this setup and does not contact a guest or send email.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"enquiry_inbox":{"type":"string","format":"email","maxLength":254},"guest_contact_policy":{"type":"string","const":"ask_each_time"}},"required":["enquiry_inbox","guest_contact_policy"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"show_level0_manifest","kind":"act","impl":"imperative","description":"Generates and reveals a copy-ready /.well-known/negotiate.json manifest from the hotel profile shown on this page. Use it for immediate agent discovery; it changes the visible code preview but does not publish or modify the hotel's website.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"show_install_snippet","kind":"act","impl":"imperative","description":"Generates and reveals the one-script Parley installation snippet for the hotel profile shown on this page. Use it to prepare developer handoff; it changes the visible code preview but does not install code or activate a property.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"prepare_pilot_signup","kind":"act","impl":"imperative","description":"Fills the visible pilot-access form with the hotel's contact details and scrolls it into view. Use it when the hotelier asks to join; it changes only page fields and never submits—an authorized person must check consent and press Request pilot access.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"hotel_name":{"type":"string","minLength":2,"maxLength":120},"website":{"type":"string","format":"uri","maxLength":500},"city":{"type":"string","minLength":2,"maxLength":120},"rooms":{"type":"integer","minimum":1,"maximum":2000},"ota_commission_pct":{"type":"integer","minimum":0,"maximum":40},"contact_email":{"type":"string","format":"email","maxLength":254}},"required":["hotel_name","website","city","rooms","ota_commission_pct","contact_email"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_pilot_signup_status","kind":"answer","impl":"imperative","description":"Reads whether the pilot form is prepared or has been submitted by a human on this page. Use it after helping with setup; it changes nothing and reiterates that enrollment requires the visible human consent and button.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_negotiation_policy","kind":"answer","impl":"imperative","description":"Reads the hotel's direct-deal rules, available perks, group threshold, round limit, and offer timing. Use it before proposing a negotiation strategy; it changes nothing and explains that acceptance and payment remain human-only.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"get_stay_context","kind":"answer","impl":"imperative","description":"Reads the stay, room, active hold, and current negotiated offer visible in the Parley panel. Use it before acting or when the human refers to this page; it changes nothing and explains that acceptance is human-only.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"set_dates","kind":"act","impl":"imperative","description":"Updates the dates, room count, and guests shown in the Parley panel. Use it when the guest specifies a stay; it visibly changes the shared page state and returns the updated context.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"check_in":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"rooms":{"type":"integer","minimum":1,"maximum":12},"guests_per_room":{"type":"integer","minimum":1,"maximum":4}},"required":["check_in","check_out","rooms","guests_per_room"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"search_availability","kind":"answer","impl":"imperative","description":"Checks live Standard-room availability and direct prices for a specified stay. Use it before holding rooms; it performs a read only and returns flexible, non-refundable, tax, and breakfast figures.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"check_in":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"rooms":{"type":"integer","minimum":1,"maximum":12},"guests_per_room":{"type":"integer","minimum":1,"maximum":4}},"required":["check_in","check_out","rooms","guests_per_room"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"hold_rooms","kind":"act","impl":"imperative","description":"Places a temporary 15-minute hold on Standard rooms for the requested stay. Use it only after availability is checked; it reserves inventory, starts the visible countdown, and does not book or charge anything.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"check_in":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"rooms":{"type":"integer","minimum":1,"maximum":12},"guests_per_room":{"type":"integer","minimum":1,"maximum":4}},"required":["check_in","check_out","rooms","guests_per_room"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"request_offer","kind":"act","impl":"imperative","description":"Asks the hotel's deterministic policy engine for a direct offer against an active hold. Use it after hold_rooms, including when a guest supplies a refundable OTA booking to beat; it opens a negotiation and returns eligibility or an offer, but cannot accept, book, pay, receive card data, or cancel the other booking. Always tell rebooking guests to confirm direct first and cancel elsewhere only afterward.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"hold_id":{"type":"string","format":"uuid"},"asks":{"type":"array","maxItems":6,"items":{"type":"string","enum":["breakfast","late_checkout","early_checkin","upgrade","parking","other"]}},"payment_preference":{"type":"string","enum":["flexible","prepaid_ok"],"description":"Use flexible when the guest cannot prepay or requires refundable terms; prepaid_ok only requests conditional prepaid/non-refundable terms for review and never accepts or pays."},"notes":{"type":"string","maxLength":200},"existing_booking":{"type":"object","description":"The guest's existing booking facts. Only refundable bookings with more than 24 hours before the cancellation deadline are eligible; Parley never cancels it.","properties":{"channel":{"type":"string","minLength":1,"maxLength":80,"description":"Booking channel, such as Booking.com."},"rate_per_night_cents":{"type":"integer","minimum":1,"description":"Existing room rate per night in integer cents."},"total_cents":{"type":"integer","minimum":1,"description":"Existing booking room total in integer cents."},"check_in":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"refundable":{"type":"boolean","description":"Whether the existing booking can still be cancelled without charge."},"cancellation_deadline":{"type":"string","format":"date-time","description":"UTC ISO date-time for free cancellation expiry."}},"required":["channel","rate_per_night_cents","total_cents","check_in","check_out","refundable","cancellation_deadline"],"additionalProperties":false}},"required":["hold_id","asks","payment_preference"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"counter_offer","kind":"act","impl":"imperative","description":"Submits one price counter to the open hotel negotiation. Use prepaid_ok to request the lowest conditional quote when the guest asks for the best deal; it only lets the hotel quote prepaid, non-refundable terms for review and does not consent, accept, or pay. Use flexible when the guest says they cannot prepay or require refundable terms.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"target_total_cents":{"type":"integer","minimum":1},"target_per_night_cents":{"type":"integer","minimum":1},"keep_inclusions":{"type":"boolean"},"payment_preference":{"type":"string","enum":["flexible","prepaid_ok"],"description":"Use prepaid_ok for a lowest-price conditional quote unless the guest says they cannot prepay or require refundable terms; this only returns an offer for review and does not consent, accept, or pay."},"message":{"type":"string","maxLength":200}},"required":["session_id","keep_inclusions","payment_preference"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"get_offer_status","kind":"answer","impl":"imperative","description":"Reads the latest offer, expiry, round, and hold state for one negotiation. Use it before relaying or countering an offer; it changes nothing and states that the guest must use the visible Accept & pay button.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"}},"required":["session_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]},{"name":"get_booking","kind":"answer","impl":"imperative","description":"Reads a confirmed booking made by this visitor from its Parley reference. Use it after the human completes visible checkout; it changes nothing and returns dates, rooms, inclusions, total, and terms without personal data.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"booking_ref":{"type":"string","pattern":"^CZ-[A-Z0-9]{4,12}$"}},"required":["booking_ref"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo","pages":["/demo"]}],"category":"Productivity & Business","apiSurface":"spec","toolCount":19}}