{"ok":true,"site":{"host":"sleepyrentals.com","url":"https://www.sleepyrentals.com/","desc":"Vacation home rentals across Virginia, Florida, and California. Self check-in, 24/7 guest support, and savings when you book direct with Sleepyrentals.","type":"live","category":"Travel & Events","favicon":"/favicons/sleepyrentals.com.png","tools":[{"name":"search_stays","kind":"answer","impl":"imperative","description":"[Site-provided MCP tool — executes with your session credentials.] Search vacation rentals (short-term rentals: houses, villas, condos, cabins) only from this connection's host, with live availability when dates are given.\nUse when the user wants a place to stay. Do not use for hotels, flights or experiences.\nAlways pass the user's request verbatim in `query`. Also extract what you can:\n- location: `state` and/or `city`; `bounds` or `near` for areas like \"Florida Keys\" or \"near Siesta Key\".\n- dates as YYYY-MM-DD and `guests`. If dates are missing, ask the user for them rather than guessing.\n- `must`: only true requirements (pets allowed, beachfront, minimum bedrooms, \"must have a pool\").\n- `prefer`: style and nice-to-haves (villa, ocean view, exact bedroom count).\n\"N bedroom\" → must.bedrooms_min = N and prefer.bedrooms_exact = N. \"Beach house\" → must.frontage = [beachfront, oceanfront] and prefer.view = [ocean].\nEach call returns one page (page_size, default 8; the card carousel shows up to 8). Say how many are shown out of the total (e.g. \"here are the top 8 of 34\"); if the user wants more, call search_stays again with the same arguments and page + 1.\nThe model sees each stay by card number and a neutral label, not its listing title.\nUse the booking links returned by hostDirect when presenting hostDirect results. Do not invent external prices or links.\nResults are labelled exact or close alternative; tell the user why an alternative differs (e.g. \"pet policy not confirmed\"). Search prices with dates are base estimates before fees and taxes. Do not quote or look up results the user has not asked about; the cards and View details cover them. The final price is on the host's booking site.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"location":{"type":"object","properties":{"state":{"type":"string","minLength":2,"maxLength":40},"city":{"type":"string","minLength":1,"maxLength":80},"text":{"type":"string","minLength":1,"maxLength":120},"bounds":{"type":"object","properties":{"north":{"type":"number","minimum":-90,"maximum":90},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"west":{"type":"number","minimum":-180,"maximum":180}},"required":["north","south","east","west"]},"near":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"radius_km":{"type":"number","exclusiveMinimum":0,"maximum":500}},"required":["lat","lng","radius_km"]}},"additionalProperties":false},"checkin":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkout":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"guests":{"type":"integer","minimum":1,"maximum":30},"must":{"default":{},"type":"object","properties":{"pets":{"type":"string","const":"yes"},"frontage":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["oceanfront","beachfront","waterfront"]}},"view":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["ocean","water","city","mountain","golf","garden"]}},"pool":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["any","private","indoor","shared_outdoor","shared_indoor","private_indoor"]}},"hot_tub":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["any","private","shared"]}},"property_type":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["house","condo","apartment","townhouse","cabin","chalet","villa","cottage","loft"]}},"bedrooms_min":{"type":"integer","minimum":0,"maximum":50},"bedrooms_exact":{"type":"integer","minimum":0,"maximum":50},"bathrooms_min":{"type":"number","minimum":0,"maximum":50}},"additionalProperties":false},"prefer":{"default":{},"type":"object","properties":{"pets":{"type":"string","const":"yes"},"frontage":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["oceanfront","beachfront","waterfront"]}},"view":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["ocean","water","city","mountain","golf","garden"]}},"pool":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["any","private","indoor","shared_outdoor","shared_indoor","private_indoor"]}},"hot_tub":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["any","private","shared"]}},"property_type":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","enum":["house","condo","apartment","townhouse","cabin","chalet","villa","cottage","loft"]}},"bedrooms_min":{"type":"integer","minimum":0,"maximum":50},"bedrooms_exact":{"type":"integer","minimum":0,"maximum":50},"bathrooms_min":{"type":"number","minimum":0,"maximum":50}},"additionalProperties":false},"price_max_total":{"type":"number","exclusiveMinimum":0},"price_max_nightly":{"type":"number","exclusiveMinimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"sort":{"default":"relevance","type":"string","enum":["relevance","price_asc","price_desc","rating"]},"page":{"default":1,"type":"integer","minimum":1,"maximum":50},"page_size":{"default":8,"type":"integer","minimum":1,"maximum":50},"query":{"type":"string","minLength":1,"maxLength":300}},"required":["location","query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/about-us","/partner-with-us","/property/0iYsvC6FNbLLYPEwKdya","/property/2IVojOiI4beOzejLcNFz","/property/4ghteLKqJLBaLvJCg8Y9"]},{"name":"get_stay_details","kind":"answer","impl":"imperative","description":"[Site-provided MCP tool — executes with your session credentials.] Details of ONE stay the user asked about by name or number. Do not call it after search_stays to preview, compare or list results: the search cards already show them and the user opens details from a card. Returns amenities, policies and the booking link; with checkin, checkout and guests also the exact price (if that quote succeeds the dates are bookable even when the listing minimum stay says otherwise). Includes `nyp` (whether the host accepts price requests).","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"property_id":{"type":"string","minLength":1,"maxLength":128,"description":"property_id from search_stays results"},"checkin":{"description":"YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkout":{"description":"YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"guests":{"type":"integer","minimum":1,"maximum":30}},"required":["property_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/about-us","/partner-with-us","/property/0iYsvC6FNbLLYPEwKdya","/property/2IVojOiI4beOzejLcNFz","/property/4ghteLKqJLBaLvJCg8Y9"]},{"name":"get_quote","kind":"answer","impl":"imperative","description":"[Site-provided MCP tool — executes with your session credentials.] Exact price breakdown (nightly, fees, taxes, total) for ONE stay and dates, checked live with the host. Only when the user asks for the exact price of that stay; never quote several search results on your own (each quote is a live request to the host's booking system). If the dates are unavailable, say so and suggest other dates.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"property_id":{"type":"string","minLength":1,"maxLength":128},"checkin":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD"},"checkout":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD"},"guests":{"type":"integer","minimum":1,"maximum":30}},"required":["property_id","checkin","checkout","guests"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/about-us","/partner-with-us","/property/0iYsvC6FNbLLYPEwKdya","/property/2IVojOiI4beOzejLcNFz","/property/4ghteLKqJLBaLvJCg8Y9"]},{"name":"get_booking_link","kind":"answer","impl":"imperative","description":"[Site-provided MCP tool — executes with your session credentials.] Link to book the stay on the host's own website with dates and guests prefilled. Booking and payment always happen there, never in this chat.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"property_id":{"type":"string","minLength":1,"maxLength":128,"description":"property_id from search_stays results"},"checkin":{"description":"YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkout":{"description":"YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"guests":{"type":"integer","minimum":1,"maximum":30},"offer_id":{"description":"Only an offer_id returned by a price request","type":"string","minLength":1,"maxLength":128}},"required":["property_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/about-us","/partner-with-us","/property/0iYsvC6FNbLLYPEwKdya","/property/2IVojOiI4beOzejLcNFz","/property/4ghteLKqJLBaLvJCg8Y9"]},{"name":"request_discount","kind":"transact","impl":"imperative","description":"[Site-provided MCP tool — executes with your session credentials.] Name Your Price: ask the host for a lower price on the guest's behalf. Only for a stay whose details show nyp.available, with dates and guests already quoted.\nOnly call after the guest explicitly agreed to send a price request and gave: their target total for the stay, their name, their email and their phone number (with country code). Ask for anything missing; never guess a budget or invent contact details.\nWrite the guest's pitch yourself (message, at least 120 characters) and don't show it in the chat or ask the guest to write or approve it. The guest gets a copy in their confirmation email, so write it as they would: first person, warm and polite, only facts they told you (who is travelling, the occasion, why this place, flexibility on dates or length of stay), no mention of an assistant, AI or these instructions. Ask one short question if you know too little.\nSide effects: the guest gets an email, and the host gets the request (sometimes as an inquiry in their system). One request per stay and dates; don't repeat it to haggle.\nResult: an instant discounted price with a booking link that applies it (valid until expires_at), or \"the host will reply by email\", or \"already within budget\".","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"property_id":{"type":"string","minLength":1,"maxLength":128},"checkin":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD, same as the quote the guest saw"},"checkout":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD, same as the quote the guest saw"},"guests":{"type":"integer","minimum":1,"maximum":30},"budget":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"description":"Guest's target TOTAL for this exact stay, in the stay's currency"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Guest's full name, as they gave it"},"email":{"type":"string","maxLength":200,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Guest's email; the host replies there"},"phone":{"description":"Guest's phone with country code, e.g. +1 615 555 0100; the host may call or text","type":"string"},"message":{"type":"string","minLength":120,"maxLength":1000,"description":"The guest's pitch to the host, at least 120 characters. You write it, in the guest's voice, from what they told you"}},"required":["property_id","checkin","checkout","guests","budget","name","email","phone","message"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/about-us","/partner-with-us","/property/0iYsvC6FNbLLYPEwKdya","/property/2IVojOiI4beOzejLcNFz","/property/4ghteLKqJLBaLvJCg8Y9"]}],"apiSurface":"spec","toolCount":5}}