LIVE SCRAPER EXPERIMENTAL

Airbnb

Airbnb’s search and listing pages, read live from airbnb.pl — the app state each page embeds, parsed without a browser. Search any city, region or country for your dates and party and get up to 18 stays a page with the total price for the whole stay, fees and taxes included, rating, Guest favourite and Superhost badges, beds and baths, and a link to the same stay. Open a listing for amenities, house rules, sleeping arrangements and the host. It’s experimental: the site carries a DataDome tag, so a call can fall back to an unblocker or fail. Airbnb’s own wording comes back in Polish.

2 tools ~1–2 s cache: 5 min PLN or any ISO code airbnb.pl pages (embedded app state), direct

Thirty seconds, any client.

claude mcp add --transport http airbnb https://mcp.wondel.ai/airbnb/mcp

One command in your terminal — the server is available in every Claude Code session.

This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.

2 tools, fully typed.

Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.

airbnb_search Places to stay on Airbnb in any city, region or country for your dates and guests: the total price with all fees, rating, Guest favourite and Superhost badges, beds and baths, and a link. Up to 18 per page, 15 pages.
Param Type Description
place * string Where to stay, as you’d type it into Airbnb: "Zakopane", "Kraków", "Mazury", "Lisbon, Portugal", "Tuscany". Add the country to disambiguate.
checkin date Arrival date, from today to about two years ahead. Pass together with checkout; omit both for Airbnb’s own suggested dates.
checkout date Departure date, after checkin — at most 365 nights; stays of 28+ nights are quoted per month.
adults integer
= 2
Adults (13+), 1–16.
children integer
= 0
Children aged 2–12; adults + children ≤ 16.
infants integer
= 0
Infants under 2, 0–5 — not counted as guests.
pets integer
= 0
Pets, 0–5 — limits results to pet-friendly stays.
currency string
= PLN
Three-letter ISO currency for prices, e.g. PLN, EUR, USD, GBP.
room_type enum entire_home = the whole place to yourself; private_room = a room. Omit for any. entire_homeprivate_room
min_bedrooms integer At least this many bedrooms, 1–50.
price_min integer Minimum total price for the whole stay incl. fees, in whole units of currency (needs dates).
price_max integer Maximum total price for the whole stay incl. fees, in whole units of currency (needs dates).
page integer
= 1
Results page, 1–15 (18 stays per page).
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
airbnb_listing One listing in full: capacity, sleeping arrangements, amenities, house rules and check-in times, the host (no contact details), rating categories and photos — and, with dates, the total price and whether it can be booked.
Param Type Description
listing * string The listing’s id from airbnb_search (e.g. "49891381") or its link from any Airbnb domain (airbnb.pl/rooms/…, airbnb.com/rooms/…).
checkin date Arrival date, from today to about two years ahead. Pass together with checkout; omit both for Airbnb’s own suggested dates.
checkout date Departure date, after checkin — at most 365 nights; stays of 28+ nights are quoted per month.
adults integer
= 2
Adults (13+), 1–16.
children integer
= 0
Children aged 2–12; adults + children ≤ 16.
infants integer
= 0
Infants under 2, 0–5 — not counted as guests.
pets integer
= 0
Pets, 0–5 — limits results to pet-friendly stays.
currency string
= PLN
Three-letter ISO currency for prices, e.g. PLN, EUR, USD, GBP.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.

Prompts that just work.

A whole flat in Gdańsk for 23–25 October, two adults, under 700 zł all-in — only places rated 4.8 or better.

airbnb_search

Lisbon for a week in March, four adults, two bedrooms or more: what does a night cost with fees included, in euros?

airbnb_search

Does this place have parking and a dishwasher, and what are the check-in times?

airbnb_listing

What comes back

airbnb_search · live response, captured 2026-09-24 from production, abridged

{
  "source": "direct+firecrawl+brightdata+zenrows",
  "fetchedAt": "2026-09-24T00:24:34.137Z",
  "query": { "place": "Gdańsk", "checkin": "2026-10-23", "checkout": "2026-10-25", "adults": 2, "room_type": "entire_home", "currency": "PLN", … },
  "search_url": "https://www.airbnb.pl/s/Gdansk/homes?checkin=2026-10-23&checkout=2026-10-25&adults=2&room_types%5B%5D=Entire+home%2Fapt&currency=PLN",
  "place": { "query": "Gdansk", "resolved": "Gdańsk, Polska", "city": "Gdańsk", "region": "Pomorze", "country": "Polska", … },
  "stay": { "checkin": "2026-10-23", "checkout": "2026-10-25", "nights": 2 },
  "currency": "PLN",
  "total_count": 4501,
  "page": 1,
  "total_pages": 15,
  "count": 18,
  "listings": [
    {
      "id": "1713947328735539037",
      "name": "Apartament Kaszmirowy",
      "kind": "Mieszkanie",
      "bedrooms": 1,
      "beds": 2,
      "rating": 5,
      "review_count": 9,
      "guest_favorite": true,
      "free_cancellation": true,
      "price_basis": "stay_total",
      "price": 530.49,
      "price_per_night": 265.25,
      "price_before_discount": 971.37,
      "currency": "PLN",
      "price_breakdown": [{ "label": "2 noce x 265,25 zł", "amount": 530.49 }],
      "url": "https://www.airbnb.pl/rooms/1713947328735539037?check_in=2026-10-23&check_out=2026-10-25&adults=2",
      …
    },
    …
  ]
}

Fetching tools share one envelope — source says where the data came from, fetchedAt says when, query echoes what you asked. With dates, price is the total for the whole stay, fees and taxes included; Airbnb’s wording (kind, details, price_text) is Polish. Compact JSON in one text block, exactly how agents like it.

Add Airbnb
to your agent.

mcp.wondel.ai/airbnb/mcp

Authless · Read-only public data · Streamable HTTP at /mcp