AI

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.

Quick Install
npx -y @openbnb-org/mcp-server-airbnb

Overview

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):

  1. Download the .dxt release from the repository releases
  2. Open your AI client and use its extension manager to install the DXT
  3. 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):

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

mcp.json snippet (ignore robots.txt globally for testing):

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

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:

  1. 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)
  1. 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):

ToolRequired paramsNotable optional params
airbnb_searchlocation or placeIdcheckin/checkout, guests, price range, propertyType, cursor
airbnb_listing_detailsidcheckin/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):

{
  "tool": "airbnb_search",
  "params": {
    "location": "Lisbon, Portugal",
    "checkin": "2026-07-10",
    "checkout": "2026-07-15",
    "adults": 2,
    "maxPrice": 200,
    "propertyType": "entire_home"
  }
}

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.

Tags:search