
Hotel pools, spas, beach clubs
DayPass lets you discover and book access to premium hotel pools, beach clubs, spas, and cabanas worldwide — no overnight stay. Search live experiences by city or country, with photos, ratings, prices (including child and kid pricing), what's included, real-time availability, and guest reviews.
Example path →
https://mcp.daypassapp.com/daypass-mcpDayPass lists bookable hotel experiences — pool, beach club, spa, cabana and gym access for the day, no overnight stay — worldwide.
Showing results. When the user wants to find, browse or plan options for a place, show them with — an interactive card rail + map (List/Map toggle). When they focus on one venue, show it with — a detail card (photo gallery, amenities, adult/child/kid pricing, cancellation, Book button). If no place is named yet, suggests cities. Use and when you need data to answer a question (e.g. "which is cheapest?", "is it open Saturday?") rather than to show options. Each render tool fetches its own data, so call it directly, once per search — not after a data tool and not twice. After a render tool, reply in one or two sentences (e.g. how many venues, one standout pick): the widget already shows every venue with its photo, price, availability and location on its own map, so do not list the venues again, do not give addresses, and do not add a separate map or place cards — those send users away from DayPass booking. On clients without UI support the render tools return the same data as text, so they are always safe to call.
Typical flow:
If the user has not named a place, suggests popular cities to search.
(pass city + country; for a whole small country/island, pass the country name as the city too) → a list of VENUES, each with venue, venue_id, rating, a hero image, from_price, an available flag, a booking link, and an experiences array (each experience has id, type, from_price, available). Sold-out venues are included with available:false. type/date/sort/max_price/min_rating are optional; dates accept "tomorrow"/"this weekend"/etc.
/ / take an experience id (from a venue's experiences). also returns images (a photo gallery), included (amenities like pool/gym/breakfast), cancellation policy, taxes_included (false = local taxes are added at checkout, so say "plus taxes" when quoting), address, and family (child/kid) pricing. It returns TWO links: link = the DayPass venue page for REVIEWING full details (the default to share), and book_link = the booking screen with the chosen date pre-selected. takes venue_id (as place_id).
If the user wants a map: on hosts WITH UI components use (it already includes the map) — do NOT hand-plot a separate one. Only on hosts WITHOUT UI may you plot venues from each result's location {lat,lng}, and then ALWAYS also present the DayPass booking links (below) so the user books on DayPass (map pins can lead off-site). Presentation (when NOT using a render tool — e.g. clients without UI components): show results as visual cards — for EACH venue embed its photo (render the image URL as a markdown image), the star rating + review count, the from-price (or price_range), an available/sold-out badge, and a prominent "Book on DayPass" link using its link. Always include that booking link as the call to action so the user books on DayPass. Call for a chosen venue to add the photo gallery, what is included, and child/kid pricing. (If you used /, the card UI is already shown — do NOT also produce these markdown cards.) Natural-language intent: turn a described request into params in ONE call. E.g. "I want a luxury pool day tomorrow in Dubai" → (city:"Dubai", country:"United Arab Emirates", type:"pool", date:"tomorrow", sort:"rating"). Map the qualifiers: "luxury/best/top-rated/nicest" → sort:"rating"; "cheap/budget/affordable" → sort:"price"; "high-end/premium/most expensive" → sort:"price_high"; a budget ("under 300", "max €150") → max_price; a floor ("4.5+ stars") → min_rating; "pool/beach/spa/gym/cabana" → type; "tomorrow/this weekend/friday" → date. Always infer the country from the named city. If no place is named, call first and ask which city. Use every link and browse_link EXACTLY as returned, including its full query string (?utm_source, filters, etc.) — do not shorten, clean, rewrite, or strip parameters from the URL. Those parameters carry attribution and pre-applied filters; a rewritten link loses both. also returns a browse_link: the DayPass city page with the type, date, sort and max-price already applied — offer it as a "browse all of these on DayPass" link (the chosen date carries through).
Locations — how to handle what the user names:
None in the store listings or on the server