BookResorts — hotel & resort booking
Server Details
Live hotel and resort prices (taxes included) and secure booking links for travelers. Since 1993.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool occupies a distinct stage of a single funnel: search_hotels finds destinations, get_hotel expands one hotel into room/rate options, and create_booking_link converts a specific option_id into a checkout link. The descriptions explicitly chain them together (ids from search feed get_hotel, option_id feeds create_booking_link), leaving no plausible misselection.
All three names are clean snake_case verb_noun (search_hotels, get_hotel, create_booking_link). The verb choice also maps predictably onto read vs. write intent.
Three tools is lean but each earns its place in a genuine search-detail-convert workflow, with no redundancy. It sits at the very bottom of the well-scoped range, and a couple of ancillary tools (e.g. retrieving or cancelling an existing booking) would round it out.
The pre-booking lifecycle is fully covered (search -> detail -> checkout link), and payment is deliberately delegated to the external checkout page. However, there is no way to look up, modify, or cancel an existing booking, which is a notable gap for a booking server and leaves agents at a dead end after the link is issued.
Available Tools
3 toolscreate_booking_linkAInspect
Create a secure checkout link for one room option from get_hotel. Give the link to the traveller: it opens our checkout with that exact room, dates and price, where they enter their details and pay (rate re-confirmed live). Links last 24 hours. Never ask the traveller for card details yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | ||
| adults | No | ||
| checkin | Yes | YYYY-MM-DD | |
| checkout | Yes | YYYY-MM-DD | |
| hotel_id | Yes | ||
| option_id | Yes | option_id from get_hotel | |
| children_ages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the 24-hour link expiry, that the rate is re-confirmed live at checkout, and the security constraint against handling card details. It omits auth/permission needs and what happens to an expired link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action, then the handoff instruction, then the constraints. No sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a link-generating tool with no output schema and no annotations, the description covers purpose, expiry, workflow, and a key security boundary. It stops short of describing the returned artifact or failure modes, but is sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43% across 7 parameters. The description reinforces that option_id comes from get_hotel and that dates/price flow into the link, but says nothing about rooms, adults, or children_ages, leaving several parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a secure checkout link') scoped to 'one room option from get_hotel', which explicitly ties it to the sibling tool it depends on and separates it from search_hotels. An agent can tell what it produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear workflow context: use the output of get_hotel, hand the link to the traveller, and do not collect card details. It lacks an explicit when-not-to-use or alternative clause, but the correct invocation path is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotelBInspect
A hotel's live rooms and rates for the dates: room names, size, occupancy, board (room only / breakfast / all-inclusive), refundability and the total price per option. Pass an option_id to create_booking_link.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | ||
| adults | No | ||
| checkin | Yes | YYYY-MM-DD | |
| checkout | Yes | YYYY-MM-DD | |
| hotel_id | Yes | ||
| children_ages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-disclosure burden. It usefully lists the returned data—room names, size, occupancy, board type, refundability, and total price—which gives the agent a clear picture of the output. However, it does not state that this is a read-only operation, nor does it mention authentication needs, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the resource and date scope before listing returned attributes. The second sentence adds a workflow hint but introduces option_id without explaining that it comes from this tool's output. Overall it is efficient and avoids filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does well to enumerate return fields so the agent knows what to expect. However, for a 6-parameter tool it is incomplete on the input side: required parameters, defaults, constraints, and the meaning of hotel_id and children_ages are left to the schema. It also does not clarify when to use this tool instead of search_hotels.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 33%, so the description must compensate for the undocumented parameters. It refers only indirectly to dates via 'for the dates' and does not explain hotel_id, rooms, adults, children_ages, or their defaults and constraints. The mention of option_id is confusing because option_id is not an input parameter in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: a single hotel's live rooms and rates for given dates, including detailed room and rate attributes. It distinguishes the resource from search_hotels by focusing on one hotel's live availability rather than search results, though it does not explicitly name search_hotels as an alternative. The mention of create_booking_link clarifies the downstream workflow but does not dilute the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit when-to-use guidance, no prerequisites, and no comparison to search_hotels or other siblings. The instruction to pass an option_id to create_booking_link is a workflow hint, not a usage guideline for this tool. An agent must infer that this tool is for retrieving a specific hotel's availability after selecting it from search results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hotelsAInspect
Search hotels and resorts in a destination (city, region or resort area) with LIVE prices for the dates and party. Prices are totals for the whole stay in USD, taxes and fees included. Returns up to 15 hotels (cheapest first, or best-rated with sort=rating), with ids for get_hotel.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price = cheapest first; rating = best guest rating first | price |
| rooms | No | Number of rooms; adults/children are split across them | |
| adults | No | ||
| checkin | Yes | YYYY-MM-DD | |
| checkout | Yes | YYYY-MM-DD | |
| min_stars | No | Only hotels with at least this star rating | |
| destination | Yes | e.g. 'Cancun', 'Punta Cana', 'Maui', 'Riviera Maya' | |
| children_ages | No | Ages of children, if any | |
| all_inclusive_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does disclose meaningful traits: LIVE prices, totals for the whole stay, USD, taxes and fees included, a 15-result cap, and default sort behavior. It omits any rate-limit, caching, or freshness caveats beyond 'LIVE'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded sentences with no filler; pricing and result behavior are stated efficiently. Slightly compressed but nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-param, no-annotation, no-output-schema tool, the description covers return count, sorting, currency, tax inclusion, and the handoff to get_hotel. It could say more about required fields or edge behavior, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, so the schema documents most parameters itself. The description adds context on destination types (city/region/resort area) and that prices reflect the whole party, but the sort semantics it mentions are already spelled out in the schema enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (hotels and resorts) with scope (destination, dates, party), and implicitly distinguishes itself from the detail sibling get_hotel by noting it returns ids for that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context that this is the discovery step whose ids feed get_hotel, which routes the agent correctly. However, it never states when not to use it or any prerequisites/exclusions, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
create_booking_link - First observed
get_hotel - First observed
search_hotels
Related MCP Connectors
Live hotel rates worldwide: search stays, property detail, all-in room prices, human phone desk.
Live hotel and flight prices compared across Booking.com, Agoda, Trip.com and Traveloka, in USD.
Live flight, hotel and seat prices, cheapest-day calendars, and price-drop alerts.
Agent-bookable Dubai & Abu Dhabi hotel store: live all-in prices, rate holds, payment links.
Related MCP Servers
- AlicenseBqualityAmaintenanceOfficial MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.1241212 npm2MIT
- AlicenseNot gradedqualityCmaintenanceEnables verified, bookable hotel price checking with tax-inclusive totals, OTA tax status flags, and durable Booking.com fallback links for budget travel planning.MIT
- AlicenseAqualityAmaintenanceVacation rental software. A signed stay offer on the host's own domain. Agents discover a host domain, verify an Ed25519-signed offer (VRP), and send the guest to that domain to book and pay the host. Do not compare hosts or prices. HemmaBo + VRP, 6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools. Not an OTA. Not a marketplace.76344 npm3Apache 2.0
- FlicenseNot gradedqualityBmaintenanceProvides live hotel room rates, availability, and guest reviews from Agoda, enabling searches by destination and dates, property details, and structured review data.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.