Skip to main content
Glama
danielk-am

@openbnb/mcp-server-airbnb

by danielk-am

downloads

Airbnb Search & Listings — MCP Bundle (MCPB)

Комплексный MCP Bundle для поиска объявлений Airbnb с расширенными возможностями фильтрации и получения подробной информации об объектах. Реализован как сервер Model Context Protocol (MCP), упакованный в формат MCP Bundle (MCPB) для лёгкой установки и использования с совместимыми AI‑приложениями.


🚀 Не хотите запускать локальный сервер? Попробуйте openbnb.ai

👉 openbnb.ai — это размещённый MCP‑сервер, который решает ту же задачу — поиск объявлений Airbnb — без локальной настройки.

Если вы не хотите сами устанавливать и запускать этот сервер, openbnb.ai — это отдельная полностью размещённая альтернатива, к которой можно подключаться напрямую из вашего MCP‑клиента. Он идёт дальше, чем этот open‑source проект:

  • Ноль настройки — не нужен Node, не нужен npx, не нужно конфигурационных файлов и обновлений

  • Расширенные фильтры — более богатые средства управления поиском, чем в базовых инструментах здесь

  • MCP UI — интерактивные UI‑компоненты для просмотра результатов, а не только текст

  • Полностью управляемый и поддерживаемый — работает за вас

Переходите на openbnb.ai для получения инструкций по настройке и параметров подключения для вашего MCP‑клиента.

Если вы предпочитаете запускать open‑source‑сервер самостоятельно, читайте дальше.


Возможности

🔍 Расширенные возможности поиска

  • Поиск по местоположению с поддержкой городов, штатов и регионов

  • Поддержка международных адресов через клиентское геокодирование: запросы за пределами США (например, «Париж, Франция», «Копенгаген, Дания») возвращают результаты в правильном городе

  • Интеграция Google Maps Place ID для точного указания местоположения

  • Фильтр по типу объекта — целые дома, отдельные комнаты, общие комнаты или гостиничные номера

  • Фильтры по датам с поддержкой дат заезда и выезда

  • Настройка гостей: взрослые, дети, младенцы и домашние животные

  • Фильтр по цене с ограничениями минимума и максимума

  • Пагинация для просмотра больших наборов результатов

🏠 Подробная информация об объекте

  • Полные данные объявления, включая удобства, правила и особенности

  • Информация о местоположении с координатами и описанием района

  • Правила дома и политики для осознанного бронирования

  • Описания объектов и основные характеристики

  • Прямые ссылки на объявления Airbnb для быстрого бронирования

🛡️ Безопасность и соответствие

  • Соблюдение Robots.txt с настраиваемым переопределением для тестирования

  • Управление таймаутами запросов для предотвращения зависших запросов

  • Расширенная обработка ошибок с подробным журналированием

  • Учёт ограничений частоты запросов и вежливое использование API

  • Безопасная настройка через пользовательские параметры MCPB

Установка

Для Claude Desktop

Это расширение упаковано в файл MCP Bundle (.mcpb). Чтобы установить:

  1. Скачайте файл .mcpb из последнего релиза

  2. Откройте файл — Claude Desktop покажет диалог установки

  3. Настройте параметры расширения по необходимости

Чтобы игнорировать robots.txt, откройте настройки Claude Desktop, найдите расширение и включите переключатель Ignore robots.txt.

Для Cursor и др.

Перед началом убедитесь, что на вашем компьютере установлен Node.js, чтобы работал npx.

  1. Перейдите в: Cursor Settings > Tools & Integrations > New MCP Server

  2. Добавьте одну из следующих настроек в mcp.json:

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

    Чтобы игнорировать robots.txt для всех запросов, используйте эту версию с аргументом --ignore-robots-txt

    {
      "mcpServers": {
        "airbnb": {
          "command": "npx",
          "args": [
            "-y",
            "@openbnb/mcp-server-airbnb",
            "--ignore-robots-txt"
          ]
        }
      }
    }
  3. Перезапустите.

Конфигурация

Расширение предоставляет следующие настраиваемые пользователем параметры:

Игнорировать robots.txt

  • Тип: Boolean (checkbox)

  • По умолчанию: false

  • Описание: Пропускать ограничения robots.txt при запросах к Airbnb

  • Рекомендация: Держите выключенным, если только это не нужно для тестирования

Отключить стороннее геокодирование

  • Тип: Boolean (checkbox)

  • Переменная окружения: DISABLE_GEOCODING

  • По умолчанию: false

  • Описание: Пропустить шаг геокодирования Photon/Nominatim и позволить Airbnb самостоятельно обработать строку местоположения. Включение восстанавливает поведение до PR — каждый поиск идёт только на airbnb.com, без сторонних вызовов.

  • Рекомендация: Держите выключенным, если вам не нужен полный отсутствие исходящих сторонних запросов. При включении поиск за пределами США может возвращать неправильные результаты. См. Внешние сервисы.

Инструменты

Поиск объявлений Airbnb с расширенными параметрами фильтрации.

Параметры:

  • location (обязательный): Местоположение для поиска (например, «San Francisco, CA»). При передаче без placeId сервер геокодирует эту строку клиентской библиотекой Photon/Nominatim — см. Внешние сервисы.

  • placeId (необязательный): Google Maps Place ID. Переопределяет location и полностью пропускает клиентское геокодирование (без сторонних вызовов).

  • checkin (необязательный): Дата заезда в формате YYYY-MM-DD

  • checkout (необязательный): Дата выезда в формате YYYY-MM-DD

  • adults (необязательный): Количество взрослых (по умолчанию: 1)

  • children (необязательный): Количество детей (по умолчанию: 0)

  • infants (необязательный): Количество младенцев (по умолчанию: 0)

  • pets (необязательный): Количество домашних животных (по умолчанию: 0)

  • minPrice (необязательный): Минимальная цена за ночь

  • maxPrice (необязательный): Максимальная цена за ночь

  • cursor (необязательный): Пагинация для просмотра результатов

  • propertyType (необязательный): Фильтр по типу — entire_home, private_room, shared_room или hotel_room

  • ignoreRobotsText (необязательный): Переопределить robots.txt для этого запроса

Возвращает:

  • Результаты поиска с деталями объектов, ценами и прямыми ссылками

  • Информацию для пагинации по дополнительным результатам

  • URL поиска для справки

airbnb_listing_details

Получить подробную информацию о конкретном объявлении Airbnb.

Параметры:

  • id (обязательно): Идентификатор объявления Airbnb

  • checkin (необязательный): Дата заезда в формате YYYY-MM-DD

  • checkout (необязательный): Дата выезда в формате YYYY-MM-DD

  • adults (необязательный): Количество взрослых (по умолчанию: 1)

  • children (необязательный): Количество детей (по умолчанию: 0)

  • infants (необязательный): Количество младенцев (по умолчанию: 0)

  • pets (необязательный): Количество домашних животных (по умолчанию: 0)

  • ignoreRobotsText (необязательный): Переопределить robots.txt для этого запроса

Возвращает:

  • Детальную информацию об объекте, включая:

    • Данные о местоположении с координатами

    • Удобства и сервисы, как seeAllAmenitiesGroups — объект, сгруппированный по категориям удобств, для прямого доступа к категории. Удобства, которые Airbnb отображает зачёркнутыми, попадают в отдельную категорию "Not included":

      {
        "seeAllAmenitiesGroups": {
          "Bathroom": "Hair dryer",
          "Heating and cooling": "AC - split type ductless system, Heating",
          "Not included": "Dryer, Hot water"
        }
      }
    • Правила дома и политику

    • Особенности и описания объекта

    • Прямую ссылку на объявление

Технические детали

Архитектура

  • Время работы: Node.js 18+

  • Протокол: Model Context Protocol (MCP) через stdio транспорт

  • Формат: MCP Bundle (MCPB) v0.3

  • Зависимости: минимальные внешние зависимости для безопасности и надёжности

Внешние сервисы

Помимо airbnb.com, сервер отправляет запросы на геокодирование двум сторонним сервисам для преобразования запросов местоположения в точные ограничивающие рамки (bounding boxes). Это обходит собственный серверный геокодер Airbnb, который даёт неверные результаты для многих запросов за пределами США (например, «Париж, Франция» попадает в Вандею, «Копенгаген, Дания» — в Висконсин).

Сервис

Эндпоинт

Используется

Примечания

Photon

photon.komoot.io

Основной геокодер, вызывается при каждом поиске без placeId

Бесплатный сервис на основе OSM, хостится Komoot. Один запрос на поиск.

Nominatim

nominatim.openstreetmap.org

Запасной геокодер, вызывается только когда Photon не возвращает bounding box

Соблюдайте политику использования OSMF (макс. ~1 запрос/сек).

Каждый поиск отправляет геокодеру только строку location из запроса — никаких других полей, никакой IP‑геолокации, никаких tracking‑идентификаторов. Сама строка местоположения, разумеется, это та же строка, которую ввёл пользователь.

Отказ от геокодирования — есть два способа пропустить геокодеры:

  • На уровне запроса: укажите явный placeId. Когда placeId есть, сервер использует собственный поиск местоположения Airbnb напрямую, без сторонних вызовов.

  • Глобально: установите DISABLE_GEOCODING=true. Сервер полностью пропустит Photon/Nominatim и передаст необработанную строку местоположения в Airbnb. Это восстанавливает поведение до PR для каждого поиска и гарантирует полное отсутствие стороннего исходящего трафика — за счёт неверных результатов для адресов за пределами США, которые собственный геокодер Airbnb обрабатывает неверно. По умолчанию false.

Если геокодер недоступен или не возвращает результат, сервер переходит к прямой передаче строки местоположения в Airbnb, как это было раньше — то есть худший вариант при сбое — это то, что международные запросы деградируют к прежнему (неверному) поведению, а не полностью перестают работать.

Обработка ошибок

  • Подробное журналирование ошибок с временными метками

  • Плавное ухудшение при изменении структуры страниц Airbnb

  • Защита сетевых запросов по таймеру

  • Детальные сообщения об ошибках для устранения неполадок

Меры безопасности

  • Соблюдение Robots.txt по умолчанию

  • Ограничение таймаутов запросов

  • Проверка и очистка входных данных

  • Безопасная работа с переменными окружения

  • Без хранения чувствительных данных

Производительность

  • Эффективный разбор HTML через Cheerio

  • Кэширование запросов где применимо

  • Минимальное использование памяти

  • Быстрый запуск и время ответа

Совместимость

  • Платформы: macOS, Windows, Linux

  • Node.js: 18.0.0 или выше

  • Claude Desktop: 0.10.0 или выше

  • Другие MCP‑клиенты: любой сервис, поддерживающий MCP

Разработка

Сборка из исходного кода

# Install dependencies
npm install

# Build the project
npm run build

# Watch for changes during development
npm run watch

Тестирование

# Build, then run both suites
npm test

npm test запускает собранный сервер через stdio и реально вызывает инструменты:

  • test-extension.js — MCP‑рукопожатие, список инструментов, поиск, детали объявления, пути геокодирования (Photon, запасной Nominatim)

  • test-amenities.js — извлечение удобств из нескольких живых объявлений, проверка, что удобства, зачёркнутые Airbnb, никогда не показываются как доступные

Оба обращаются к airbnb.com и геокодерам по сети, поэтому нуждаются в подключении и могут не работать, если Airbnb изменит структуру страниц — в этом их цель, но значит, они непригодны для полностью автоматического применения в CI.

Сервер также можно запустить напрямую:

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

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

Правовые и этические аспекты

  • Уважайте условия использования Airbnb: это расширение создано для законного поиска и помощи в бронировании

  • Соблюдение robots.txt: по умолчанию расширение соблюдает robots.txt

  • Ограничение частоты запросов: следите за частотой, чтобы не создавать лишнюю нагрузку на серверы Airbnb

  • Использование данных: извлекайте только публичную информацию и только для законных целей

Поддержка

  • Issues: Сообщения об ошибках и запросы на улучшение — на GitHub Issues

  • Документация: Дополнительная документация доступна в репозитории

  • Сообщество: Обсуждения по развитию MCP и MCPB

Лицензия

MIT License — подробнее в файле LICENSE.

Участие в разработке

Вклад приветствуется! Пожалуйста, прочтите руководство по внесению вклада и отправляйте пул-реквесты для любых улучшений.


Примечание: Это расширение не связано с Airbnb, Inc. Это независимый инструмент, разработанный для поиска и анализа общедоступных объявлений Airbnb.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielk-am/mcp-server-airbnb'

If you have feedback or need assistance with the MCP directory API, please join our Discord server