Skip to main content
Glama

Get Hotel Rooms

get_hotel_rooms
Read-only

Lists the bookable room packages for one hotel. Required: hotelId (from get_search_results), the SAME searchKey from hotel_search, plus startDate, endDate, rooms[], nationality, and regionId (re-supply the same values used in hotel_search); currency is recommended. Returns packages[], each with a quoteId (the priced, bookable offer — format packageId_hotelId), a packageId (the same string as the quoteId; truncate it at the underscore before sending it to check_cancellation_policy), roomName, mealType, price, pricePerNight, totalNights, amenities, and isRefundable. No authentication required. Pass a chosen quoteId to prepare_booking (and to confirm_booking for B2B). To inspect cancellation terms first, pass quoteId.split('_')[0] (the bare package UUID, WITHOUT the _hotelId suffix) to check_cancellation_policy — handing it the full quoteId fails with a misleading SESSION_EXPIRED even on a live session.

Input Schema

NameRequiredDescriptionDefault
roomsYes
endDateYesCheck-out date (YYYY-MM-DD)
hotelIdYesHotel ID from search results
currencyNoCurrency code
regionIdYesRegion ID
searchKeyYesSearch key
startDateYesCheck-in date (YYYY-MM-DD)
nationalityYes2-letter country code

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the read-only/non-destructive profile, and the description goes well beyond: it declares no authentication required, enumerates the returned packages[] fields, documents the quoteId format (packageId_hotelId), and warns that passing the full quoteId to check_cancellation_policy fails with a misleading SESSION_EXPIRED. That failure mode is exactly the kind of non-obvious behavior an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tightly packed with zero filler, and the core purpose is front-loaded before prereqs, return shape, and the cancellation gotcha. It is a single dense paragraph with heavy parenthetical nesting, so a light structural break would aid scanning, but no sentence is disposable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, 7-required tool with no output schema, the description covers inputs, cross-call state requirements, return fields, downstream routing, and a known error trap. There is no output schema to lean on, and the description supplies the return contract itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 88%, so the baseline is 3, but the description adds real meaning on top: where hotelId comes from, that searchKey/dates/rooms/nationality/regionId must match the prior hotel_search call, and that currency is only recommended rather than required. It stops short of per-parameter detail on currency or childrenAges, but the cross-call consistency requirement is the important gap it fills.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Lists the bookable room packages for one hotel') that cleanly separates it from hotel_search (search) and get_hotel_details (property metadata) in the sibling set. An agent can tell exactly what this returns 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit prerequisites with sources: hotelId from get_search_results, the SAME searchKey from hotel_search, and the same startDate/endDate/rooms/nationality/regionId re-supplied. It also routes onward, naming prepare_booking, confirm_booking (B2B), and check_cancellation_policy with the condition for each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources