Booking an Airbnb with Claude (and MCP)
An experiment with an unofficial Airbnb MCP server, the blurry line between agent and bots, and the evolving norms of the web.
Fun experiment: Think about an upcoming trip, and try asking your AI tool of choice to help you find a great Airbnb.
Searching for AirBnBs with AI
Here’s an example I tried for an upcoming wedding in Charlottesville:
Claude’s first instinct was to use the default tool it has available, web search. And it dutifully went to Bing and searched for something that a human would never type:
"Charlottesville downtown" "whole house" OR "entire house" "sleeps 8" OR "sleeps 7" OR "sleeps 6" Airbnb walking distance mall”
As it turns out, the results from this frankenstein search aren’t very good. Suddenly Claude is reading links about CozyCozy properties in Charleston, SC and gets all scrambled.
The results are missing:
Availability data (the most important thing)
Direct Airbnb links (critical to actually book)
Most of the specified criteria (e.g. suggesting 12-minute drives instead of walking distance, some results are bed & breakfasts or CozyCozy properties rather than Airbnbs)
ChatGPT did a little better, but still guessed on pricing and availability. And somehow, CozyCozy was still in the mix.
(If you work in marketing and you haven’t started investing in your presence on Bing, now is the time. ChatGPT is the most popular AI tool in the world, and ChatGPT searches with Bing.
If you try out the franken-query about Charlottesville downtown whole houses above, Cozycozy doesn’t come up in Google at all, but Cozycozy links rank 1 and 6 on Bing. Draw your own conclusions!)
Searching for AirBnBs with AI + MCP
This problem (AI struggling with a task that is specific to a tool or platform) is exactly the kind of situation where MCP servers are so valuable! Instead of relying on outdated training data or inefficient web searches, MCP gives LLMs access to task-specific tools.
After a quick search, I found this great AirBnB MCP Server and added it to Claude Desktop using a DXT file (instructions on how to do this yourself are at the bottom of this post).
Unlike official “ChatGPT Connectors,” this wasn’t built by Airbnb, but by an independent developer. After installing, Claude suddenly had two new tools to work with: airbnb_search
and airbnb_listing_details
:
When I try the same query again, here are the results:
This is way better! Suddenly, thanks to MCP, I have:
Up-to-date availability and pricing
Direct Airbnb listing links
Accurate filters (like walking distance)
And if I want to filter this down further, I can just ask the AI:
Using an MCP server made the experience dramatically better. Instead of scraping the whole web, Claude could directly use the right tool, with the right data, at the right time.
Under the Hood: How the Airbnb MCP Server Works
Most “official” MCP servers are just wrappers around existing company APIs. Companies like Gmail or Notion take the data they already share externally, and just add tooling to make those existing data connectors easy for LLMs to use.
Airbnb is different, because they don’t have a public API. They’re trying to protect their data by not allowing broader programmatic access.
So instead, this MCP server uses a clever workaround. When you perform a search on Airbnb, all your preferences — location, check-in date, price, number of guests — get encoded into a URL. Everything after the ?
in that URL is called a query parameter, and it’s basically how Airbnb passes your request to its backend. For example, for this search:
Here’s the (mildly simplified) URL:
https://www.airbnb.com/s/homes?checkin=2025-09-17&checkout=2025-09-19&adults=6&place_id=ChIJj6RQ6i2Gs4kR_HSLw5bwhpA
In this case, checkin=2025-09-17
and adults=6
are examples of those query parameters. Since we know that this type of URL returns relevant info on Airbnb, we can take advantage of that pattern.
Here’s what the Airbnb MCP server does when I type in my request:
The LLM figures out which parameters matter (location, dates, guests, price, etc.).
The MCP server builds a valid Airbnb search URL with those parameters.
It then fetches that URL, scrapes the page, and returns structured results.
This is very clever! But there’s a catch.
Robots.txt and Web Scraping Etiquette
Most websites publish a file called robots.txt
. robots.txt
is a convention from the early days of the web. It’s a plain text file that lives on most websites as a note to bots, saying: “Here’s where you can go, here’s where you can’t.” It’s the digital equivalent of a traffic sign.
Airbnb’s robots.txt
file (airbnb.com/robots.txt) explicitly blocks bots from scraping most of their site. So then, how does this MCP server work?
Two Tool Calls, One Key Difference
When the Airbnb MCP server ran, the first attempt respected robots.txt
and failed.
The LLM then asked me if I wanted to try again, using a different version of the tool that would ignore Airbnb’s robots.txt
guidance. When I opted for that version, the tool worked perfectly:
The default behavior was to “play by the rules,” but as the user, I had the option to override. So I did.
The Gray Zone of Agent Behavior
That leads to a tricky question: when should AI agents respect robots.txt
?
In my case, I wasn’t scraping Airbnb at scale, reselling data, or doing competitive analysis. I was just trying to find a place to stay and asking a bot to automate the same clicks I’d make manually. From that perspective, the agent was acting on my behalf, not as a rogue crawler.
But this is the fuzzy middle ground. At what point does an “assistant helping a human” cross the line into “bot extracting data against a site’s wishes”?
An Aside: Recent Cloudflare / Perplexity Tech Drama
This debate isn’t limited to me and the Airbnb MCP server.
Earlier this month, Cloudflare published a post accusing Perplexity (an AI-powered browser) of both ignoring robots.txt
and disguising its crawler identity. Perplexity then wrote a far more scathing response, calling Cloudflare’s post ‘embarrassing’ and arguing that AI assistants serving end-users should be treated differently than traditional bots
(This is, more or less, the pinnacle of tech drama: writing technical blog posts to insult one another.)
Towards a Better Agent Experience
While the Cloudflare / Perplexity spin-out was excessively dramatic, it does highlight a real tension. It’s clear that our robots.txt ‘traffic signs’ aren’t ready for the complexities and nuances of the agentic web:
Airbnb doesn’t want mass scraping of host data (understandable).
But they also don’t want me defaulting to a hotel or to Cozycozy because my AI assistant can’t access Airbnb listings.
While companies may not want to give up their data to AI tools, they might just have to, to avoid losing business to others who are willing to play ball.
This highlight from Brian Balfour (former VP of Growth at Hubspot)’s appearance on Lenny’s Podcast does a nice job of summing up that challenge:
For now, workarounds like the Airbnb MCP server work surprisingly well. But long term, I believe that the companies that thrive will be the ones who design deliberately for the agentic future, where the “user” isn’t always a human clicking through a webpage, but sometimes an assistant acting on their behalf.
AI tools are already becoming central to search and commerce. Gating your data from them might be helpful in the short term, but will likely hurt your business in the longer run.
Appendix: How to Try the AirBnB MCP
This unofficial Airbnb server uses something called stdio
rather than ‘remote transport’, so it only works with desktop apps (e.g. Claude Desktop, Cursor). Here’s a quick way to get started:
Download or open Claude Desktop
Download the Airbnb MCP server
.dxt
file (a prepackaged version- learn more in my DXT post!)Double click to install in Claude Desktop:
Manage/uninstall anytime under Settings > Extensions.
This is really cool, thanks for sharing!