Labsco
openbnb-org logo

Airbnb

β˜… 482

from openbnb-org

Search for Airbnb listings and retrieve their details.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

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

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

Service Endpoint Used for Notes Photon photon.komoot.io Primary geocoder, called on every search without placeId Free OSM-based service hosted by Komoot. One request per search. Nominatim nominatim.openstreetmap.org Fallback geocoder, called only when Photon does not return a bounding box Subject 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

Copy & paste β€” that's it
# 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:

Copy & paste β€” that's it
# 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.