Skip to main content
Glama

HotelUse - Hotel Metasearch

Room options

get_room_rates
Read-only

Get one identified or named hotel’s room options and provider prices for explicit hotel-local dates (including today), or date_intent: tonight, and occupancy. Tonight is resolved server-side in the hotel time zone. Accepts the exact HotelUse hotel_id from search_hotels, or hotel_name and destination when the ID is unavailable; destination is optional but helps disambiguation. A unique hotel match is required. Returns server-grouped room types, rate terms and full-stay provider prices in a separate Room options view. Provider price links open external booking pages; no reservation is made. Providing search_quote_session_id inherits omitted dates, occupancy, currency, language, residency and rate filters from that exact search. Explicit itinerary changes create a new quote; the search device is preserved. Supply exactly one hotel_id or hotel_name. Supply check_in/check_out, date_intent, or an existing search_quote_session_id for room quotes. All returned room groups are included in the first response; no room pagination is needed. Omit unknown optional values; do not send null. Resolve a hotel follow-up by name or position against the most recent relevant ordered search list. Copy its hotel_id exactly; if unavailable, use hotel_name and destination. Ask only if the hotel is ambiguous. For room options or current room prices call get_room_rates directly, passing search_quote_session_id from that search to preserve its stay and preferences. The first get_room_rates response includes all returned room groups and every provider minimum in room_groups. For all room options and prices, use that complete list after one call; do not paginate raw supplier offers or re-query the same stay. The raw_offer_page count describes supplier rate plans, not additional room types. Users can expand room cards locally without another price query. For undated amenities, policies or other hotel facts call get_hotel directly. Do not repeat a destination search before either hotel-specific tool. Existing returned prices may be explained without refreshing when no new search or current quote is requested.

Input Schema

NameRequiredDescriptionDefault
roomsNo
deviceNoOptional traveler device. Omission uses trusted client hints, then desktop. Room follow-ups inherit the effective search device. Mobile app rates require an approved native-app integration.
localeNoTraveler BCP 47 language, such as en-GB, independent of the destination.
regionNo
countryNo
check_inNoHotel-local calendar date; today is allowed in the destination time zone, even after UTC midnight.
currencyNoRequested display currency. Omission defaults to client visitor country, then locale, then USD.
hotel_idNoExact HotelUse hotel_id from a previous result.
check_outNo
providersNo
hotel_nameNoHotel name when no exact hotel_id is available. A unique, confident match is required. A full hotel name may be used without a destination; add the destination when ambiguous.
date_intentNoA one-night stay resolved server-side in the destination or hotel time zone. Mutually exclusive with check_in/check_out.
destinationNoCity or region to disambiguate the hotel name.
user_localeNoOptional traveler locale from client context, such as en-GB. Independent of the hotel destination.
rate_filtersNo
residency_countryNo
user_location_countryNoOptional traveler country from client context, used for default currency and residency. Independent of the hotel destination.
search_quote_session_idNoA search result’s search_session_id. Inherits omitted stay dates, rooms, currency, language, residency and rate_filters from that search. Its device is preserved even if current client metadata changes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already cover read-only, open-world, non-idempotent and non-destructive behavior, so the bar is lower. The description adds genuinely useful context: tonight is resolved in the hotel time zone, provider links open external booking pages with no reservation, a unique hotel match is required, and session inheritance preserves device and filters. However these points are restated repeatedly rather than expanded, so the marginal disclosure is thinner than the length suggests.

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

Conciseness2/5

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

Purpose is front-loaded, but the text is roughly twice the necessary length and loops: the 'all room groups are in the first response / do not paginate / do not re-query' point is made four or five separate times, and the hotel_id/hotel_name rule is stated twice. Sizeable chunks exist to repeat, not to add information.

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

Completeness4/5

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

For an 18-parameter, nested, annotation-light tool with no output schema, this covers the essential decision inputs — date sourcing, hotel identification, session inheritance, and the shape of the return (room_groups, rate terms, provider minimums, raw_offer_page meaning). Gaps remain on occupancy/rooms and provider filtering, but nothing that would cause a wrong call.

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

Parameters3/5

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

Schema coverage is 61%, so the schema carries much of the load and a 3 baseline applies. The description clarifies the highest-risk parameters — hotel_id vs hotel_name exclusivity, destination as disambiguator, date_intent tonight, and full inheritance semantics for search_quote_session_id — but says nothing about providers, rooms/occupancy structure, region/country vs residency_country, or breakfast_included.

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 — 'Get one identified or named hotel's room options and provider prices' — scoped to hotel-local dates or date_intent: tonight. It also explicitly partitions work against both siblings, routing undated amenities/policies to get_hotel and implying search_hotels as the source of the hotel_id.

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 concrete selection rules: supply exactly one of hotel_id or hotel_name, supply check_in/check_out, date_intent, or search_quote_session_id, use destination only for disambiguation, and ask only when the hotel is ambiguous. It also names the alternative tool for hotel facts and forbids redundant destination re-searches.

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