{"ok":true,"site":{"host":"rentradars.vercel.app","url":"https://rentradars.vercel.app/","type":"live","desc":"Search 200 San Francisco rentals with a live AI agent. 7 WebMCP tools let your agent search, rank, compare, shortlist and book — while you browse. Built for the WebMCP Challenge.","tools":[{"name":"search_listings","kind":"act","impl":"imperative","description":"Search RentRadar's 200 San Francisco rental listings. Use whenever the user wants to find apartments, homes, or rentals. Filters by price, bedrooms (0 = studio), neighborhood, transit score, and amenities. Results update the user's browsing grid and map in real time so they can see what the agent found.","inputSchema":{"type":"object","properties":{"maxPrice":{"type":"number","description":"Maximum monthly rent in USD"},"minPrice":{"type":"number","description":"Minimum monthly rent in USD"},"beds":{"type":"integer","description":"Number of bedrooms (0 = studio)"},"neighborhoods":{"type":"array","items":{"type":"string"},"description":"SF neighborhood names, e.g. [\"Mission District\",\"SoMa\"]"},"minTransitScore":{"type":"number","description":"Minimum transit score (0-100)"},"requiredAmenity":{"type":"string","description":"A required amenity, e.g. \"Parking spot\", \"Pet friendly\", \"In-unit laundry\""},"keywords":{"type":"string","description":"Free text to match in title/address"},"sort":{"type":"string","enum":["price_asc","price_desc","commute","newest"],"description":"Sort order for results"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rank_by_commute","kind":"act","impl":"imperative","description":"Rank the currently visible listings (or the user's shortlist) by public-transit commute time to a landmark. Use when the user mentions their workplace, school, or a place they need to commute to. Results reorder the user's grid live and show commute badges on each card.","inputSchema":{"type":"object","properties":{"destination":{"type":"string","enum":["fidi","mission","goldengatepark","ucsf"],"description":"Where to commute to: \"fidi\" = Financial District (work), \"mission\" = Mission District (nightlife), \"goldengatepark\" = Golden Gate Park (outdoors), \"ucsf\" = UCSF Medical Center"},"scope":{"type":"string","enum":["visible","shortlist"],"description":"Rank visible results (default) or the user shortlist"}},"required":["destination"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_listings","kind":"act","impl":"imperative","description":"Compare 2-4 rental listings side by side — price, size, beds/baths, commute, walk/transit scores and amenities. The comparison appears as a banner above the user’s grid. Use when the user asks to compare options or decide between listings.","inputSchema":{"type":"object","properties":{"listingIds":{"type":"array","items":{"type":"string"},"description":"2-4 listing IDs (get them from search_listings results)"}},"required":["listingIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_similar","kind":"answer","impl":"imperative","description":"Find listings similar to one the user liked — matching neighborhood, price band, size, type and amenities. Optionally auto-saves the top matches to the user's shortlist. Use after the user hearts a listing or says 'find me more like this'. This demonstrates the agent learning the user's taste.","inputSchema":{"type":"object","properties":{"listingId":{"type":"string","description":"The listing the user liked"},"count":{"type":"number","description":"How many similar listings to find (default 12)"},"autoShortlistTop":{"type":"number","description":"Auto-save top N matches to shortlist (default 3, 0 to disable)"}},"required":["listingId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"shortlist_listing","kind":"act","impl":"imperative","description":"Add or remove a listing from the user's shortlist (the heart/save feature). The user's Saved panel updates instantly so they see the agent's action live. Use when the user asks to save, shortlist, heart, or organize listings.","inputSchema":{"type":"object","properties":{"listingId":{"type":"string","description":"Listing to shortlist"},"action":{"type":"string","enum":["add","remove"],"description":"Default: add"}},"required":["listingId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"schedule_viewing","kind":"transact","impl":"imperative","description":"Book a property viewing (tour) appointment. The booking appears instantly in the user's Viewings panel. Use when the user wants to visit, tour, or schedule a viewing for a listing. Available slots: 10:00, 11:30, 13:30, 15:00, 17:30 — any day within the next 7 days.","inputSchema":{"type":"object","properties":{"listingId":{"type":"string","description":"Listing to tour"},"date":{"type":"string","description":"Day name like \"Saturday\"/\"tomorrow\" or YYYY-MM-DD. Default: next Saturday"},"timeSlot":{"type":"string","enum":["10:00","11:30","13:30","15:00","17:30"],"description":"Time slot. Default: 11:30"}},"required":["listingId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"draft_landlord_message","kind":"act","impl":"imperative","description":"Draft an inquiry message to a listing's landlord. The draft appears in the listing detail panel for the user to review and send. Use when the user wants to contact a landlord or ask about a property.","inputSchema":{"type":"object","properties":{"listingId":{"type":"string","description":"Listing to inquire about"},"tone":{"type":"string","enum":["friendly","professional","enthusiastic"],"description":"Message tone. Default: friendly"},"moveInDate":{"type":"string","description":"When the user wants to move in, e.g. \"October 1\""}},"required":["listingId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Travel & Events","apiSurface":"spec","toolCount":7}}