MCP server for Booking.com — search hotels, check availability, manage reservations, and more via AI agents.
By Strider Labs
This MCP (Model Context Protocol) server gives AI agents the ability to interact with Booking.com using browser automation (Playwright). It supports 14 tools covering the full hotel booking workflow.
| Tool | Description |
|---|---|
booking_status |
Check login/session status |
booking_login |
Initiate login flow (returns URL for manual login) |
booking_logout |
Clear saved session and cookies |
booking_search |
Search hotels by destination, dates, guests, rooms |
booking_get_property |
Get property details (amenities, description, policies) |
booking_check_availability |
Check room availability for specific dates |
booking_get_prices |
Get pricing for a property |
booking_filter_results |
Filter last search by price, rating, amenities |
booking_sort_results |
Sort last search by price/rating/distance/reviews |
booking_save_property |
Save to wishlist/favorites |
booking_book |
Book a room (requires confirm=true) |
booking_get_reservations |
List current/upcoming reservations |
booking_cancel_reservation |
Cancel a booking (requires confirm=true) |
booking_get_reviews |
Get guest reviews for a property |
- Node.js 18+
- A Booking.com account (for bookings, reservations, and wishlist)
npm install @striderlabs/mcp-bookingOr install Playwright browsers after install:
npx playwright install chromiumAdd to your MCP config (e.g. ~/.claude/mcp_servers.json):
{
"mcpServers": {
"booking": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-booking"]
}
}
}The server uses cookie-based session persistence. Cookies are stored at ~/.strider/booking/.
- Run
booking_loginto get the login URL - Open the URL in your browser and sign in
- Run
booking_statusto verify the session is active
booking_search(destination="Paris", checkIn="2026-06-01", checkOut="2026-06-05", adults=2, rooms=1)
booking_filter_results(maxPrice=200, minRating=8.0, freeCancellation=true)
booking_sort_results(sortBy="rating")
booking_check_availability(propertyUrl="https://www.booking.com/hotel/fr/...", checkIn="2026-06-01", checkOut="2026-06-05")
booking_get_prices(propertyUrl="...", checkIn="2026-06-01", checkOut="2026-06-05")
# Preview first (no confirm flag)
booking_book(propertyUrl="...", checkIn="2026-06-01", checkOut="2026-06-05", adults=2)
# Confirm booking (only after explicit user approval)
booking_book(propertyUrl="...", checkIn="2026-06-01", checkOut="2026-06-05", adults=2, confirm=true)
booking_get_reservations()
booking_cancel_reservation(reservationId="12345678", confirm=true)
booking_bookrequiresconfirm=trueand should only be called with explicit user confirmationbooking_cancel_reservationrequiresconfirm=trueand is irreversible- Both tools return a preview/warning when called without the confirm flag
npm install
npm run build
npm startMIT — Strider Labs