Skip to main content
Glama
ampcome-mcps

Airbnb Search & Listings

by ampcome-mcps

Airbnb Search & Listings - Desktop Extension (DXT)

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

Features

🔍 Advanced Search Capabilities

  • Location-based search with support for cities, states, and regions

  • Google Maps Place ID integration for precise location targeting

  • 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 DXT user settings

Related MCP server: Airbnb Search & Listings

Installation

For Claude Desktop

This extension is packaged as a Desktop Extension (DXT) file. To install:

  1. Download the .dxt file from the releases page

  2. Open your compatible AI application (e.g., Claude Desktop)

  3. Install the extension through the application's extension manager

  4. Configure the extension settings as needed

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:

    {
      "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

    {
      "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

Tools

Search for Airbnb listings with comprehensive filtering options.

Parameters:

  • location (required): Location to search (e.g., "San Francisco, CA")

  • placeId (optional): Google Maps Place ID (overrides location)

  • 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

  • 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: Desktop Extension (DXT) v0.1

  • Dependencies: Minimal external dependencies for security and reliability

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

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

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

# Run with robots.txt ignored (for testing)
node dist/index.js --ignore-robots-txt
  • 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 DXT 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.

Available Tools

2 tools
airbnb_listing_detailsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe Airbnb listing ID
checkinNoCheck-in date (YYYY-MM-DD)
checkoutNoCheck-out date (YYYY-MM-DD)
adultsNoNumber of adults
childrenNoNumber of children
infantsNoNumber of infants
petsNoNumber of pets
ignoreRobotsTextNoIgnore robots.txt rules for this request

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavior. It mentions that direct links are provided, but does not disclose side effects, whether the operation is read-only, permission requirements, error behavior, or any other behavioral traits. This is a significant gap for a tool expected to be called autonomously.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences and the primary purpose is front-loaded. The second sentence about providing direct links is an added behavior, which is useful but could be integrated more seamlessly. No wasted words, though the structure could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, no output schema, and no annotations, the description is not complete. It does not explain what 'detailed information' includes, how the optional parameters influence results, or what the expected response format looks like. An agent would have to guess many details about invocation and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 8 parameters have descriptions in the schema (100% coverage), so the baseline of 3 applies. The tool description itself adds no additional meaning beyond what the schema already provides; it does not explain how parameters like pets, adults, or checkin/checkout dates affect the returned details or links.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information for a specific Airbnb listing and identifies that direct links are provided. It distinguishes implicitly from the sibling airbnb_search by focusing on a specific listing rather than searching, though it does not explicitly name the sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus airbnb_search. There is no mention of prerequisites (such as having a listing ID) or scenarios that would favor this tool over the search sibling. The description leaves usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedairbnb_listing_details
    • First observedairbnb_search

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one retrieves detailed information for a specific listing, while the other searches for listings with filters. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool.

Naming Consistency5/5

Both tools follow a consistent 'airbnb_' prefix and descriptive naming pattern (airbnb_listing_details and airbnb_search). This predictability enhances readability and reduces confusion for agents.

Tool Count2/5

With only 2 tools, the server feels thin for a domain like Airbnb search and listings. It lacks essential operations such as booking, user management, or listing creation, which are core to the Airbnb experience, making the scope incomplete.

Completeness2/5

The tool surface is severely incomplete for the server's purpose. While search and details are foundational, there are significant gaps in operations like booking, payment, reviews, or host interactions, which will likely cause agent failures in real-world scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers