Airbnb MCP Server: Complete Guide (2026)
The Airbnb MCP server lets your AI agent search vacation rentals and pull full listing details — dates, price, guests, amenities, house rules — with no API key and no Airbnb account. This guide covers what it does, its two tools, the one-click MCPB install for Claude Desktop, the npx path for every other client, real recipes, and the one caveat most write-ups skip: it scrapes a site that doesn’t want to be scraped, so plan around that.

TL;DR + what you actually need
Three things to know before you install anything:
- NPM package:
@openbnb/mcp-server-airbnb— run it withnpx -y @openbnb/mcp-server-airbnb. Node 18+ is the only requirement. - No API key. No Airbnb account, no signup, no token. It reads public listing pages directly. (Airbnb has no public listings API — that’s the whole reason this exists.)
- Two tools:
airbnb_searchandairbnb_listing_details. Search with filters, then drill into any result.
The fast install paths:
- Claude Desktop: download the
.mcpbbundle from the repo’s latest release and double-click it — Claude Desktop pops an install dialog. One click, done. - Cursor / VS Code / Claude Code / Windsurf: add the
npxstdio block below to your MCP config, restart, and the two tools appear.
The rest of this guide walks through the tools, the install snippets, five recipes, the local-vs-hosted decision, and the terms-of-service and fragility caveats worth understanding before you lean on it. If you just want the lightweight no-key servers list, our free MCP servers page collects them.
What the Airbnb MCP server actually does
You ask your agent, in plain language, “find me a 2-bed place in Lisbon under €150/night for the first week of September, walkable to the river.” The agent calls airbnb_search with the location, dates, guest count, and price cap, gets back a ranked list of real listings with prices and direct links, then — if you want — calls airbnb_listing_details on the one you like to read its house rules and amenities. No browser tabs, no manual filter-clicking, no copy-pasting.
That’s the appeal, and it’s why this server stands out in a catalog full of developer tooling: it’s a genuinely consumer-facing MCP. Most servers wire an agent to a database, a CI system, or a docs index. This one wires it to travel planning — the kind of task a non-engineer would actually ask an assistant to do. It is, mechanically, a structured wrapper around Airbnb’s public search and listing pages, exposed to your agent as two clean tool calls.
The server is maintained by openbnb-org and is explicitly not affiliated with Airbnb, Inc. — the README says so directly. It’s an independent, MIT-licensed project that reads publicly available data. Keep that framing in mind; it matters for the terms-of-service section below.
The two tools, walked through
Everything the server does happens through two MCP tools. The flow is almost always: search, then (optionally) pull details on a hit.
Tool 1
airbnb_search
Runs a listing search. Filters: location (or a Google Maps placeId), check-in/check-out dates, adults/children/infants/pets, min/max price, property type (entire home, private room, shared room, hotel room), and a pagination cursor. Returns listings with pricing and direct links.
Tool 2
airbnb_listing_details
Takes one listing id (plus optional dates and guest counts) and returns the full detail: coordinates, amenities, house rules and policies, property highlights, descriptions, and a direct booking link.
A typical search call from an agent looks like this:
airbnb_search({
location: "Lisbon, Portugal",
checkin: "2026-09-01",
checkout: "2026-09-08",
adults: 2,
maxPrice: 150,
propertyType: "entire_home"
})The result includes a search URL for reference plus the listing IDs you’d feed into the second tool. Every parameter except location (or placeId) is optional — leave them off and you get a broad search you can narrow conversationally on the next turn.
Install (every client)
Two install shapes exist. Claude Desktop gets a one-click bundle; everything else uses the npx stdio command. The install panel below pulls the exact snippet for each client straight from our catalog, so it stays in sync — tap your client’s row and copy.
One-line install · Airbnb
Open server pageInstall
Claude Desktop (MCPB one-click)
This is the headline install path, and it’s the reason the server is packaged the way it is. openbnb ships it as an MCP Bundle (a .mcpb file — the packaging format for drop-in MCP extensions). The flow:
- Download the
.mcpbfile from the latest GitHub release. - Open the file. Claude Desktop shows an installation dialog.
- Confirm, and configure the extension settings (there’s an Ignore robots.txt toggle and a geocoding toggle — both default to off and most people leave them there).
No terminal, no JSON editing, no npx. For a consumer-facing tool aimed partly at non-engineers, that one-click bundle is the right call — it removes the exact friction (config files, Node installs) that stops normal users cold.
Cursor, VS Code, Claude Code (npx)
Every other MCP client runs the server as a stdio subprocess via npx. Make sure Node.js 18+ is installed, then add this to your client’s mcp.json (in Cursor: Settings → Tools & Integrations → New MCP Server):
{
"mcpServers": {
"airbnb": {
"command": "npx",
"args": ["-y", "@openbnb/mcp-server-airbnb"]
}
}
}Restart the client and the two tools show up. The same JSON works for Claude Code, VS Code, Windsurf, and any other MCP-aware client — only the config file location differs. Browse every client and its config path at our server directory, or open the canonical Airbnb server page for the live install commands.
Recipes
Five workflows where the Airbnb MCP server earns its keep. We assume it’s installed in your client of choice.
Recipe 1 — Conversational trip search
The obvious one, and still the best. “Find entire-home places in Kyoto for two adults, March 14–19, under ¥25,000 a night.” The agent fills the filters, runs airbnb_search, and hands back a shortlist. Then you refine in plain English — “only ones with a washer,” “closer to Gion” — and it re-searches. It’s the filter UI, driven by sentences instead of clicks.
Recipe 2 — Compare a shortlist side by side
You’ve got three listing IDs you like. Ask: “Pull details on these three and compare house rules, amenities, and exact location.” The agent calls airbnb_listing_details on each and builds a comparison table — cancellation policy, whether pets are allowed, how far from the center — that you’d otherwise assemble by flipping between tabs.
Recipe 3 — Budget sweep across dates
Flexible on timing? Prompt: “Same place type in Barcelona — check the first week of May vs the first week of June and tell me which is cheaper.” The agent runs two searches with different date ranges and reports the price delta. Useful for shoulder-season hunting where a week’s shift moves the price a lot.
Recipe 4 — Feed results into a wider itinerary
Chain it with other MCP servers. The agent searches Airbnb for lodging, then hands the coordinates to a maps or weather server, then drops the trip into your calendar. The Airbnb server is one node in a planning graph — its job is to turn a fuzzy lodging request into structured, linkable results the rest of the chain can use.
Recipe 5 — International search that actually lands right
Airbnb’s own location parser is famously bad at non-US queries. This server geocodes your location string first (more on that below), so “Copenhagen, Denmark” returns Copenhagen — not, as the README dryly notes Airbnb’s raw geocoder does, a town in Wisconsin. If you book abroad, this alone is worth the install.
Local server vs openbnb.ai (be honest about both)
Here’s a thing most guides gloss over: the same maintainer runs a hosted alternative, openbnb.ai, and the README points you to it first. They solve the same problem from opposite ends.
Local (this GitHub server)
- Open-source, MIT, you run the code
- No account, no third party in the loop
- Two base tools, runs on your machine
- You own breakage when Airbnb changes its site
Hosted (openbnb.ai)
- Zero setup — no Node, no config, no updates
- Richer filters than the base tools
- Interactive MCP UI components, not plain text
- A managed product you connect to and trust
The honest read: if you want control, auditability, and no external dependency, run the local server — it’s the one we’re documenting here and the one on the catalog page. If you don’t want to think about Node or maintenance and you’re comfortable routing through a third-party service, the hosted option removes every install step. Both come from the same author, so it’s not a trust-the-stranger situation either way — it’s a self-host-vs-managed trade-off, the same one you make with any tool.
The caveat nobody puts up front: ToS & fragility
Time for the part the marketing copy skips. This server does not call an official Airbnb API, because there isn’t one for listings. It reads Airbnb’s public web pages and parses them. That has two real consequences, and you should weigh both before building anything serious on top of it.
1. It lives in a terms-of-service grey area
Airbnb’s Terms of Service generally restrict programmatic access to the site. The server respects robots.txt by default and the maintainer explicitly frames it as a tool for legitimate research and booking assistance — but “respects robots.txt” is not the same as “Airbnb blessed this.” Treat it as a personal or research tool. Keep request volume modest. Do not build a commercial product that resells this data without talking to a lawyer first.
2. It will break when Airbnb redesigns
Scrapers are pinned to a page structure they don’t control. When Airbnb ships a layout change, parsing can break until the maintainer pushes a fix. The README notes graceful degradation and error logging, which softens the blow — but an API-backed server simply doesn’t have this failure mode. If you need rock-solid uptime, this is the wrong tool. If you need a handy search assistant and can tolerate the odd bad week, it’s fine.
None of this makes the server bad — it makes it honest about what it is: a clever wrapper around a site that would rather you used the app. Go in with that expectation and you’ll be happy. Expect Stripe-grade reliability from a scraper and you’ll be disappointed. The free, no-key convenience and the ToS/uptime fragility are two sides of the same coin.
Geocoding & privacy
One subtlety worth knowing because it surprises people watching their network traffic: by default, every search without an explicit placeId sends your location string to a third-party geocoder before it ever touches Airbnb. The server uses Photon (a free OpenStreetMap-based service) as primary, falling back to Nominatim. The reason is the international-accuracy fix from Recipe 5 — Airbnb’s own resolver gets non-US cities wrong, so the server resolves them upstream.
Only the location string you typed is sent — no other request fields, no IP geolocation, no tracking IDs. If you want zero third-party traffic, you have two outs: pass an explicit placeId (per request), or set the environment variable DISABLE_GEOCODING=true (globally). The catch: with geocoding off, non-US searches can return wrong results again, because you’re back to Airbnb’s broken resolver. It’s a deliberate trade-off, and the README documents it clearly.
License
The Airbnb MCP server is MIT-licensed. The full text lives at github.com/openbnb-org/mcp-server-airbnb/blob/main/LICENSE. MIT is permissive — fork it, redistribute it, embed it in other work. Note the license covers the server code, not the data it reads: the MIT grant says nothing about your right to scrape Airbnb, which is governed by Airbnb’s terms, not openbnb’s license. Two separate questions; don’t conflate them.
Troubleshooting
Searches return nothing / parsing errors
Usually Airbnb changed its page structure. Update to the latest version (npx -y @openbnb/mcp-server-airbnb@latest or re-download the .mcpb release) and check the repo’s issues — if the site shifted, a fix is often already in flight.
International location returns the wrong city
Geocoding may be disabled, or the geocoder is unreachable. Confirm DISABLE_GEOCODING is not set to true, or pass an explicit Google Maps placeId for the exact location you want.
Tools don’t appear in the client
Confirm Node.js 18+ is installed (the npx command needs it) and that the MCP config JSON is in the right file for your client. Restart the client to flush its tool list. For Claude Desktop, re-open the .mcpb bundle.
Blocked or empty results after heavy use
You may have tripped rate limiting by querying too fast. Back off the request rate — this is a scraper, so treat Airbnb’s servers gently. The maintainer explicitly asks users to be mindful of request frequency.
Who it’s for (and who it isn’t)
Use it if you want a personal, conversational way to search Airbnb from inside Claude, Cursor, or any MCP client; you value the no-API-key, one-click MCPB install; or you’re building a personal trip-planning agent that chains lodging search with other tools. The international-geocoding fix is a real, concrete win over Airbnb’s own search.
Skip it if you need guaranteed uptime or a stable contract — it’s a scraper and will occasionally break; you’re building a commercial product that depends on Airbnb data (the ToS exposure isn’t worth it without legal cover); or you’d rather not run anything locally, in which case the hosted openbnb.ai is the cleaner fit. New to the protocol itself? Start with our What is MCP guide first.
FAQ
Does the Airbnb MCP server need an API key?
No. The openbnb Airbnb MCP server requires no API key, no Airbnb account, and no sign-up. It reads publicly available listing pages directly, so you install it and start searching. Airbnb has no public listings API, which is exactly why the server scrapes the site instead of calling an official endpoint.
Is the Airbnb MCP server allowed? Does it violate Airbnb's terms?
It sits in a grey area. The server respects robots.txt by default and the maintainer frames it as a tool for legitimate research and booking assistance. But it reads listing pages programmatically, which Airbnb's Terms of Service generally restrict. Treat it as a personal/research tool, keep request volume low, and don't build a commercial product on top of it without legal review.
What is the Airbnb MCP server npm package name?
`@openbnb/mcp-server-airbnb`, published by openbnb-org and maintained in the openbnb-org/mcp-server-airbnb repository on GitHub. You run it via `npx -y @openbnb/mcp-server-airbnb`, or install the prebuilt `.mcpb` bundle in Claude Desktop with one click.
What tools does the Airbnb MCP server expose?
Two: `airbnb_search` and `airbnb_listing_details`. The first runs a listing search with filters (location, dates, guests, price range, property type, pagination). The second pulls full detail for one listing ID — amenities, house rules, coordinates, descriptions, and a direct booking link.
What is the difference between the local server and openbnb.ai?
The GitHub server is open-source (MIT), runs locally via npx or the MCPB bundle, and exposes the two base tools. openbnb.ai is a separate hosted service from the same maintainer: zero setup, richer filters, and interactive MCP UI components — but it's a managed product you connect to, not code you run. Pick local for control and zero dependencies; pick hosted to skip Node entirely.
Why does the Airbnb MCP server make geocoding requests?
Airbnb's own location resolver mishandles many non-US queries ("Paris, France" can land in the wrong region). To fix that, the server geocodes your location string client-side via Photon, falling back to Nominatim, before searching. Pass an explicit `placeId`, or set `DISABLE_GEOCODING=true`, to skip those third-party calls entirely.
Will the Airbnb MCP server break when Airbnb changes its site?
It can. Because it parses Airbnb's public HTML rather than a stable API, a site redesign can change the page structure and break parsing until the maintainer ships a fix. The server degrades gracefully and logs errors, but scraping-based tools are inherently more fragile than API-backed ones. Budget for occasional breakage.
Which clients support the Airbnb MCP server?
Any MCP-compatible client. Claude Desktop gets the one-click `.mcpb` bundle; Cursor, VS Code, Claude Code, Windsurf, and others use the `npx` stdio command in their MCP config. It also works with agent frameworks (LangChain, AutoGen, Agno) that speak MCP. Node.js 18+ is the only prerequisite.
Sources
- Airbnb MCP server repository & README: github.com/openbnb-org/mcp-server-airbnb (MIT, maintained by openbnb-org)
- NPM package: @openbnb/mcp-server-airbnb
- Hosted alternative: openbnb.ai
- Geocoders referenced in the README: Photon and Nominatim
- Community discussion: the server’s thread in r/mcp (highlighted as a no-API-key listings search server)
- Catalog entry: mcp.directory/servers/airbnb
Server
Airbnb MCP server — catalog page & live install
OpenCollection
Free MCP servers (no API key required)
BrowsePrimer
What is the Model Context Protocol?
ReadFound an issue?
If something here is out of date — a renamed tool, a new install path, a change in how Airbnb’s site behaves — email [email protected] or read more on our about page. We keep these guides current.