SuperAPI AI Directory

mcp-server-airbnb

Search Airbnb and get listing details.

Open website

About this tool

Purpose

mcp-server-airbnb is a Model Context Protocol (MCP) server, packaged in MCP Bundle (MCPB) format, with the goal of enabling MCP-compatible AI applications (such as Claude Desktop, Cursor, etc.) to search Airbnb listings and retrieve listing details. The project is maintained by openbnb-org, uses the MIT license, and is not affiliated with Airbnb, Inc.

The official description also mentions a hosted alternative, openbnb.ai: if you do not want to run a local server yourself, you can have the MCP client connect directly to this hosted service, with no need for Node, npx, or configuration files, and it provides richer filters and interactive UI components. If you choose self-hosting, then use the open-source server according to the repository instructions.

Main capabilities

Search capabilities

  • Location-based search, supporting city, state, and region, and supporting international location queries through client-side geocoding (for example, "Paris, France", "Copenhagen, Denmark").
  • Supports Google Maps Place ID integration for precise location targeting.
  • Can filter by listing type: entire home (entire_home), private room (private_room), shared room (shared_room), or hotel room (hotel_room).
  • Can set check-in and check-out dates.
  • Can configure guest composition: number of adults, children, infants, and pets.
  • Supports minimum and maximum nightly price constraints.
  • Supports pagination, making it easy to browse large numbers of results.

Listing details

Retrieve detailed information for a specified listing, including: coordinates and location details, amenity information organized by category (seeAllAmenitiesGroups), house rules and policies, listing highlights and description, and a direct Airbnb listing link. The official documentation specifically notes that amenities shown by Airbnb as struck through are placed in their own "Not included" category, for example:

{
  "seeAllAmenitiesGroups": {
    "Bathroom": "Hair dryer",
    "Heating and cooling": "AC - split type ductless system, Heating",
    "Not included": "Dryer, Hot water"
  }
}

How to use

Install via Claude Desktop

This extension is distributed as an MCPB (.mcpb) file:

  1. Download the .mcpb file from the latest release.
  2. Open the file, and Claude Desktop will show an installation dialog.
  3. Configure the extension settings as needed.
  4. To ignore robots.txt, find the extension in Claude Desktop settings and enable the "Ignore robots.txt" toggle.

Install via clients such as Cursor

The prerequisite is that Node.js is installed on the desktop so that npx is available. Go to Cursor Settings > Tools & Integrations > New MCP Server, and add one of the following configurations in mcp.json:

{
  "mcpServers": {
    "airbnb": {
      "command": "npx",
      "args": ["-y", "@openbnb/mcp-server-airbnb"]
    }
  }
}

If you need to ignore robots.txt for all requests, use the version with the --ignore-robots-txt parameter:

{
  "mcpServers": {
    "airbnb": {
      "command": "npx",
      "args": ["-y", "@openbnb/mcp-server-airbnb", "--ignore-robots-txt"]
    }
  }
}

Configurable options

  • Ignore robots.txt: Boolean value (checkbox), default false, used to bypass robots.txt restrictions when making requests to Airbnb; it is recommended to enable it only when testing is needed.
  • Disable third-party geocoding: environment variable DISABLE_GEOCODING, skips the Photon/Nominatim geocoding step and lets Airbnb resolve the location string itself; when enabled, each search only accesses airbnb.com and does not generate third-party calls. It is recommended to keep it disabled unless you need to completely avoid third-party outbound traffic; when enabled, search results for non-US locations may be incorrect.

Tool parameters

Search tool (search Airbnb listings):

  • location(required): the location to search, for example "San Francisco, CA". If placeId is not provided, the server will perform client-side geocoding via Photon/Nominatim.
  • placeId(optional): Google Maps Place ID, which overrides location and completely skips client-side geocoding (no third-party calls).
  • checkin(optional): check-in date, format YYYY-MM-DD.
  • checkout(optional): check-out date, format YYYY-MM-DD.
  • adults(Optional): Number of adults, default 1.
  • children(Optional): Number of children, default 0.
  • infants(Optional): Number of infants, default 0.
  • pets(Optional): Number of pets, default 0.
  • minPrice(Optional): Minimum price per night.
  • maxPrice(Optional): Maximum price per night.
  • cursor(Optional): Pagination cursor.
  • propertyType(Optional): Listing type filter, available options are entire_home, private_room, shared_room, hotel_room.
  • ignoreRobotsText(Optional): This request overrides robots.txt.

The returned content includes search results with listing details, prices, and direct links, pagination information for browsing more results, and a search URL for reference.

Listing Details Tool (airbnb_listing_details):

  • id(Required): Airbnb listing ID.
  • The returned content includes coordinate location details, amenities and facilities (organized by seeAllAmenitiesGroups), house rules and policies, listing highlights and description, and a direct link to the listing.

Use Cases

Suitable for scenarios involving Airbnb listing search and analysis through AI agents, such as assisting with travel accommodation research, comparing listing options in different locations, or integrating listing query capabilities into conversational AI. The official statement emphasizes that this tool is intended for legitimate research and booking assistance purposes.

Limitations and Notes

  • Complies with robots.txt by default; the bypass option is recommended only for testing.
  • Geocoding: In addition to airbnb.com, the server sends geocoding requests to two third-party services, sending only the location string from the request (no other fields, no IP geolocation, no tracking identifiers). This is to work around the issue where Airbnb's own server-side geocoding produces incorrect results for non-US queries. You can opt out by providing placeId or setting DISABLE_GEOCODING=true ; the latter restores the old behavior and guarantees zero third-party outbound traffic, at the cost that non-US location results may be incorrect. If the geocoding services are unreachable or return no results, the server falls back to sending the location string directly to Airbnb, so the worst case is that international searches degrade to the old behavior rather than the search failing entirely.
  • Be mindful of request frequency to avoid placing excessive load on Airbnb's servers.
  • The official guidance is to comply with Airbnb's Terms of Service and rate limits, and to extract publicly available information only for legitimate purposes.
  • The project does not state specific fees or pricing information, and none is currently provided.

Technical Details

  • Runtime: Node.js 18 and above (elsewhere in the documentation written as Node.js 18.0.0 or higher).
  • Protocol: Model Context Protocol (MCP), via stdio transport.
  • Format: MCP Bundle (MCPB) v0.3.
  • Dependencies: Minimal external dependencies are maintained for security and reliability.
  • Platforms: macOS, Windows, Linux.
  • Claude Desktop: 0.10.0 or higher.
  • Other MCP clients: Compatible with any application that supports MCP.

Security and Compliance Measures

Complies with robots.txt by default, request timeout limits, input validation and sanitization, secure environment variable handling, no storage of sensitive data; uses Cheerio for efficient HTML parsing, request caching where appropriate, low memory usage, and fast startup and response. For error handling, it provides comprehensive logging with timestamps, graceful degradation when Airbnb page structure changes, network request timeout protection, and detailed error messages for troubleshooting.

Building from Source

npm test will drive the built server to actually call the tools via stdio:

  • test-extension.js: MCP handshake, tool listing, one search, listing details, and the geocoding paths (Photon, Nominatim fallback).
  • test-amenities.js: Facility extraction across multiple live listings, checking that facilities crossed out by Airbnb do not appear as facilities provided by the listing.

Both tests access airbnb.com and the geocoder over the network, so they require a network connection and may fail due to changes in Airbnb's page structure; this is both the purpose of the tests and means they are not suitable as unattended CI gates. The server can also be run directly.