Airbnb MCP Server: How to Connect Claude, Cursor, and ChatGPT to Airbnb Data
This guide covers the two kinds of Airbnb MCP server, the tools each one exposes, setup in Claude, Claude Code, Cursor, and ChatGPT, and three real prompts with their raw output.
Table of contents


There is no official Airbnb MCP server.
Every Airbnb MCP server you can install today is either open-source code that runs on your own machine or a hosted endpoint run by a data provider.
Both let Claude, Cursor, or ChatGPT search Airbnb and read listings from a plain-English prompt.
They differ in setup, in the tools they expose, and in who keeps them working when Airbnb changes a page.
This guide covers both kinds, the exact tools, setup in four clients, three real prompts with the raw output the agent got back, and the jobs where an MCP server is the wrong tool.
Key Takeaways
- Airbnb doesn't publish an MCP server. It has no open developer API either, so every Airbnb MCP server reads public listing data one way or another.
- The real choice is local or hosted. An open-source server runs on your machine and costs nothing. A hosted Airbnb MCP server connects with a key or a sign-in, and its provider maintains it.
- Four tools cover most questions. Search a destination, read a listing, read its reviews, and check its calendar.
- Dated search prices are partial. Two runs of the same Lisbon search on October 6, 2026 priced 9 and then 11 of 18 cards; the rest came back with no price.
- MCP is for asking, REST is for building. Scheduled monitoring, bulk pulls, and product features belong on the REST endpoints, called from your own code.
Is There an Official Airbnb MCP Server?


No.
Airbnb hasn't released one, and its official API is reserved for approved partners building host software (our Airbnb data API guide covers who qualifies).
So every Airbnb MCP server reads the same public listings a browser sees.
They come in two kinds, and both speak the Model Context Protocol, the standard that lets an AI client call outside tools.
Open-source servers run on your own machine.
The best-known is openbnb-org/mcp-server-airbnb on GitHub: MIT-licensed, about 550 stars and 128 forks, last updated August 6, 2026.
It runs locally over stdio on Node 18 or later and fetches airbnb.com pages from your own connection.
It exposes two tools, and neither one reads reviews.
airbnb_search takes a location, dates, guests, a minimum and maximum nightly price, a property type, and a pagination cursor.
airbnb_listing_details returns amenities grouped by category, house rules, and coordinates.
Hosted servers run on the provider's infrastructure.
Your client connects to a remote HTTP endpoint with an API key or an OAuth sign-in, and the provider keeps the extraction working when Airbnb changes its pages.
StayAPI runs one at https://api.stayapi.com/mcp, and it's the hosted column below.
| Local Open-Source | Hosted (StayAPI) | |
|---|---|---|
| Where it runs | Your machine, over stdio | Provider servers, over HTTP |
| Install | Node 18+ plus a config entry, or a Claude Desktop bundle | A URL plus a key, or a sign-in |
| Auth | None | X-API-Key header or OAuth |
| Airbnb tools | Search, listing details | Search, listing details, reviews |
| Search controls | Price range, property type, pagination | Dates, guests, currency; first page only |
| When Airbnb changes a page | Wait for a maintainer fix, then update | The provider fixes it |
| Cost | Free | Per request, 50 free on signup |
That "when Airbnb changes a page" row is the same tradeoff every scraper lives with, and our Airbnb scraper guide covers it in depth.
What the Airbnb MCP Tools Return


The tool list is the contract: it decides what your agent can ask and what it has to guess.
These are the four Airbnb tools on StayAPI's hosted server, checked live on October 6 and 7, 2026.
| Tool | Input | Returns | Limits |
|---|---|---|---|
airbnb_search_listings |
location (required), paired check_in / check_out, guest counts, currency |
listing_id, name, rating_display ("4.89 (469)"), displayed_price ("€340"), price_qualifier ("total"), price_applies_to_requested_dates |
First page only (18 cards), no pagination, no lookup by property name |
airbnb_listing_details |
listing_id or any Airbnb URL, dates, guests |
title, rating_count, badge ("Guest favorite"), max_guests, children, infants, and pets flags |
No price and no amenity list in our test |
airbnb_listing_calendar |
listing_id (send it as a string to keep all 19 digits) or URL, months 1-12 (default 12) |
Per day: date, available, available_for_checkin, bookable, min_nights |
No nightly prices |
airbnb_listing_reviews |
listing_id or URL, sort_by (MOST_RECENT or BEST_QUALITY), limit 1-50, offset |
rating, text, language, created_at, reviewer name, host_response, total_count, has_more |
Up to 50 reviews per call; page with the string offset token |
Undated searches return cards with no prices.
Dated searches price a card only when Airbnb applies its displayed price to your dates, which is what price_applies_to_requested_dates reports.
Neither mode confirms that the dates are open: every response carries availability_verified: false, so check open nights with the calendar tool.
Each tool call counts as one request against the same quota as the REST API, and calls that fail aren't billed.
A fee-inclusive price quote exists over REST (the Airbnb pricing endpoint), and the MCP doesn't expose it, so an agent in chat can tell you which nights are open but can't quote the total.
The calendar tool mirrors the Airbnb calendar endpoint, so the same availability data works in chat and in code.
How to Set Up an Airbnb MCP Server in Claude, Cursor, and ChatGPT


Setup is one config entry or one connector dialog.
The strings below come from the MCP setup docs; for another hosted provider, swap in its URL and auth.
The One-Prompt Install
Claude Code, Cursor, Codex, and other agents that can read a URL will install the server themselves.
Paste this into the agent:
Read https://stayapi.com/install and set up the StayAPI MCP server for me.
The agent reads the setup page, asks for your key, and writes its own config.
Airbnb MCP in Claude (Web, Desktop, and Mobile)
No key gets pasted anywhere on this route.
1. In Claude, open Settings > Connectors > Add custom connector.
2. Name it (StayAPI, say) and set the URL to https://api.stayapi.com/mcp. The dialog has just those two fields.
3. Click Continue, sign in, and choose Allow.
The connector signs in with OAuth, and its access token expires after an hour and refreshes on its own.
It syncs across Claude on the web, desktop, and mobile.
Claude Code
claude mcp add --scope user --transport http stayapi https://api.stayapi.com/mcp --header "X-API-Key: YOUR_API_KEY"
Open a new session (sessions already running won't see the server), then run claude mcp list.
It should show stayapi as Connected.
New to the terminal client?
Our Claude Code tutorial covers the basics.
Cursor
Save this as ~/.cursor/mcp.json (create the file if it's missing), then restart Cursor:
{
"mcpServers": {
"stayapi": {
"type": "http",
"url": "https://api.stayapi.com/mcp",
"headers": { "X-API-Key": "YOUR_API_KEY" }
}
}
}
ChatGPT (Developer Mode)
Developer mode runs on the web for Plus, Pro, Business, Enterprise, and Edu plans, and it signs in with OAuth.
1. Turn on Settings > Security and login > Developer mode.
2. Open chatgpt.com/plugins, click +, and choose Create MCP app.
3. Set the URL to https://api.stayapi.com/mcp, pick OAuth, and leave the client ID and secret blank.
4. Sign in, choose Allow, and install the app from your personal plugins.
5. In a Work chat, type @ plus the app's name and ask.
Claude Desktop Config File (Fallback)
Claude Desktop's JSON config only accepts local stdio entries, so a hosted server goes through the mcp-remote bridge:
{
"mcpServers": {
"stayapi": {
"command": "npx",
"args": ["-y", "mcp-remote@0.1.18", "https://api.stayapi.com/mcp", "--header", "X-API-Key:YOUR_API_KEY"]
}
}
}
Keep the version pinned, since newer builds have thrown Unexpected content type: null.
| Client | Method | Auth | It Worked When |
|---|---|---|---|
| Claude (web, desktop, mobile) | Custom connector | OAuth sign-in | A reply shows "Used airbnbsearchlistings" |
| Claude Code | claude mcp add |
X-API-Key header |
claude mcp list shows Connected |
| Cursor | ~/.cursor/mcp.json |
X-API-Key header |
The server's tools appear in Cursor's MCP settings |
| ChatGPT | MCP app in developer mode | OAuth sign-in | The app answers after an @ mention in a Work chat |
| Claude Desktop (file) | mcp-remote bridge |
X-API-Key header |
Tools appear after a relaunch |
If It Doesn't Connect
| Symptom | Cause | Fix |
|---|---|---|
spawn npx ENOENT (Claude Desktop on Windows) |
Claude Desktop doesn't inherit your shell PATH | Point command at the absolute path to npx.cmd |
Unexpected content type: null |
A newer mcp-remote build |
Pin mcp-remote@0.1.18 |
JSON-RPC error -32001 with HTTP 401 |
Missing or wrong API key | Copy the current key from your dashboard and add the server again |
quota_exhausted on every call |
Monthly quota used up | Wait for the reset_at time or upgrade |
| The agent answers without calling a tool | The prompt didn't match a tool | Name the platform ("search Airbnb for...") or paste a listing URL |
Three Airbnb Prompts, Real Output


Here's what an agent actually gets back.
All three prompts ran through the hosted StayAPI server on October 6, 2026, and every JSON block is the raw tool output, truncated.
Prompt 1: Search a Destination
Find Airbnb places in Lisbon for two adults, November 12 to 15, prices in euros.
The agent called:
airbnb_search_listings(location="Lisbon, Portugal", check_in="2026-11-12", check_out="2026-11-15", adults=2, currency="EUR")
{
"location": "Lisbon, Portugal",
"dates_requested": true,
"availability_verified": false,
"page_scope": "first_page",
"count": 18,
"listings": [
{
"listing_id": "5825739",
"name": "• Santos - Typical & Cosy apartment •",
"rating_display": "4.89 (469)",
"displayed_price": "€340",
"price_qualifier": "total",
"price_applies_to_requested_dates": true
},
{
"listing_id": "32422325",
"name": "Brand new apartment right in the heart of Alfama.",
"rating_display": "4.82 (479)",
"displayed_price": null,
"price_qualifier": null,
"price_applies_to_requested_dates": false
},
...
]
}
11 of the 18 cards carried a 3-night total, from €282 to €477.
The other 7 came back with displayed_price: null, and an earlier run of the same search that day priced only 9.
So tell the agent to compare priced cards only, and to treat every card as unconfirmed until you check the dates on Airbnb.
Prompt 2: Read the Newest Reviews
What are the newest reviews for airbnb.com/rooms/739227 saying?
The agent called:
airbnb_listing_reviews(listing_id=739227, sort_by="MOST_RECENT", limit=5)
{
"listing_id": 739227,
"total_count": 234,
"review_count": 5,
"has_more": true,
"reviews": [
{
"rating": 5,
"text": "地點位置非常好, 走路就可以到車站,而且離Tram 28 其中一站非常的近。...",
"language": "zh-TW",
"created_at": "2026-10-05T10:14:56Z",
"host_response": null
},
{
"rating": 5,
"text": "...there is some street noise outside as others have mentioned but that didn’t bother us in the least and was not really noticeable with windows closed...",
"language": "en",
"created_at": "2026-09-04T09:12:31Z",
"host_response": null
},
...
]
}
All 5 reviews are 5 stars, dated August 6 to October 5, 2026, out of 234 in total.
The newest is in Traditional Chinese, so ask the agent to translate before it summarizes.
The useful detail sits in the September review: street noise that's "not really noticeable with windows closed," which a 4.94 rating will never tell you.
Five reviews in chat is a spot check.
For a listing's full review history, our Airbnb review data guide covers the bulk options.
Prompt 3: Check the Listing
Give me the details for that listing for those dates.
The agent called:
airbnb_listing_details(listing_id=739227, check_in="2026-11-12", check_out="2026-11-15", adults=2, currency="EUR")
{
"listing_id": 739227,
"title": "T1 Bairro Alto - 2 min from Baixa and Chiado",
"rating": "4.94 (234)",
"rating_count": 234,
"badge": "Guest favorite",
"host_name": null,
"max_guests": 3,
"pets_allowed": true,
...
}
The listing sleeps 3, takes pets, and carries the Guest favorite badge.
The response has no price, even with dates passed, and no amenity list.
The dated price lives on the search card, so ask in that order: search first → details and reviews for the listings worth a closer look.
Hosted or Open-Source: Which Airbnb MCP Server Fits
The open-source server has the better search.
Price range, property type, and pagination all work, and it costs nothing.
The hosted one adds a reviews tool and works in Claude on the web and mobile and in ChatGPT through a sign-in, with no Node install.
It also keeps working through Airbnb page changes without you updating anything, and the same key covers the Booking.com, Google Hotels, and Tripadvisor tools on the hotel data MCP server.
| Your Job | Better Fit | Why |
|---|---|---|
| Filter Lisbon by price and property type, for free | Open-source | minPrice, maxPrice, and propertyType on search |
| Page through 200 results | Open-source | Cursor pagination; hosted search stops at the first page |
| Read a listing's reviews in chat | Hosted | The open-source server has no reviews tool |
| Ask from Claude mobile or ChatGPT | Hosted | OAuth connector, no local process |
| Skip Node and config files | Hosted | One URL and a sign-in |
When to Use the REST API Instead
An MCP server answers questions inside an assistant.
Anything that runs without you typing belongs on the REST endpoints, called from your own code.
That covers scheduled monitoring of a competitor's reviews, a pricing feature inside your own product, and bulk pulls across hundreds of listings.
Each request returns the listing as it stands right now → your code decides what to store.
The Airbnb API overview lists the calendar, pricing, reviews, and details endpoints.
To wire the same data into your own app as tools, the AI travel agent tutorial walks through it end to end.
Getting Started
- Sign up at stayapi.com for a key (50 free requests, no credit card), or skip the key and use the Claude or ChatGPT sign-in route above.
- Add the server with the one-prompt install or your client's block above, and confirm it shows as connected.
- Paste an Airbnb listing URL and ask for its newest reviews, or preview the same data first in the free Airbnb reviews tool and listing details tool, which read any public listing.
- Check usage in your dashboard; each tool call counts as one request.
- When a question turns into a recurring job, move it to the REST endpoints, or to N8N and Make.com for a no-code version. For a team setup on your own listings, book a demo call.
FAQ
Is there an official Airbnb MCP server?
No.
Airbnb hasn't released one.
The Airbnb MCP servers that exist are open-source projects you run locally and hosted servers run by data providers.
Does Airbnb have an open API?
No public one.
Airbnb's official API is limited to approved partners building host-facing software, and it covers their own connected listings, with no market data.
Data APIs and MCP servers fill the gap for everyone else.
How do I use the Airbnb MCP server with Claude?
Add a hosted server as a custom connector under Settings > Connectors and sign in, or run claude mcp add in Claude Code with your API key.
For the open-source server, install its Claude Desktop bundle.
Then ask an Airbnb question in plain English.
Can ChatGPT connect to Airbnb?
Through an MCP server, yes.
Airbnb held off on an official ChatGPT app in October 2025, with its CEO saying OpenAI's app tools weren't "quite ready" (Fortune reported the interview).
The working route is developer mode: add a hosted Airbnb MCP server as an MCP app and sign in.
Is the Airbnb MCP server free?
The open-source server is free; you run it and keep it updated.
Hosted servers charge per request.
On StayAPI, each tool call counts as one request on the same quota as the REST API, with 50 free requests on signup.
Can an Airbnb MCP server book a stay?
No.
Both servers covered here are read-only: search, listing details, and (hosted) reviews.
Booking happens on Airbnb itself.
Where is the Airbnb MCP GitHub repo?
The open-source server lives at openbnb-org/mcp-server-airbnb on GitHub, under the MIT license.
Hosted servers install by URL: you add their address to your client.
Ready to simplify your hotel data?
Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.