Skip to main content
Glama

Hotelumo Hotel Operations

List extras and add-ons

list_extras
Read-onlyIdempotent

Use this when someone asks what extras a hotel sells, such as breakfast, parking, spa, transfers or fees, and what they cost. Returns each active extra's name, price in minor currency units, currency, category and taxable flag, 20 per page by default. Not for what a guest bought or was charged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoExtras per page, from 1 to 100; defaults to 20
offsetNoExtras to skip, from 0 to 10000; defaults to 0. For the next page pass offset + limit
hotelIdNoOnly this hotel (24 lowercase hexadecimal characters); every hotel when absent

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageYeshasMore is true when another page exists; request it with offset + limit
extrasYesActive extras; price is in integer minor currency units. Guest charges, folio data, display colors and credentials are excluded.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / hotelId / description
      Added value: +"Only this hotel (24 lowercase hexadecimal characters); every hotel when absent"
    • addedInput schema / properties / limit / description
      Added value: +"Extras per page, from 1 to 100; defaults to 20"
    • addedInput schema / properties / offset / description
      Added value: +"Extras to skip, from 0 to 10000; defaults to 0. For the next page pass offset + limit"
    • addedOutput schema / properties / extras / description
      Added value: +"Active extras; price is in integer minor currency units. Guest charges, folio data, display colors and credentials are excluded."
    • removedOutput schema / properties / extras / items / properties / category / $ref
      Removed value: -"#/properties/extras/items/properties/name"
    • addedOutput schema / properties / extras / items / properties / category / anyOf
      Added value: +[
      +  {
      +    "$ref": "#/properties/extras/items/properties/name/anyOf/0"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / extras / items / properties / category / description
      Added value: +"BREAKFAST, PARKING, SPA, TRANSFER, FEE or OTHER"
    • addedOutput schema / properties / page / description
      Added value: +"hasMore is true when another page exists; request it with offset + limit"
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds real behavioral context beyond that: only *active* extras are returned, prices are in minor currency units, and results are paginated at 20 per page by default.

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?

Two sentences, zero filler: the first front-loads the use case and the key returned fields, the second states the exclusion. Nothing is redundant or buried.

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?

With full param coverage, an output schema handling return values, and annotations covering the safety profile, the description supplies everything else an agent needs: domain scope, active-only filtering, price units, pagination, and the exclusion boundary.

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%, with limit, offset and hotelId all self-documented including defaults and the offset+limit paging recipe. The description only echoes the 20-per-page default already present in the schema, so it adds little beyond the baseline.

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 names a specific verb+resource ('list extras a hotel sells') and enumerates the domain (breakfast, parking, spa, transfers, fees) so an agent can distinguish it from siblings like list_rate_plans or list_daily_rates. It also closes the boundary with 'Not for what a guest bought or was charged.'

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?

It states the trigger explicitly ('Use this when someone asks what extras a hotel sells... and what they cost') and pairs it with a negative condition ('Not for what a guest bought or was charged'), which is the main risk of misuse for an extras-listing tool.

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