Skip to main content
Glama

hotels_offers

Read-only

Returns the public room/unit offer summaries shown for one Hotels.com property and date range, including room labels and non-transactional offer messages. Booking, checkout, payment, and reservation tokens are never returned. property_id is the numeric global property id from a Search response. Use hotels_rates to get Hotels.com rates for one property.

Input Schema

NameRequiredDescriptionDefault
adultsNoAdult guests, 1-9; omitted or zero uses the default 2.
localeNoLanguage/country locale, default en_US.
check_inNoRequired check-in date in YYYY-MM-DD format.
currencyNoPrice currency code, default USD.
check_outNoRequired check-out date in YYYY-MM-DD format, after check_in.
property_idNoRequired global property identifier from hotels_search properties[].id, distinct from the legacy /ho<id>/ URL identifier.

Output Schema

NameRequiredDescriptionDefault
dataYesThe tool result payload (shape varies per tool; see each tool's docs resource).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / adults / description
      Previous value: -"Adult guests, 1-9; default 2."New value: +"Adult guests, 1-9; omitted or zero uses the default 2."
    • changedInput schema / properties / property_id / description
      Previous value: -"Required property identifier returned by the provider's property search."New value: +"Required global property identifier from hotels_search properties[].id, distinct from the legacy /ho<id>/ URL identifier."
  2. Changed6 schema fields changed
    • addedInput schema / properties / adults / description
      Added value: +"Adult guests, 1-9; default 2."
    • addedInput schema / properties / check_in / description
      Added value: +"Required check-in date in YYYY-MM-DD format."
    • addedInput schema / properties / check_out / description
      Added value: +"Required check-out date in YYYY-MM-DD format, after check_in."
    • addedInput schema / properties / currency / description
      Added value: +"Price currency code, default USD."
    • addedInput schema / properties / locale / description
      Added value: +"Language/country locale, default en_US."
    • addedInput schema / properties / property_id / description
      Added value: +"Required property identifier returned by the provider's property search."
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds genuinely useful behavioral context beyond them: it states the data is "non-transactional" and that "Booking, checkout, payment, and reservation tokens are never returned," which tells the agent what this call cannot surface. It does not cover pagination or rate-limit behavior.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the return scope, then exclusions, then the identifier sourcing and the sibling route. No sentence is filler.

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?

With an output schema present, the description needn't describe return values, and annotations carry the safety profile. It covers scope, what is excluded, parameter sourcing, and the alternative tool — leaving only minor gaps like pagination behavior.

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 description coverage is 100%, so the schema already documents all six parameters, including the property_id sourcing rule. The description's note that property_id comes "from a Search response" largely restates the schema's own hotels_search properties[].id explanation, adding little. Baseline 3 is appropriate.

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?

The description uses a specific verb ("Returns") with a precise resource ("public room/unit offer summaries") scoped to one property and date range. It explicitly distinguishes itself from hotels_rates, which covers a different data surface (rates vs. offer summaries).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It names the alternative ("Use hotels_rates to get Hotels.com rates for one property") and establishes the context that this tool needs a property id and date range. The when-vs-when distinction between offers and rates is implied rather than spelled out, but the routing signal is present.

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.