Airbnb

Buscar listados de Airbnb y obtener sus detalles.

Documentación

downloads

Airbnb Search & Listings - MCP Bundle (MCPB)

Un paquete MCP integral para buscar anuncios de Airbnb con capacidades avanzadas de filtrado y recuperación detallada de información de propiedades. Construido como un servidor Model Context Protocol (MCP) empaquetado en el formato MCP Bundle (MCPB) para facilitar su instalación y uso con aplicaciones de IA compatibles.


🚀 ¿Prefieres no ejecutar un servidor local? Prueba openbnb.ai

👉 openbnb.ai es un servidor MCP alojado que resuelve el mismo problema — buscar anuncios de Airbnb — sin necesidad de configuración local.

Si no quieres lidiar con la instalación y ejecución de este servidor, openbnb.ai es una alternativa independiente y totalmente alojada a la que puedes conectarte directamente desde tu cliente MCP. Va más allá de lo que ofrece este servidor de código abierto:

  • Cero configuración — sin Node, sin npx, sin archivos de configuración, sin actualizaciones que gestionar
  • Filtros avanzados — controles de búsqueda más ricos que las herramientas base aquí
  • Interfaz MCP — componentes de interfaz interactivos para explorar resultados, no solo texto plano
  • Gestionado y mantenido — se mantiene en funcionamiento por ti

Dirígete a openbnb.ai para obtener instrucciones de configuración y los detalles de conexión para tu cliente MCP.

Si prefieres autoalojar el servidor de código abierto, continúa leyendo.


Características

🔍 Capacidades avanzadas de búsqueda

  • Búsqueda basada en ubicación con soporte para ciudades, estados y regiones
  • Soporte de ubicaciones internacionales mediante geocodificación del lado del cliente, de modo que las consultas fuera de EE. UU. (p. ej., "París, Francia", "Copenhague, Dinamarca") devuelvan resultados en la ciudad correcta
  • Integración con Google Maps Place ID para una orientación precisa de la ubicación
  • Filtrado por tipo de propiedad para casas completas, habitaciones privadas, habitaciones compartidas o habitaciones de hotel
  • Filtrado por fechas con soporte de fechas de entrada y salida
  • Configuración de huéspedes que incluye adultos, niños, bebés y mascotas
  • Filtrado por rango de precios con restricciones de precio mínimo y máximo
  • Soporte de paginación para navegar por grandes conjuntos de resultados

🏠 Información detallada de la propiedad

  • Detalles completos del anuncio que incluyen comodidades, políticas y aspectos destacados
  • Información de ubicación con coordenadas y detalles del vecindario
  • Reglas y políticas de la casa para decisiones de reserva informadas
  • Descripciones de la propiedad y características clave
  • Enlaces directos a los anuncios de Airbnb para reservar fácilmente

🛡️ Seguridad y cumplimiento

  • Cumplimiento de robots.txt con anulación configurable para pruebas
  • Gestión de tiempo de espera de solicitudes para evitar solicitudes colgadas
  • Manejo mejorado de errores con registro detallado
  • Conciencia de límite de velocidad y uso respetuoso de la API
  • Configuración segura mediante la configuración de usuario de MCPB

Instalación

Para Claude Desktop

Esta extensión está empaquetada como un archivo MCP Bundle (.mcpb). Para instalarla:

  1. Descarga el archivo .mcpb desde la última versión
  2. Abre el archivo — Claude Desktop mostrará un diálogo de instalación
  3. Configura los ajustes de la extensión según sea necesario

Para ignorar robots.txt, abre la configuración de Claude Desktop, navega a la extensión y activa la opción Ignorar robots.txt.

Para Cursor, etc.

Antes de comenzar, asegúrate de que Node.js esté instalado en tu escritorio para que npx funcione.

  1. Ve a: Cursor Settings > Tools & Integrations > New MCP Server

  2. Añade una de las siguientes opciones a tu mcp.json:

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

    Para ignorar robots.txt en todas las solicitudes, usa esta versión con los argumentos --ignore-robots-txt

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

Configuración

La extensión proporciona las siguientes opciones configurables por el usuario:

Ignorar robots.txt

  • Tipo: Booleano (casilla de verificación)
  • Valor predeterminado: false
  • Descripción: Omite las restricciones de robots.txt al realizar solicitudes a Airbnb
  • Recomendación: Mantener desactivado a menos que sea necesario para fines de prueba

Desactivar geocodificación de terceros

  • Tipo: Booleano (casilla de verificación)
  • Variable de entorno: DISABLE_GEOCODING
  • Valor predeterminado: false
  • Descripción: Omite el paso de geocodificación de Photon/Nominatim y permite que Airbnb resuelva la cadena de ubicación por sí mismo. Al activarlo se restaura el comportamiento anterior al PR: cada búsqueda va solo a airbnb.com, sin llamadas a terceros.
  • Recomendación: Mantener desactivado a menos que necesites específicamente cero tráfico saliente a terceros. Con esta opción activada, las búsquedas fuera de EE. UU. podrían devolver resultados incorrectos. Consulta Servicios externos.

Herramientas

airbnb_search

Busca anuncios de Airbnb con opciones de filtrado exhaustivas.

Parámetros:

  • location (obligatorio): Ubicación a buscar (p. ej., "San Francisco, CA"). Cuando se proporciona sin placeId, el servidor geocodifica esta cadena del lado del cliente mediante Photon/Nominatim — consulta Servicios externos.
  • placeId (opcional): Google Maps Place ID. Anula location y omite por completo la geocodificación del lado del cliente (sin llamadas a terceros).
  • checkin (opcional): Fecha de entrada en formato AAAA-MM-DD
  • checkout (opcional): Fecha de salida en formato AAAA-MM-DD
  • adults (opcional): Número de adultos (predeterminado: 1)
  • children (opcional): Número de niños (predeterminado: 0)
  • infants (opcional): Número de bebés (predeterminado: 0)
  • pets (opcional): Número de mascotas (predeterminado: 0)
  • minPrice (opcional): Precio mínimo por noche
  • maxPrice (opcional): Precio máximo por noche
  • cursor (opcional): Cursor de paginación para navegar por los resultados
  • propertyType (opcional): Filtrar por tipo de propiedad — entire_home, private_room, shared_room o hotel_room
  • ignoreRobotsText (opcional): Anular robots.txt para esta solicitud

Devuelve:

  • Resultados de búsqueda con detalles de la propiedad, precios y enlaces directos
  • Información de paginación para navegar por resultados adicionales
  • URL de búsqueda para referencia

airbnb_listing_details

Obtén información detallada sobre un anuncio específico de Airbnb.

Parámetros:

  • id (obligatorio): ID del anuncio de Airbnb
  • checkin (opcional): Fecha de entrada en formato AAAA-MM-DD
  • checkout (opcional): Fecha de salida en formato AAAA-MM-DD
  • adults (opcional): Número de adultos (predeterminado: 1)
  • children (opcional): Número de niños (predeterminado: 0)
  • infants (opcional): Número de bebés (predeterminado: 0)
  • pets (opcional): Número de mascotas (predeterminado: 0)
  • ignoreRobotsText (opcional): Anular robots.txt para esta solicitud

Devuelve:

  • Información detallada de la propiedad que incluye:
    • Detalles de ubicación con coordenadas

    • Comodidades e instalaciones, como seeAllAmenitiesGroups — un objeto organizado por categoría de comodidad, de modo que se puede acceder directamente a una categoría. Las comodidades que Airbnb muestra tachadas llegan bajo su propia categoría "Not included":

      {
        "seeAllAmenitiesGroups": {
          "Bathroom": "Hair dryer",
          "Heating and cooling": "AC - split type ductless system, Heating",
          "Not included": "Dryer, Hot water"
        }
      }
      
    • Reglas y políticas de la casa

    • Aspectos destacados y descripciones de la propiedad

    • Enlace directo al anuncio

Detalles técnicos

Arquitectura

  • Entorno de ejecución: Node.js 18+
  • Protocolo: Model Context Protocol (MCP) mediante transporte stdio
  • Formato: MCP Bundle (MCPB) v0.3
  • Dependencias: Dependencias externas mínimas para seguridad y fiabilidad

Servicios externos

Además de airbnb.com, el servidor realiza solicitudes de geocodificación a dos servicios de terceros para traducir las consultas de ubicación en cuadros delimitadores precisos del mapa. Esto evita el geocodificador del lado del servidor de Airbnb, que produce resultados incorrectos para muchas consultas fuera de EE. UU. (p. ej., "París, Francia" aterriza en Vendée; "Copenhague, Dinamarca" aterriza en Wisconsin).

ServicioEndpointUsoNotas
Photonphoton.komoot.ioGeocodificador principal, llamado en cada búsqueda sin placeIdServicio gratuito basado en OSM alojado por Komoot. Una solicitud por búsqueda.
Nominatimnominatim.openstreetmap.orgGeocodificador de respaldo, llamado solo cuando Photon no devuelve un cuadro delimitadorSujeto a la política de uso de OSMF (máx. ~1 solicitud/segundo).

Cada búsqueda envía solo la cadena location de la solicitud al geocodificador — ningún otro campo de la solicitud, sin geolocalización por IP, sin identificadores de seguimiento. La cadena de ubicación en sí es, por supuesto, la misma cadena que escribió el usuario.

Cómo optar por no participar: hay dos formas de omitir los geocodificadores:

  • Por solicitud: proporciona un placeId explícito. Cuando placeId está presente, el servidor utiliza la búsqueda de lugares propia de Airbnb directamente, sin llamadas a terceros.
  • Globalmente: establece la variable de entorno DISABLE_GEOCODING=true. El servidor omitirá Photon/Nominatim por completo y pasará la cadena de ubicación sin procesar a Airbnb. Esto restaura el comportamiento anterior al PR para cada búsqueda y garantiza cero tráfico saliente a terceros — a costa de resultados incorrectos para ubicaciones fuera de EE. UU. que el geocodificador de Airbnb maneja mal. El valor predeterminado es false.

Si un geocodificador no está disponible o no devuelve resultados, el servidor recurre a enviar la cadena de ubicación directamente a Airbnb, exactamente como lo hacía antes — de modo que el peor caso para una interrupción es que las búsquedas internacionales degraden al comportamiento anterior (incorrecto), no que la búsqueda falle por completo.

Manejo de errores

  • Registro exhaustivo de errores con marcas de tiempo
  • Degradación gradual cuando la estructura de página de Airbnb cambia
  • Protección de tiempo de espera para solicitudes de red
  • Mensajes de error detallados para la resolución de problemas

Medidas de seguridad

  • Cumplimiento de robots.txt por defecto
  • Límites de tiempo de espera de solicitudes
  • Validación y saneamiento de entradas
  • Manejo seguro de variables de entorno
  • Sin almacenamiento de datos sensibles

Rendimiento

  • Análisis HTML eficiente con Cheerio
  • Caché de solicitudes cuando corresponde
  • Huella de memoria mínima
  • Inicio y tiempos de respuesta rápidos

Compatibilidad

  • Plataformas: macOS, Windows, Linux
  • Node.js: 18.0.0 o superior
  • Claude Desktop: 0.10.0 o superior
  • Otros clientes MCP: Compatible con cualquier aplicación que admita MCP

Desarrollo

Compilar desde el código fuente

# Install dependencies
npm install

# Build the project
npm run build

# Watch for changes during development
npm run watch

Pruebas

# Build, then run both suites
npm test

npm test impulsa el servidor compilado a través de stdio y llama a las herramientas de verdad:

  • test-extension.js — protocolo de enlace MCP, listado de herramientas, una búsqueda, detalles del anuncio y las rutas de geocodificación (Photon, respaldo de Nominatim)
  • test-amenities.js — extracción de comodidades en varios anuncios en vivo, verificando que las comodidades que Airbnb muestra tachadas nunca aparezcan como ofrecidas por el anuncio

Ambos acceden a airbnb.com y a los geocodificadores a través de la red, por lo que necesitan conectividad y pueden fallar si Airbnb cambia la estructura de sus páginas — ese es su propósito, pero también significa que no son adecuados como puerta de CI desatendida.

El servidor también se puede ejecutar directamente:

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

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

Consideraciones legales y éticas

  • Respeta los Términos de servicio de Airbnb: Esta extensión es para investigación legítima y asistencia en reservas
  • Cumplimiento de robots.txt: La extensión respeta robots.txt por defecto
  • Límite de velocidad: Ten en cuenta la frecuencia de solicitudes para no sobrecargar los servidores de Airbnb
  • Uso de datos: Solo extrae información disponible públicamente para fines legítimos

Soporte

  • Problemas: Reporta errores y solicitudes de funciones en GitHub Issues
  • Documentación: Documentación adicional disponible en el repositorio
  • Comunidad: Únete a las discusiones sobre el desarrollo de MCP y MCPB

Licencia

Licencia MIT — consulta el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! Lee las pautas de contribución y envía solicitudes de extracción para cualquier mejora.


Nota: Esta extensión no está afiliada a Airbnb, Inc. Es una herramienta independiente diseñada para ayudar a los usuarios a buscar y analizar anuncios de Airbnb disponibles públicamente.