Airbnb Listing Search and Filter MCP Server
Search Airbnb listings with advanced filters and detailed property info using this MCP server Desktop Extension (DXT) for easy AI integration.
npx -y @openbnb-org/mcp-server-airbnbOverview
This MCP (Model Context Protocol) server exposes Airbnb search and listing data as a Desktop Extension (DXT) that integrates with MCP-compatible AI clients (for example, Claude Desktop or Cursor). It provides location-aware search, flexible filters (dates, guests, price, property type), pagination, and a separate endpoint to fetch full listing details including amenities, house rules, coordinates and direct listing URLs.
The server is designed to be simple to install as a DXT or run via npx as an MCP server. It includes safeguards for respectful scraping: robots.txt compliance by default, request timeouts, and logging. Configuration options let you disable third-party geocoding or override robots.txt on a per-request or global basis, useful for testing and private workflows.
Features
- Location-based search with city/region support and optional Google Maps Place ID
- Client-side geocoding (Photon/Nominatim) for international locations when no placeId is provided
- Date and guest configuration (adults, children, infants, pets)
- Price range and property type filters (entire_home, private_room, shared_room, hotel_room)
- Pagination support with cursors for large result sets
- Detailed listing endpoint: amenities, policies, neighborhood, coordinates, descriptions, booking link
- Robots.txt compliance by default; per-request and global overrides available
- Configurable timeouts and improved error logging
- Packaged as a DXT for quick installation in supported desktop AI apps
- Node.js 18+ runtime; MCP over stdio transport
Installation / Configuration
Install as a DXT (Claude Desktop and similar):
- Download the .dxt release from the repository releases
- Open your AI client and use its extension manager to install the DXT
- Configure settings in the extension UI (ignore robots.txt toggle, geocoding toggle)
Run as an MCP server via npx (Cursor and other MCP clients):
mcp.json snippet (standard):
mcp.json snippet (ignore robots.txt globally for testing):
Environment variables and toggles:
- DISABLE_GEOCODING=true — Skip Photon/Nominatim lookup and let Airbnb resolve location strings (avoids third-party outbound requests; may reduce accuracy for non-US locations).
- Per-request parameter ignoreRobotsText — override robots.txt for an individual API call.
Restart your client after adding/altering the MCP server configuration.
Available Tools
The MCP exposes two primary tools:
- airbnb_search
- Purpose: Search listings with filters and pagination.
- Key parameters:
- location (string) — required unless placeId is provided
- placeId (string) — optional Google Maps Place ID; skips external geocoding
- checkin, checkout (YYYY-MM-DD)
- adults, children, infants, pets (integers)
- minPrice, maxPrice (numbers)
- propertyType (entire_home | private_room | shared_room | hotel_room)
- cursor (string) — for pagination
- ignoreRobotsText (boolean)
- airbnb_listing_details
- Purpose: Fetch a single listing’s detailed information.
- Key parameters:
- id (string) — Airbnb listing ID (required)
- checkin, checkout, adults, children, infants, pets — optional occupancy/dates
- ignoreRobotsText (boolean)
Parameters reference (condensed):
| Tool | Required params | Notable optional params |
|---|---|---|
| airbnb_search | location or placeId | checkin/checkout, guests, price range, propertyType, cursor |
| airbnb_listing_details | id | checkin/checkout, guests |
Returned data includes listing metadata, pricing where applicable, coordinates, amenities, house rules, and direct listing URL. Responses include pagination cursors and a canonical search URL for reference.
Use Cases
- Exploratory search conversation: An AI assistant can call airbnb_search for “Barcelona, Spain, 2 adults, Aug 1–5, max $150/night, entire home” and present a ranked set of options with direct links and short highlights.
- Follow-up detail retrieval: After the assistant suggests a listing, call airbnb_listing_details with the listing ID to show the full amenity list, house rules, and exact coordinates for mapping.
- Multi-step workflows: Use pagination cursors to iterate through pages of results in a session, or refine searches by toggling price/propertyType parameters.
- Private testing: Enable DISABLE_GEOCODING to avoid third-party geocoding while validating behavior for US-only workflows, or use ignoreRobotsText in ephemeral test runs (not recommended for production).
Example JSON request (MCP tool call):
Technical Notes
- Runtime: Node.js 18+; the server communicates via MCP (stdio).
- Geocoding: By default, client-side Photon/Nominatim geocoding improves international location accuracy unless a placeId is supplied or DISABLE_GEOCODING is enabled.
- Compliance: Robots.txt is respected by default. Use ignoreRobotsText only when you control the environment and understand the implications.
Repository and releases:
- Source and DXT releases: https://github.com/openbnb-org/mcp-server-airbnb
This MCP server is intended for developers integrating Airbnb search/listing capabilities into AI assistants or other MCP-compatible desktop clients. Configure permissions and external services according to your deployment and privacy requirements.