A

MCP Agent Skill — airbnb

Airbnb Vacation Rentals Skill for MCP Agent

Search, filter, and inspect short-term vacation rental listings on Airbnb

Available free v0.1.0 Browser
$ sidebutton install airbnb
Download ZIP
README 7.7 KB

Airbnb Vacation Rentals

Public-facing search and listing surface for short-term vacation rentals. This pack reflects what was observed in a single guided session focused on Berlin/Brandenburg waterfront search — selectors and URL patterns are confirmed for that flow but the rest of Airbnb (host dashboard, messaging, trips, wishlists, payment, account settings) is not covered here.

Browser Access

No login required for browsing or extracting listing data. Logged-in state may surface different prices (member discounts) and saves to wishlist; not yet tested. Some pages return placeholder counts ("Over 1,000 homes") even when filters are applied — extract per-card data instead of trusting the header.

Known Surface Map

URL patternPurposeConfidence
/<city>--<country>/staysDestination landing page with calendar/search overlaymedium
/s/<destination>/homesSearch results (homes filter applied)high
/rooms/<id>Individual listing detail pagehigh
/become-a-host, /wishlists, /tripsListed in nav, not explorednone

Confirmed URL Filter Parameters

Verified in session against live results pages:

ParameterEffectExample
amenities[]=64Apply Waterfront amenity filter?amenities%5B%5D=64
kg_and_tags[]=Tag:686Sometimes appended alongside Waterfront — exact role unclear?kg_and_tags%5B%5D=Tag%3A686
room_types[]=Entire home/aptRestrict to entire homes (vs. private/shared rooms)?room_types%5B%5D=Entire%20home%2Fapt
min_bedrooms=NMinimum bedroom count?min_bedrooms=2
checkin=YYYY-MM-DD / checkout=YYYY-MM-DDDate window?checkin=2026-05-18&checkout=2026-05-25
adults=N / children=N / infants=N / pets=NGuest count?adults=2&children=3
place_id=<google-place-id>Geo anchor (Google Place ID)place_id=ChIJAVkDPzdOqEcRcDteW0YgIQQ for Berlin
query=<text>Free-text destinationquery=Berlin%2C%20Germany

Unknown / not tested: other amenity IDs (kitchen, pool, sauna, hot tub, EV charger), accessibility filters, host language, Instant Book, Self check-in, price range, property type drill-down (Houseboat, Cabin, Tiny home), Guest favorite/Luxe filters, sort order parameter.

Filter Modal — Known Sections

Found via the Filters button in the search results header:

SectionItems observedNotes
Recommended for you1+ bathrooms, Allows pets, Washer, KitchenQuick-toggle pills
Type of placeAny / Home / Room / HotelMaps to room_types[]
Price rangeSlider €50–€1800+ histogramURL param unknown
Rooms and bedsBedrooms, beds, bathroomsmin_bedrooms confirmed
AmenitiesPopular / Essentials / Features / Location → Waterfront / SafetyHas "Show more" reveal
Booking optionsInstant Book, Self check-in, Allows petsURL params unknown
Standout staysGuest favorite, LuxeURL params unknown
Property typeCollapsedItems not explored
Accessibility featuresCollapsedItems not explored
Host languageCollapsedItems not explored

Listing Card — Known Selectors

ElementSelectorNotes
Listing card container[itemprop="itemListElement"]Stable on results page
Detail linka[href*="/rooms/"]Per-card listing link with full search context
Listing IDextracted from /rooms/(\d+)Numeric ID
Filters buttonbutton with text "Filters"Opens modal

Listing Detail Page — Known Fields

Captured from body.innerText on detail pages:

FieldHow to find itNotes
Titleh1Property title
Capacityregex (\d+)\s+guests?\s*·\s*(\d+)\s+bedrooms?Compact summary line
Listing highlights"Listing highlights" sectionE.g. "On the lake", "Self check-in", "Park view", "Furry friends welcome"
DescriptionFree text under "Some info has been automatically translated. Show original"Often translated EN; toggle for original DE
Sleeping arrangement"Where you'll sleep" with bedroom blocksE.g. "Bedroom 1: 1 double bed"
Amenities"What this place offers" + "Show all N amenities"Includes Waterfront, Lake access, Beach access etc.
ReviewsPer-review blocks with rating, date, textUp to 6 visible without expanding

Known Domain Knowledge — Property Categories

Category textMeaning
Cottage, Bungalow, Cabin, Tiny homeStandalone small house
Home / Vacation homeStandalone full house
HouseboatOn-water structure
Apartment / Condo / Rental unitIn a multi-unit building
RoomPrivate room in shared property
HotelHotel listing (separate tab)

Known Amenity Distinctions (Water-Related)

Verified by reading detail pages of multiple listings:

Amenity tagWhat hosts actually mean (often)
WaterfrontSometimes literal (own dock/jetty), sometimes "near water" — must read description
Lake accessImplies path or shared access to lake
Beach access / Shared beach access / BeachfrontBeach is reachable; not always on the property
Lake viewView only; no implied access
PoolOn-property pool
SaunaOn-property sauna

Important calibration: Listings titled "directly on", "lakeside", "right on the lake" frequently turn out to be 100–300 m walks. Verify against the description text, not the title.

Known Workflows (Observed Manual Pattern)

GoalManual steps that work
Search waterfront homes in a cityNavigate /s/<dest>/homes?amenities[]=64&checkin=...&checkout=...&adults=...&children=... then read cards via [itemprop="itemListElement"]
Verify direct water accessOpen /rooms/<id>, read description for keywords like "jetty", "dock", "private harbor", "swim from", or distances in meters
Cross-reference availabilityOpen detail URL with check_in/check_out query params; "unavailable" message appears if dates blocked

No YAML workflows authored yet for this pack — all observations are starting points, not productionized routines.

Known Gotchas

  • Header count is unreliable: results page often shows "Over 1,000 homes" even when filter is active. Trust per-card data and the Show N places link in the Filters modal footer.
  • AI search doesn't narrow URL filters: typing natural-language queries into KI/AI search returns the same broad URL with enteredFrom=ai_search — does not visibly translate to URL filter params in observed runs.
  • Marketing language is unreliable: "directly on", "lakeside", "1st row" can mean 50–300 m walk. Read full description.
  • Pricing varies by guest count: same listing returns different totals when adults/children change — re-quote when changing party size.
  • Detail pages: above-the-fold only loads initially: when scraping body.innerText immediately after navigation, you may get only ~1.3 KB. Wait for content or scroll before extracting full description and reviews.

Unknown / Not Tested

  • Login, account, payment, messaging, host inbox, calendar
  • Wishlists / saved searches
  • Trips management, cancellations, refunds
  • Map-based search interactions (drag, zoom, draw area)
  • Pricing breakdown modal contents
  • Reviews pagination beyond initial 6
  • Property-type filter URL params (Houseboat, Cabin, etc.)
  • Amenity ID catalog beyond 64=Waterfront
  • Mobile site DOM
  • Localization differences (DE vs EN URL patterns and copy)
  • API endpoints (only DOM scraping observed)