Airbnb logo

Airbnb

Organization
openbnb-org

Search Airbnb using your AI Agent

Publisheropenbnb-org
Repositorymcp-server-airbnb
LanguageJavaScript
Forks
107
Stars
448
Available tools
2
Transport typestdio, streamable-http
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Airbnb exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 2 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    448 stars and 107 forks from the linked repository.

downloads

Airbnb Search & Listings - MCP Bundle (MCPB)

A comprehensive MCP Bundle for searching Airbnb listings with advanced filtering capabilities and detailed property information retrieval. Built as a Model Context Protocol (MCP) server packaged in the MCP Bundle (MCPB) format for easy installation and use with compatible AI applications.


πŸš€ Prefer not to run a local server? Try openbnb.ai

πŸ‘‰ openbnb.ai is a hosted MCP server that solves the same problem β€” searching Airbnb listings β€” without any local setup.

If you don't want to deal with installing and running this server yourself, openbnb.ai is a separate, fully-hosted alternative you can connect to directly from your MCP client. It goes beyond what this open-source server offers:

  • βœ… Zero setup β€” no Node, no npx, no config files, no updates to manage
  • βœ… Advanced filters β€” richer search controls beyond the base tools here
  • βœ… MCP UI β€” interactive UI components for browsing results, not just plain text
  • βœ… Managed & maintained β€” kept running for you

Head to openbnb.ai for setup instructions and the connection details for your MCP client.

If you'd rather self-host the open-source server, read on.


Features

πŸ” Advanced Search Capabilities

  • Location-based search with support for cities, states, and regions
  • International location support via client-side geocoding, so non-US queries (e.g. "Paris, France", "Copenhagen, Denmark") return results in the right city
  • Google Maps Place ID integration for precise location targeting
  • Property type filtering for entire homes, private rooms, shared rooms, or hotel rooms
  • Date filtering with check-in and check-out date support
  • Guest configuration including adults, children, infants, and pets
  • Price range filtering with minimum and maximum price constraints
  • Pagination support for browsing through large result sets

🏠 Detailed Property Information

  • Comprehensive listing details including amenities, policies, and highlights
  • Location information with coordinates and neighborhood details
  • House rules and policies for informed booking decisions
  • Property descriptions and key features
  • Direct links to Airbnb listings for easy booking

πŸ›‘οΈ Security & Compliance

  • Robots.txt compliance with configurable override for testing
  • Request timeout management to prevent hanging requests
  • Enhanced error handling with detailed logging
  • Rate limiting awareness and respectful API usage
  • Secure configuration through MCPB user settings

Installation

For Claude Desktop

This extension is packaged as an MCP Bundle (.mcpb) file. To install:

  1. Download the .mcpb file from the latest release
  2. Open the file β€” Claude Desktop will show an installation dialog
  3. Configure the extension settings as needed

To ignore robots.txt, open Claude Desktop settings, navigate to the extension, and enable the Ignore robots.txt toggle.

For Cursor, etc.

Before starting make sure Node.js is installed on your desktop for npx to work.

  1. Go to: Cursor Settings > Tools & Integrations > New MCP Server

  2. Add one the following to your mcp.json:

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

    To ignore robots.txt for all requests, use this version with --ignore-robots-txt args

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

Configuration

The extension provides the following user-configurable options:

Ignore robots.txt

  • Type: Boolean (checkbox)
  • Default: false
  • Description: Bypass robots.txt restrictions when making requests to Airbnb
  • Recommendation: Keep disabled unless needed for testing purposes

Disable third-party geocoding

  • Type: Boolean (checkbox)
  • Environment variable: DISABLE_GEOCODING
  • Default: false
  • Description: Skip the Photon/Nominatim geocoding step and let Airbnb resolve the location string on its own. Enabling this restores the pre-PR behavior β€” every search goes only to airbnb.com, no third-party calls.
  • Recommendation: Keep disabled unless you specifically need zero third-party outbound traffic. With it enabled, non-US searches could return incorrect results. See External Services.

Tools

airbnb_search

Search for Airbnb listings with comprehensive filtering options.

Parameters:

  • location (required): Location to search (e.g., "San Francisco, CA"). When supplied without placeId, the server geocodes this string client-side via Photon/Nominatim β€” see External Services.
  • placeId (optional): Google Maps Place ID. Overrides location and skips client-side geocoding entirely (no third-party calls).
  • checkin (optional): Check-in date in YYYY-MM-DD format
  • checkout (optional): Check-out date in YYYY-MM-DD format
  • 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 for browsing results
  • propertyType (optional): Filter by property type β€” entire_home, private_room, shared_room, or hotel_room
  • ignoreRobotsText (optional): Override robots.txt for this request

Returns:

  • Search results with property details, pricing, and direct links
  • Pagination information for browsing additional results
  • Search URL for reference

airbnb_listing_details

Get detailed information about a specific Airbnb listing.

Parameters:

  • id (required): Airbnb listing ID
  • checkin (optional): Check-in date in YYYY-MM-DD format
  • checkout (optional): Check-out date in YYYY-MM-DD format
  • 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)
  • ignoreRobotsText (optional): Override robots.txt for this request

Returns:

  • Detailed property information including:
    • Location details with coordinates
    • Amenities and facilities
    • House rules and policies
    • Property highlights and descriptions
    • Direct link to the listing

Technical Details

Architecture

  • Runtime: Node.js 18+
  • Protocol: Model Context Protocol (MCP) via stdio transport
  • Format: MCP Bundle (MCPB) v0.3
  • Dependencies: Minimal external dependencies for security and reliability

External Services

In addition to airbnb.com, the server makes geocoding requests to two third-party services to translate location queries into accurate map bounding boxes. This bypasses Airbnb's own server-side geocoder, which produces incorrect results for many non-US queries (e.g. "Paris, France" lands in VendΓ©e; "Copenhagen, Denmark" lands in Wisconsin).

ServiceEndpointUsed forNotes
Photonphoton.komoot.ioPrimary geocoder, called on every search without placeIdFree OSM-based service hosted by Komoot. One request per search.
Nominatimnominatim.openstreetmap.orgFallback geocoder, called only when Photon does not return a bounding boxSubject to the OSMF usage policy (max ~1 req/sec).

Each search sends only the location string from the request to the geocoder β€” no other request fields, no IP geolocation, no tracking identifiers. The location string itself is, of course, the same string the user typed.

Opting out: there are two ways to skip the geocoders:

  • Per-request: supply an explicit placeId. When placeId is present, the server uses Airbnb's own place lookup directly with no third-party calls.
  • Globally: set the environment variable DISABLE_GEOCODING=true. The server will skip Photon/Nominatim entirely and pass the raw location string to Airbnb. This restores the pre-PR behavior for every search and guarantees zero third-party outbound traffic β€” at the cost of broken results for non-US locations that Airbnb's own geocoder mishandles. Defaults to false.

If a geocoder is unreachable or returns no result, the server falls back to sending the location string to Airbnb directly, exactly as it did before β€” so the worst case for an outage is that international searches degrade to the previous (broken) behavior, not that the search fails entirely.

Error Handling

  • Comprehensive error logging with timestamps
  • Graceful degradation when Airbnb's page structure changes
  • Timeout protection for network requests
  • Detailed error messages for troubleshooting

Security Measures

  • Robots.txt compliance by default
  • Request timeout limits
  • Input validation and sanitization
  • Secure environment variable handling
  • No sensitive data storage

Performance

  • Efficient HTML parsing with Cheerio
  • Request caching where appropriate
  • Minimal memory footprint
  • Fast startup and response times

Compatibility

  • Platforms: macOS, Windows, Linux
  • Node.js: 18.0.0 or higher
  • Claude Desktop: 0.10.0 or higher
  • Other MCP clients: Compatible with any MCP-supporting application

Development

Building from Source

bash
# Install dependencies
npm install

# Build the project
npm run build

# Watch for changes during development
npm run watch

Testing

The extension can be tested by running the MCP server directly:

bash
# Run with robots.txt compliance (default)
node dist/index.js

# Run with robots.txt ignored (for testing)
node dist/index.js --ignore-robots-txt

Legal and Ethical Considerations

  • Respect Airbnb's Terms of Service: This extension is for legitimate research and booking assistance
  • Robots.txt Compliance: The extension respects robots.txt by default
  • Rate Limiting: Be mindful of request frequency to avoid overwhelming Airbnb's servers
  • Data Usage: Only extract publicly available information for legitimate purposes

Support

  • Issues: Report bugs and feature requests on GitHub Issues
  • Documentation: Additional documentation available in the repository
  • Community: Join discussions about MCP and MCPB development

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please read the contributing guidelines and submit pull requests for any improvements.


Note: This extension is not affiliated with Airbnb, Inc. It is an independent tool designed to help users search and analyze publicly available Airbnb listings.

Installation

TypingMind
Prerequisites:

Node.js 18+

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

Available Tools

  • airbnb_search

    Search for Airbnb listings with various filters and pagination. Provide direct links to the user

  • airbnb_listing_details

    Get detailed information about a specific Airbnb listing. Provide direct links to the user

Use Airbnb MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Airbnb is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. You can run MCP locally on your device or connect to a remote MCP server URL.

Option 1: Use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Airbnb as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Airbnb MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "airbnb": {
      "command": "npx",
      "args": [
        "-y",
        "@openbnb/mcp-server-airbnb"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Airbnb MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Airbnb MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Airbnb to help me with this task?
Airbnb
Sure. I read it.
Here is what I found using Airbnb.

Option 2: Add an MCP server URL

Use this when Airbnb is already hosted remotely or your team wants one shared connector that multiple users can access.

1

Open MCP connectors

In TypingMind, go to Plugins, open MCP connectors, then choose Add URL.

  1. Open TypingMind in your browser.
  2. Go to Plugins.
  3. Open MCP connectors.
  4. Click Add URL.
TypingMind Add Custom MCP Server URL form
2

Paste the server URL

Enter your server URL in the Server URL field. Add a connection name, description, icon, custom HTTP headers, or OAuth client settings if the server requires them.

  1. Paste your server URL into the Server URL field.
  2. Enter a connection name for Airbnb.
  3. Add a description and icon if you want it to be easier to identify.
  4. Add custom HTTP headers or OAuth client details if the server requires authentication.
3

Create the connection

Click Create connection, then return to the Plugins list and confirm the new MCP connection is active.

  1. Click Create connection.
  2. Return to the MCP connectors list.
  3. Confirm the Airbnb connection appears as active.
  4. Refresh the plugin list if the connection does not appear immediately.
4

Switch models without reconnecting

Start a chat with your preferred model, enable the Airbnb tools from Plugins, and switch to another model whenever needed. The MCP connection stays available to the TypingMind workspace.

  1. Start a new chat in TypingMind.
  2. Select the AI model you want to use.
  3. Enable the Airbnb tools from Plugins.
  4. Ask the model to use the tool when needed.
  5. Switch to another AI model and reuse the same MCP connection.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Airbnb to help me with this task?
Airbnb
Sure. I read it.
Here is what I found using Airbnb.

Frequently asked questions

What is the Airbnb MCP server used for?

Airbnb is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Airbnb MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Airbnb with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Airbnb MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Airbnb connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Airbnb MCP to TypingMind?

Airbnb can be connected in TypingMind with the local MCP connector or by adding a remote MCP server URL. Use the local connector when the server needs access to files, apps, or private resources on your device, and use a server URL when the MCP server is hosted remotely.

What tools does Airbnb MCP provide in TypingMind?

Airbnb exposes 2 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Airbnb MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Airbnb requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter πŸ‘‡