Skip to main content
Glama

Booking.com MCP Server

Размещённый сервер Model Context Protocol (MCP), который предоставляет Claude, Cursor, Windsurf и любому другому MCP-клиенту два инструмента Booking.com только для чтения. Поиск вариантов проживания по направлению и датам с расширенными фильтрами, а также полное чтение одного объекта — всё в виде структурированного JSON, без аккаунта Booking.com и без необходимости что-либо хостить.

Он читает публичные страницы объектов на Booking.com, которые видит посетитель without signs in the account.

https://mcp.hasdata.com/api/mcp?apis=booking

Glama score tool contract, MCP Tools License

. . .

Что вам нужно

MCP-клиент и API-ключ HasData из панели управления — просто создать, без карты, а триhaving covers 100 calls at the 10-credit rate. Это удалённый сервер, так что простейший путь — URL и заголовок x-api-key, никаких контейнеров для запуска и никакого аккаунта Booking.com во всём процессе. Клиент, который общается только через stdio, получает доступ к нему через тонкий лаунчер, опубликованный как @hasdata/booking-mcp на npm и hasdata-booking-mcp на PyPI, как показано below.

Быстрый старт

The server URL is the same for every client. We tested it in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.

Field

Value

URL

https://mcp.hasdata.com/api/mcp?apis=booking

Транспорт

HTTP, streamable

Заголовок аутентификации

x-api-key: HASDATA_API_KEY

Клиенты с поддержкой OAuth могут добавить тот же URL как коннектор и войти, не помещая ключ в конфигураонный файл.

claude mcp add --transport http booking "https://mcp.hasdata.com/api/mcp?apis=booking" \
  --header "x-api-key: HASDATA_API_KEY"

Настройки, затем Коннекторы, затем Добавить собственную коннекторку, затем вставьте https://mcp.hasdata.com/api/mcp?apis=booking and sign in.

Для маршрута на конфигураонном файле: Claude Desktop загружает толькоHidden? Локальные (stdio) серверы, so it uses a stdio lahome. Пакет @hasdata/booking-mcp is a launcher and reads the key from the environment. Добавьте это в claude_desktop_config.json:

{
  "mcpServers": {
    "booking": {
      "command": "npx",
      "args": ["-y", "@hasdata/booking-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Для Python вместо Node замените лаунчер пакетом PyPI, который uvx запускает без ручной установки:

{
  "mcpServers": {
    "booking": {
      "command": "uvx",
      "args": ["hasdata-booking-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

~/.cursor/mcp.json для каждого проекта или .cursor/mcp.json for one:

{
  "mcpServers": {
    "booking": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=booking",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json. Windsurf называет поле serverUrl, а не url:

{
  "mcpServers": {
    "booking": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=booking",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

.vscode/mcp.json в рабочем пространстве:

{
  "servers": {
    "booking": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=booking",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Примеры запросов

Примеры запросов, а не код. Вставьте один — и агент сам выберет инструменот. Каждый запрос сопровождается указанием, сколько вызовов он требует, потому что каждый успешный вызов стоит 10 кредитов.

Найдите на Booking.com отели в Париже с 15 по 18 сентября для двух взрослых и дайте мне десять лучших в рейтингу за $700 Проживание.

Один вызов, 10 кредитов. Цена, рейтинг отзывов и местоположение приходят в результата поиска.

Возьмите верхний результат и выведете его полные детали: удобсва, правила дома, варианты номеров и рейтинги категорий.

Один вызов, 10 кредитов. Эти данные находятся на странице объекта, которую инструment деталей читает по URL и датам.

Найдите четырехзвездочные отели в Париже с бесплатной possibly отменой near центра and list, предоставьте цen and finding by rating.

Один вызов, 10 кредитов. Звездный рейтинг, политика отмен ирасстояние фильтруются в одном запросе.

Сравните не самое дешевое проживание в Париже с Риме на те же даты.

Два вызова, 20 кредитов, по одному поиску для каждого города.

Инструмент property requires same dates and guest counts as search, because availability and price depend on окне. The search to shortlist plus one detail call on three properties is one search and three property calls.

Tools

Два инструмента, только для чтения. Sample below truncated from real calls, and prices move constantly. Treat them as shapes. Each tool name links to its endpoint reference, which contains full list of fields.

Samples are like the loading data, not whole response. A playground response tools/call carries one text block, and the text itself is JSON containing url, status, text and json, with extracted data under json. From a raw JSON-RPC response, the path is result.content[0].text, parsed, then .json. Общающийся клиент делает это за вас, а код, общающийся напрямую с endpoint, — нет.

Get Booking.com search results

hasdata_booking_search_getBookingSearchResults_base (?=)

Page of stays by destination and dates.

Параметр

Тип

Обязателен

Примечания

keyword

string

да

Направление, например Paris или конкретное название объекта

checkInDate / checkOutDate

string

да

YYYY-MM-DD, заезд в look-in future and before check-out

rooms / adults / children

number

да

Состав гостей. Передайте children: 0, если их нет

childrenAges

string

Ages through запятую, required when children > 0

sort

string

priceLowestFirst, ratingHighToLow, bestReviewedAndLowestPrice, distanceFromDowntown и др.

propertyType__ / rating__ / reviewScore__

array

Тип объекта, зазвездочная рейтинг и гостевой score

facilities__ / roomFacilities__ / reservationPolicy__

array

Фильтры convenience, facilities in room and cancellation

price_min_ / price_max_

number

Дiapazon full-stay values

page

number

Окоlo 25 результаats per странице, 2 for next page

The reference document contains full filter set, including distance, meals, accessibility, bed preference dis... and travel group.

Returns searchInformation, almost results array, and pagination with page, totalResults and totalPages. Each result carries hotelId, title, url, offered room and bedTypes, location object, policies object, price object, star rating, a reviews object with score, count and text label, and a photo.

Поле discount in price written as discount (discountRaw and discountParsed), which отражает upstream ключ. Use that spelling, not discount. Also note that rating is official star rating, while reviews.score is guest score out of 10, two different numbers.

{
  "hotelId": 50724,
  "title": "Hôtel du Jardin des Plantes",
  "url": "https://www.booking.com/hotel/fr/timjardindesplantes.html",
  "room": "Comfort Double Room",
  "location": { "city": "Paris", "address": "5 rue Linné", "mainDistance": "0.9 miles from downtown", "centrallyLocated": true },
  "policies": { "freeCancellation": true, "noPrepayment": true },
  "price": { "pricePerStayParsed": 451.36, "priceBeforeDiscountParsed": 885.03, "dicsountParsed": 433.66, "currency": "USD" },
  "rating": 3,
  "reviews": { "score": 7.5, "count": 1721, "text": "Good" }
}

Get Booking.com property details

hasdata_booking_place_getBookingPlaceDetails-...

One object fully, by URL and window of stay.

Параметр

Тип

Обязателен

Примечания

url

string

да

URL-адрес объекта Booking.com, поле url из результата поиска

checkInDate / checkOutDate

string

да

YYYY-MM-DD, период для расчета цены и наличие

rooms / adults / children

number

да

Состав гостей, same meaning as search

childrenAges

string

Age via comma, required when children > 0

The response is not flattened: sections overview (id, title, propertyType, structured address, description, highlights, mostPopularFacilities and photos), bookingDetails (window and currency), a rooms array (each with name, beds, facilities, priced variants), facilities list, houseRules, a ratings array, reviews, and questionsAndAnswers.

{
  "overview": {
    "id": "50724",
    "title": "Hôtel du Jardin des Plantes",
    "propertyType": "HOTEL",
    "address": { "country": "France", "zipcode": "75005" },
    "mostPopularFacilities": ["Non-smoking rooms", "Free Wifi", "24-hour front desk"]
  },
  "bookingDetails": { "checkIn": "2026-09-15", "checkOut": "2026-09-18", "adults": 2, "rooms": 1, "currency": "USD" },
  "ratings": [
    { "label": "Average", "value": 7.5, "votes": 1721 },
    { "label": "Cleanliness", "value": 7.8 }
  ]
}

Ошибки и failure states

Your client almost will never see an HTTP error code in response tool call. The MCP layer answers 200 and places error inside result, with property isError is set to true and reason as text. Agent sees message instead of status line.

Wrong ключ appears as tool output, not a failed server. tools/list accepts any non-empty key and returns both tools, so the client finishes handshake and shows green. Then first tool call returns isError: true text HasData API error: 401 Unauthorized. Be suspicious of this string, because nothing earlier reports problem.

The missing key is one real HTTP error. Authorization works before any tool, and connection fails with 401. CORS headers exist, and browser client gets status and not opaque network error.

Argument that violates tool's schema is rejected before scraping. Server answers with isError:true and text MCP error:-32602: Input validation error, naming the invalid field. If children without proper childrenAages, or check-out date before or same as check-in, — it breaks here.

Search without results returns a successful result with empty results array, not an error. If there is no availability, requestMetadata.status is ok. Try check array length before searching.

If property URL no longer exists, turns 400 with requestMetadata.status value error.

Result containing data also contains requestMetadata.id — useful for support.

P-ops, free plan, and restrictions

Each Booking.com tool costs 10 credits for successful call. Response size doesn't change price. The price of one page of 25 seats is the same as one page with two seats.

Бесплатный пробный период — 1 000 кредитов на 30 дней без карты, это 100 вызовов к Booking.com. После этого активный аккаунт ежедневно получает пополнение на 100 кредитов, как только его баланс опускается ниже 100, так что агент с низким объёмом запросов работает на бесплатном тарифе бессрочно.

Платные тарифы начинаются от $49 в месяц за 200 000 кредитов, это 20 000 вызовов. Цена за единицу снижается с объёмом: от $2,45 за 1 000 вызовов на стартовом тарифе до $0,99 на Business, $0,83 на Growth и $0,75 на самых крупных высокообъёмных тарифах.

Тариф также задаёт параллельность. Бесплатный пробный период допускает 1 одновременный запрос, Startup — 15, Business — 30, Growth — 50, а высокообъёмные тарифы — от 200 до 1 500. Обрабатывайте ситуацию превышения лимита защитно в любом автономном сценарии.

Запрос, вернувшийся с кодом, отличным от 200, не тарифицируется. Успешный вызов, который ничего не нашёл, всё равно считается вызовом.

Выбор инструментов

Параметр запроса apis определяет, какие инструменты видит ваш агент. Чем меньше инструментов, тем меньше контекста тратится на описания инструментов и тем меньше шансов, что модель потянется за неподходящим.

?apis=booking                    the two tools in this repo
?apis=booking,airbnb             add Airbnb stays
?apis=booking,google_travel      add Google Hotels and Flights

Параметр принимает имена провайдеров, например booking, и отдельные имена API, например booking_search. Имена с опечатками игнорируются. Если все имена указаны неверно, запрос завершается ошибкой 400, а в теле ответа перечислены и нераспознанные, и все допустимые значения. Если убрать параметр, та же конечная точка откроет все 57 инструментов HasData.

Как это выглядит в сравнении

Собственные программы Booking.com — Demand API и партнёрская сеть — предназначены для одобренных партнёров, которые приводят брони, и получают комиссию, а не для самостоятельного доступа к публиному маркету. Для поиска жилья и чтения произвольных объектов нужно обрабатывать публичные стницы, и этот сервер делает это через стабильную схему.

Партнёрские программы Booking.com

Этот сервер

Цель

Отправление броней как одобреного партнёра

Чтение публичнж рынка

Докстstuump

Одобрение партнёра

Один ключ и один URL

Поиск по маркету

В рамках партнёрзских условий

Да, с расширёнными фильтрами

Настройка

Бизнес-онбординг

Не требуется

Результат

Партнёрзские фиды

Структурированный JSON, цена и оценка узнаны заранее

Чего этот сервер не делает. Ни бронирования, ни оплаты, ни партнёрской комиссии, ни данных аккаунта. Он читает нужное, неавторизованный пользователь видит на Booking.com.

ЧАВО

Существует ли официальный сервер Booking.com MCP?

Booking.com не впустит такого. Этот поддерживается HasData и читает публичные страницы, поэтому ему не нужен аккаунт Booking.com.

Что таакой MCP-сервер Booking.com?

Это сервер, который предоставляет данные Booking.com как инструменты, доступные вызову через AI-клиент. Клинец отправляет Tool over Model Context Protocol, сервер загружает данные и возвращает структурированный JSON, а модель работает с результатом. Этот сервер открывает два инструмента и работает удалённо.

Нужен ли мне аккаунт Booking.com или одобрение партнёра?

Нет. Единственный достupный ключ — это ваш ключ HasData. Никакого партнёрзского онбординга нет, потому что инструменты читают публичн страницы Booking.com.

Зачем инструменту объекта нужны даты?

Потому что доступность, вариановые объекты и цена зависят от окна жилия. Передйте те же checkInDate, checkOutDate и колчество гостей, с которыми вы искали, и информция будет соответствовать этому окну.

В чём разника между rating и review score?

rating — официальный звёздный рейтинг объекта. reviews.score — оценка госевой оценки из 10. Отель со тремя звёздами может получить 9.0 от госей, поэтому читайте именно то, что вас вы имеете в виду.

Можно ли использовать это вместе с днугими API HasData?

Да. Параметр apis принимает список, и ?apis=booking,airbnb даёт вагему агенту Booking.com и airbnb. Зерните параметр и получите всё.

Связан ли HasData с Booking.com?

Нет. HasData — это независимый сервис, не аффилирован с Booking.com, не одобрен им и не сnonсируется им. Booking.com является товарным знакм соотвествуюζщего владельца.

Компленция и перснальные данные

HasData работает только с публичными данными. Платфорозн перsonal достup — на вас лежит отвственост за complied. Ес invocation даные, которые вы собирete, включют персональную инform, flex убедись, что у вас есть законное основание в соData GDPR, CCPA или эквивалентные праве вашего юrisdixcция.

Ссылки HasData

С страница продукта и конструктор запросов

Booking.com Scraper API

Документация сервера

Документация MCP-сервера

Все 57 tools в одном сервер

HasData/hasData-mcp

Клиентские обзоры

MCP-клиенты и интеграции

Вс остальное to-torap:

Booking.com Scraper API и ещё 54

Параmentries и credit costs

Тарифы и стоимость кредитов

Ключи и использовани

HasData dashboard

Разработка

Этот репозиторий — конфигурация и документация для удалённого сервера. Нет шага сборки и ничего контейнерзовать.

Тесты в test/ проверюют контракт инструментов, та часть, котораа может сломться без изменения в данном репозитории.Они проверюют, that ?apis=booking возврешает рово 2 инструмента, что каждый инструмент всёё ещё объявляет свои обзательные параметры, что ни одно имя не изменился och что используемый ключ действителено принят. Та последняя проверка по-насОщему вызывает инструмент и стоит 10 кредитов — это цена канарейчной проверки, которحا может упасть по нужной причине.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

Тот же на бор тестов запускается в CI при какdom push и по ражажднынедельный распинию, потому что список вышестоященных tools может измениться без изменения в этом репозитории. Сбо й означает, что список tools здвинлся, ключ сломлся или конечная точ já недосты, а в сообщ lazyл к error.

Вклад

Правки в таблитцах tools и в примерах ответов — самый полезный вклад, потому что именно эти места уходят вперёд. Включите выполненный вызов и полученный на него ответ. Pull requests из форков запускают набор без ключа, а Live-проверики пропускаются, а не пададут.

Licenзка

MIT. См. LICENSE.

Install Server
-
license - not tested
A
quality
B
maintenance

Maintenance

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

Related MCP Connectors

  • Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

  • Airbnb stays by location and dates, and full listing details, as structured JSON.

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/HasData/booking-mcp'

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