Airbnb Search & Listings
Enables advanced search for Airbnb listings with filtering by location, dates, guests, and price range, along with retrieval of detailed property information including amenities, policies, and location details.
Integrates with Google Maps Place IDs for precise location targeting when searching for Airbnb listings.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Airbnb Search & Listingsfind a 2-bedroom apartment in Austin for next weekend under $200 per night"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Download the
.dxtfile from the releases pageOpen your compatible AI application (e.g., Claude Desktop)
Install the extension through the application's extension manager
Configure the extension settings as needed
For Cursor, etc.
Before starting make sure Node.js is installed on your desktop for npx to work.
Go to: Cursor Settings > Tools & Integrations > New MCP Server
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-txtargs{ "mcpServers": { "airbnb": { "command": "npx", "args": [ "-y", "@openbnb/mcp-server-airbnb", "--ignore-robots-txt" ] } } }Restart.
Configuration
The extension provides the following user-configurable options:
Ignore robots.txt
Type: Boolean (checkbox)
Default:
falseDescription: Bypass robots.txt restrictions when making requests to Airbnb
Recommendation: Keep disabled unless needed for testing purposes
Tools
airbnb_search
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 formatcheckout(optional): Check-out date in YYYY-MM-DD formatadults(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 nightmaxPrice(optional): Maximum price per nightcursor(optional): Pagination cursor for browsing resultsignoreRobotsText(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 IDcheckin(optional): Check-in date in YYYY-MM-DD formatcheckout(optional): Check-out date in YYYY-MM-DD formatadults(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 watchTesting
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-txtLegal 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 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 toolsairbnb_listing_detailsC
Get detailed information about a specific Airbnb listing. Provide direct links to the user
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The Airbnb listing ID | |
| checkin | No | Check-in date (YYYY-MM-DD) | |
| checkout | No | Check-out date (YYYY-MM-DD) | |
| adults | No | Number of adults | |
| children | No | Number of children | |
| infants | No | Number of infants | |
| pets | No | Number of pets | |
| ignoreRobotsText | No | Ignore robots.txt rules for this request |
TDQS
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.
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.
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.
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.
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.
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.
airbnb_searchC
Search for Airbnb listings with various filters and pagination. Provide direct links to the user
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Location to search for (city, state, etc.) | |
| placeId | No | Google Maps Place ID (overrides the location parameter) | |
| checkin | No | Check-in date (YYYY-MM-DD) | |
| checkout | No | Check-out date (YYYY-MM-DD) | |
| adults | No | Number of adults | |
| children | No | Number of children | |
| infants | No | Number of infants | |
| pets | No | Number of pets | |
| minPrice | No | Minimum price for the stay | |
| maxPrice | No | Maximum price for the stay | |
| cursor | No | Base64-encoded string used for Pagination | |
| ignoreRobotsText | No | Ignore robots.txt rules for this request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'pagination' and 'Provide direct links to the user,' which adds some context beyond basic functionality. However, it lacks critical details such as rate limits, authentication requirements, error handling, or what the output looks like (e.g., format of results). For a search tool with 12 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, consisting of two sentences that directly state the tool's purpose and a key output behavior. There's no wasted verbiage or redundancy. However, it could be slightly more structured by explicitly separating functionality from output guidance, but it remains efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no output schema, no annotations), the description is incomplete. It covers basic purpose and hints at output behavior but lacks details on result format, error cases, usage constraints, or how to interpret pagination. Without annotations or an output schema, the agent has insufficient information to fully understand the tool's behavior and integration needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so all parameters are documented in the schema itself. The description adds minimal value beyond the schema by mentioning 'various filters and pagination,' which loosely maps to parameters like location, dates, prices, and cursor. However, it doesn't provide additional semantics, constraints, or examples that aren't already in the schema descriptions, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for Airbnb listings with various filters and pagination.' It specifies the verb ('search'), resource ('Airbnb listings'), and scope ('with various filters and pagination'), which is specific and actionable. However, it doesn't explicitly differentiate from its sibling tool 'airbnb_listing_details', which likely provides details for specific listings rather than searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It mentions 'Provide direct links to the user,' which hints at output behavior but doesn't specify when to use this tool versus alternatives like the sibling 'airbnb_listing_details' or other search methods. There's no explicit guidance on prerequisites, when-not-to-use scenarios, or comparisons to other tools, leaving the agent to infer usage context.
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.
2 tool updates
- First observed
airbnb_listing_details - First observed
airbnb_search
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Searchable directory of Airbnb listings — discover properties and retrieve direct Airbnb links.
Airbnb stays by location and dates, and full listing details, as structured JSON.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching for Airbnb listings and retrieving detailed accommodation information with direct links to Airbnb pages.21MIT
- AlicenseCqualityDmaintenanceEnables searching Airbnb listings with advanced filtering (location, dates, guests, price) and retrieval of detailed property information including amenities, policies, and booking links.41,584 npm2MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Airbnb — lets AI agents search listings, check availability, manage reservations, and book stays via browser automation.8 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server for searching stays, comparing prices across Booking.com, Airbnb, Vrbo, and Google Hotels, and fetching reviews via natural language in AI assistants.MIT