Live Booking.com hotel prices, plus per-country pricing for rate-parity monitoring.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Give your agent live flight and hotel prices β every fare carrying Google's own low | typical | high verdict and a bookable link β so it can tell someone whether a price is worth taking, not just what the price is.
Free, no API key, no signup:
That puts four tools in your agent β one-way flights, round-trip flights, hotel search, and one named hotel β and you can ask it a real question straight away. The free server is ad-supported: each response carries one disclosed sponsored card. Ad-free servers below.
Ask a flexible question and it is one call, not one per date:
That is an actual response from the free server, captured 2026-08-25 (BER β CDG, departure_date_from / departure_date_to spanning five days). It is one real search, not a benchmark β fares move constantly, and yours will differ.
The low / typical column is the part most flight APIs do not have. It comes from price_range_in_relation_to_other_periods, alongside price_insights_low and price_insights_high β Google's own price band for that route and period. It is the difference between an agent that says "$49" and one that says "$49 is low for this route β book it, don't wait".
Written for the model that has to choose between them. The parameter names below are the real ones from the tool schemas.
search_oneway_flightsReach for this for any single-direction fare question, including open-ended ones. The destination may be a list of IATA codes and the dates may be a range (departure_date_from / departure_date_to) β the server expands both internally. "Cheapest flight to Sri Lanka anywhere in October" is one call, not thirty. Do not loop this tool over dates.
Not this one when the traveller comes back β search_roundtrip_flights prices the pair together, which is not the same number as two one-ways added up.
You get back one row per itinerary: price / price_as_number, airline, duration / duration_seconds, stops and stops_info[] (each layover airport and its duration), departure_description / arrival_description, a buy_link deep-linking that exact itinerary, and the three price-insight fields. Alongside them, search_coverage names every date actually searched.
Read search_coverage before you conclude anything. On the free server a call searches at most 15 date Γ destination combinations; a wider request is not rejected, it is sampled evenly across the range and comes back with truncated: true. A date missing from departure_dates_searched was never searched β which is not the same as having no flights.
search_roundtrip_flightsReach for this whenever the trip returns, and especially when the user knows the trip length but not the dates: pass nights (a number, or a list like [5,6,7]) instead of return_date, with departure_date_from / departure_date_to for the outbound window. "5 to 7 nights in Rome sometime in May" is one call.
You get back total_price / total_price_as_number for both legs together, total_duration_seconds, total_stops, the outbound and return legs already paired β departure_flight_airline, return_flight_airline, per-leg stops, durations and times β and a single buy_link covering the whole trip. Same free-tier cap and same search_coverage, counted over departure-date Γ nights combinations.
search_hotelsReach for this when the user wants options in a place. destination is free text the way a person says it β "Rome", "Tokyo Shibuya" β not an ID and not a coordinate, plus checkin_date and checkout_date. budget_per_night filters before you get the list.
Not this one when they have already named the property; that is find_hotel_by_name.
You get back per property: name, price_string and price, review_score and review_count, room_type, location, and a booking link.
find_hotel_by_nameReach for this when the user names one property β "is the Hilton Paris Opera free that week" β or when you are tracking a single hotel's price over time. hotel_name is the name a person would type; adding the city helps when a chain has many properties. No internal property ID is needed; the resolution is done for you.
You get back that property's price, review_score, room_type and booking link. A property with no availability for those dates comes back as unavailable β that is an answer, not an error, and re-calling will not change it.
All four: rates and fares go stale within minutes. Never reuse a result from earlier in the conversation; search again and stamp the answer with when it was fetched.
The tools give your agent the data. The skills are what make it use the data well β one call for a whole date range instead of thirty, the verdict instead of a bare number, and a fresh fetch every time.
One hub holds auth, hosts, every endpoint, every response field name and the billing rules. Seven workflow skills stay thin and delegate to it.
| Skill | Use it when you want to⦠| It returns |
|---|---|---|
travel-data-api | write curl or client code, look up a parameter or response field, install a server, or work out what a call costs | endpoint tables, runnable curl, exact JSON field names |
cheapest-dates | find the cheapest day, week or month to fly a known route β or the cheapest trip length | cheapest fare per date, the winning departure_date/return_date, buy_link, and the deal verdict |
destination-compare | decide where to go: "somewhere warm under $300 in October" | a price-ranked table of cities, plus a coverage line naming every destination actually searched |
trip-planner | price a named trip end to end: "7 nights in Lisbon under $2000" | aligned check-in/check-out, round-trip flights, matching hotels, combined per-person total vs. the cap |
fare-watch | track one route's price over repeated checks and alert only on a meaningful drop | live price, low/typical/high verdict, Google's historical band, checked_at, delta vs. your stored history |
hotel-search | find hotels by city, neighborhood or landmark, or price one named property | name, price_string, review_score, room_type, location, link |
rate-parity-monitor | see whether the same hotel is cheaper booked from another country | per-market table with the country each price was seen from, per-night rate in one currency, spread vs. cheapest market, breach-vs-noise verdict |
travel-brief | turn results into something you can send a client | recommendation β table β verdict β booking links β checked-at line |
Skills are named by the job, not by the endpoint. Two flight endpoints and two hotel endpoints produce seven workflows, because "which day is cheapest" and "where should I go" are different questions to a user and identical questions to an API.
Other prompts these are built for:
Restart Claude Code and all eight load together β the agent picks the right one from the question, and you can also invoke one directly by name (cheapest-dates, trip-planner, rate-parity-monitor).
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/booking-com-hotel-search-live-prices)<a href="https://allmcps.com/mcp/booking-com-hotel-search-live-prices"><img src="https://allmcps.com/api/badge/booking-com-hotel-search-live-prices?style=directory" alt="Booking.com Hotel Search (Live Prices) on AllMCPs" /></a>