Skip to main content
Glama

Server Details

Search hotels, get live prices, and check out in chat. Guest search needs no sign-in.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 18 of 18 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct action or resource, e.g., search vs search_hotels, get_booking vs get_my_booking. No overlapping functionality; descriptions clarify subtle differences.

Naming Consistency4/5

Most tools follow verb_noun pattern (add_trip_item, cancel_booking) or get_/list_ prefixes. One outlier ('fetch') breaks the pattern slightly, but overall naming is predictable.

Tool Count5/5

18 tools cover the hotel booking domain comprehensively without being excessive. Each tool has a clear role in the workflow from search to booking to modification.

Completeness5/5

Covers all key lifecycle stages: search, details, rooms, pricing, checkout (standard and one-click), booking management (list, get, cancel, modify), payment methods, and trip saving. No obvious gaps.

Available Tools

18 tools
add_trip_itemAdd trip itemAInspect

Add an item (hotel, flight, activity, etc.) to a saved trip on a given day.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayYesDay number within the trip.
typeYesItem type.
titleYesItem title (1-255 chars).
sortOrderNoOrder within the day (default 0).
descriptionNoOptional notes (≤2000 chars).
itineraryPublicIdYesThe trip's public id (from `list_trips`/`save_trip`).
Behavior3/5

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

Annotations already indicate readOnlyHint=false, so description confirms write behavior. No extra behavioral details (e.g., side effects, required auth, or limitations) are provided beyond the verb.

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?

One sentence, zero waste. Essential information is front-loaded.

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

Completeness3/5

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

The description lacks output specification and assumptions (e.g., trip must exist). For a simple creation tool, it's adequate but incomplete.

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 6 parameters. The description adds no additional meaning beyond the schema.

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 clearly states the verb 'Add' and the resource 'item (hotel, flight, activity, etc.) to a saved trip on a given day.' It distinguishes from siblings like `save_trip` which manages the trip itself.

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

Usage Guidelines3/5

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

The description implies when to use (when adding an item to a trip) but provides no explicit guidance on when not to use or alternatives. Siblings like `save_trip` could be confusing, but no clarification is given.

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

cancel_bookingCancel bookingA
Destructive
Inspect

Cancel one of the signed-in user's bookings. Requires the 6-digit verificationCode from request_booking_action_code. This may be irreversible and can trigger a refund per policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional cancellation reason (≤1000 chars).
publicIdYesThe booking's public id.
verificationCodeYes6-digit code from `request_booking_action_code`.
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by specifying the need for a verification code and disclosing that cancellation may be irreversible and can trigger a refund. No contradiction with annotations.

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 concise sentences front-load the purpose and requirement, followed by consequences. Every sentence adds value with no wasted words.

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?

Given the schema covers parameter details and annotations cover destructiveness, the description adds the remaining context: prerequisite action and consequences. No output schema, but that's acceptable for this tool.

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?

The input schema has 100% coverage with descriptions for all three parameters. The description does not add significant meaning beyond the schema, apart from reiterating that verificationCode is from request_booking_action_code. 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 clearly states it cancels a booking for the signed-in user, using a specific verb and resource. It distinguishes from siblings like modify_booking (modify vs cancel) and request_booking_action_code (which provides the code).

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?

The description explains that it requires a 6-digit verificationCode from request_booking_action_code, implying a prerequisite. It also mentions potential irreversibility and refund trigger, providing usage context. However, it doesn't explicitly state when to use this tool versus alternatives like modify_booking.

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

create_checkoutCreate checkoutA
Destructive
Inspect

Create a secure checkout for a chosen hotel room and return a getmyhotels.com URL where the guest completes payment. This does NOT charge the card — the guest pays on the hosted page. Confirm the hotel, room, dates, and price with the user before calling. Call get_checkout_quote first to confirm the live price.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoHotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId.
priceYesTotal to charge for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights).
roomsNoRooms (default 1).
adultsNoAdults (default 2).
checkInYesCheck-in date, ISO 8601 (YYYY-MM-DD).
checkOutYesCheck-out date, ISO 8601 (YYYY-MM-DD).
childrenNoChildren (default 0).
currencyYesISO 4217 currency of `price`/`totalPrice` (e.g. 'USD').
roomNameYesRoom name (from the chosen room).
hotelNameYesHotel name (from `search_hotels`).
childrenAgesNoAge of each child.
supplierCodeNoSupplier code (from `search_hotels`). Required if `ref` is omitted.
supplierRoomIdYesBookable room/rate id from the chosen room in `search_hotels`.
supplierHotelIdNoSupplier hotel id (from `search_hotels`). Required if `ref` is omitted.
Behavior5/5

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

Description clearly states that the tool does NOT charge the card and returns a URL for guest payment, which goes beyond annotations that only indicate destructiveHint=true. It adds critical behavioral context.

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 sentences, each adding value: core action, no-charge clarification, user confirmation requirement, prerequisite call. Front-loaded and no fluff.

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

Completeness3/5

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

Given lack of output schema, description only says 'return a getmyhotels.com URL' without detailing full response structure (e.g., checkout ID, expiry). More detail on return format would improve completeness for a complex tool with 14 parameters.

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 100% with detailed parameter descriptions (e.g., price usage). The description adds general guidance but no new parameter-level semantics beyond what schema already provides.

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?

Description clearly states the tool creates a secure checkout for a hotel room and returns a payment URL. It distinguishes from sibling `create_one_click_checkout` by noting this does not charge the card and requires guest to pay on hosted page.

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?

Explicitly says to confirm hotel, room, dates, and price with user before calling, and to call `get_checkout_quote` first for live price. Also clarifies that card is not charged, setting correct expectations.

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

create_one_click_checkoutCreate one-click checkoutA
Destructive
Inspect

Create a checkout for the signed-in user with a saved card pre-selected, and return a getmyhotels.com URL where they confirm + pay in one click. Does NOT charge the card — the user confirms on the hosted page. Get the savedPaymentMethodPublicId from list_payment_methods. Confirm the hotel, room, dates, and price with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoHotel `ref` from `search_hotels` (e.g. 'TBO:1402689').
priceYesTotal for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights).
roomsNoRooms (default 1).
adultsNoAdults (default 2).
checkInYesCheck-in date, ISO 8601.
checkOutYesCheck-out date, ISO 8601.
childrenNoChildren (default 0).
currencyYesISO 4217 currency (e.g. 'USD').
roomNameYesRoom name.
hotelNameYesHotel name.
supplierCodeNoSupplier code (if `ref` omitted).
supplierRoomIdYesBookable room/rate id from `search_hotels`.
supplierHotelIdNoSupplier hotel id (if `ref` omitted).
savedPaymentMethodPublicIdYesSaved card `publicId` from `list_payment_methods`.
Behavior4/5

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

Annotations declare destructiveHint=true and readOnlyHint=false which already indicate mutation. The description adds value by clarifying that no charge is made until user confirms on the URL, and lists prerequisite data sources. This goes beyond annotation defaults.

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 front-loaded with purpose, followed by key behavior and prerequisites. No wasted words, every sentence adds value. Ideal length for quick comprehension.

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 a complex tool with 14 params and no output schema, the description covers the high-level workflow, prerequisite steps, key constraint (no charge), and return type (URL). Could mention error conditions or what happens if user does not confirm, but overall adequate given annotations.

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 description coverage is 100% with detailed parameter descriptions. The description adds specific guidance on using 'grandTotal' from 'get_checkout_quote' for the price parameter, which exceeds what the schema provides. Baseline 3 is elevated due to this added context.

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 ('create') and resource ('one-click checkout'), clearly stating it returns a URL for user confirmation and payment. It distinguishes from siblings like 'create_checkout' by specifying the one-click aspect and pre-selected card.

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?

The description provides explicit guidance: does not charge, user confirms on hosted page, get payment method from 'list_payment_methods', confirm details with user first. It implies prerequisite steps but does not explicitly name alternatives like 'create_checkout' for non-one-click flows.

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

fetchFetchA
Read-only
Inspect

Fetch the full record for a result id returned by search (a hotel) or for a booking reference (prefixed 'bk_'). Returns a document with id, title, text, url, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAn id from `search` results, or a 'bk_'-prefixed booking ref.
Behavior3/5

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

Annotations already provide `readOnlyHint: true` and `openWorldHint: true`, indicating a safe read operation. The description reiterates 'Fetch' which aligns with read-only behavior but adds no new behavioral context (e.g., potential side effects, rate limits, or what happens on invalid IDs).

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?

The entire description is a single, well-structured sentence that efficiently conveys the tool's purpose, input, and output. Every part adds value, with no wasted words.

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?

Given the low complexity (1 parameter, no output schema, rich annotations), the description is complete. It specifies input requirements, output fields, and use cases effectively, leaving no critical gaps for an AI agent to correctly invoke the tool.

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?

The input schema has 100% coverage for the single parameter 'id', with description 'An id from search results, or a 'bk_'-prefixed booking ref.' The tool description adds minimal extra meaning beyond this, only reiterating the accepted formats. No additional semantics like validation constraints or examples are provided.

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 clearly states the tool's purpose: 'Fetch the full record for a result id returned by `search` (a hotel) or for a booking reference (prefixed 'bk_').' It specifies the input type and output fields, distinguishing it from sibling tools like `search` (which returns a list) and `get_booking` (which might have a different scope).

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?

The description explicitly tells when to use the tool: after `search` or when you have a booking reference starting with 'bk_'. However, it does not mention when not to use it or provide alternatives, leaving some ambiguity as siblings like `get_hotel_details` or `get_booking` might also apply.

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

get_bookingGet bookingA
Read-only
Inspect

Look up a hotel booking by its management token (sent in the confirmation email). Returns the booking status, hotel, dates, and guest details.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookingTokenYesThe booking management token from the confirmation email/URL.
Behavior4/5

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

Annotations declare readOnlyHint=true, consistent with description. Description adds that the tool returns booking status, hotel, dates, and guest details, but no further behavioral traits beyond what annotations provide. No contradictions.

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?

Single sentence, no fluff, front-loaded with the core action. Every phrase adds value.

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 a simple tool with 1 parameter and no output schema, the description covers purpose, required input, and return fields (status, hotel, dates, guest details). Fully adequate.

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 description coverage is 100% for the single parameter. Description adds valuable context: 'bookingToken' comes from confirmation email/URL, enhancing the schema's definition.

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?

Description clearly states 'Look up a hotel booking by its management token' with specific verb and resource. It distinguishes from siblings like get_my_booking which use user authentication instead of a token.

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?

Description specifies when to use: when you have a management token from confirmation email/URL. Implicitly guides away from tools like get_my_booking when token is available, but lacks explicit exclusions or alternative references.

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

get_checkout_quoteGet checkout quoteA
Read-only
Inspect

Re-price a specific room live against the supplier before checkout (no booking, no charge). Use the supplierRoomId and price/currency from search_hotels. Returns the authoritative grand total, a rateValidUntil timestamp, and any taxes/fees.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoHotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId.
roomsNoRooms (default 1).
adultsNoAdults (default 2).
checkInYesCheck-in date, ISO 8601 (YYYY-MM-DD).
checkOutYesCheck-out date, ISO 8601 (YYYY-MM-DD).
childrenNoChildren (default 0).
currencyYesISO 4217 currency of `price`/`totalPrice` (e.g. 'USD').
promoCodeNoOptional promo code.
totalPriceYesThe room's price from `search_hotels` — the TOTAL for the whole stay, not a nightly rate (used to detect price changes).
childrenAgesNoAge of each child.
supplierCodeNoSupplier code (from `search_hotels`). Required if `ref` is omitted.
supplierRoomIdYesBookable room/rate id from the chosen room in `search_hotels`.
supplierHotelIdNoSupplier hotel id (from `search_hotels`). Required if `ref` is omitted.
Behavior4/5

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

Annotations provide readOnlyHint and openWorldHint. Description adds 'live against supplier', 'no booking, no charge', and mentions output fields, enhancing transparency beyond annotations.

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, front-loaded with purpose and safety, waste-free. Efficiently communicates key 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?

Given 13 parameters, high schema coverage, and annotations, the description covers core behavior and return values. Could mention price comparison aspect, but overall complete.

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 100%, so each parameter has a description. The description adds context by linking supplierRoomId and price/currency to search_hotels outputs, aiding correct invocation.

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?

Description states specific verb 're-price', specific resource 'room', and distinguishes from siblings like create_checkout and search_hotels. Clearly indicates no booking or charge.

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?

Explicitly instructs to use supplierRoomId and price/currency from search_hotels, and positions tool before checkout. Lacks explicit 'when not to use' but context is clear.

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

get_hotel_detailsGet hotel detailsA
Read-only
Inspect

Get full property details (description, amenities, photos, policies, location) for a hotel, identified by its ref from search_hotels (or its supplierCode + supplierHotelId).

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoThe hotel `ref` from search (e.g. 'tbo:1360717').
supplierCodeNoAlternative to `ref`: supplier code.
supplierHotelIdNoAlternative to `ref`: supplier hotel id.
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. Description adds detail categories but no further behavioral traits beyond what annotations imply.

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?

Single sentence, front-loaded with purpose, no redundant 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?

Lists detail categories, mentions identification sources. No output schema, but description covers key information; missing error or behavior details but adequate for a lookup tool.

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?

Adds meaning by explaining `ref` originates from `search_hotels` and that `supplierCode`+`supplierHotelId` are alternatives. This goes beyond schema descriptions.

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?

Clearly states 'Get full property details' and lists specific categories. Distinguishes from sibling `search_hotels` by focusing on details vs. search results.

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?

Implicitly tells when to use (after search) and provides two identification methods. Does not explicitly exclude scenarios but context is clear.

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

get_my_bookingGet my bookingA
Read-only
Inspect

Get full details of one of the signed-in user's bookings by its public id.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicIdYesThe booking's public id.
Behavior3/5

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

The annotations already declare 'readOnlyHint': true, so the tool is known to be safe. The description does not contradict any annotations and adds modest value by specifying the scope ('signed-in user's') and the action ('Get full details').

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?

The description is a single concise sentence that wastes no words. It front-loads the purpose with 'Get full details' and is perfectly sized for quick comprehension.

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 a simple read-only tool with one parameter and no output schema, the description provides sufficient context: the resource (booking), scope (signed-in user), and identifier (public id). No additional details like error conditions are necessary for completeness.

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?

The input schema has 100% coverage with a clear description for the only parameter. The description mentions 'by its public id' but adds no additional semantic information beyond what the schema provides. Baseline score of 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 clearly states 'Get full details of one of the signed-in user's bookings by its public id.' This is a specific verb ('Get') and resource ('full details of a booking'), and it distinguishes itself from sibling tools like 'list_my_bookings' (which lists multiple) and 'get_booking' (which may not be scoped to the user).

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?

The description implicitly indicates when to use this tool: when you need full details of a specific booking owned by the signed-in user, and you have the public id. It does not explicitly exclude alternatives, but the context is clear enough for an agent to infer.

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

get_roomsGet hotel roomsA
Read-only
Inspect

List the bookable rooms for ONE hotel and date range. Each room's supplierRoomId is what you pass to get_checkout_quote / create_checkout. Use the hotel ref from search_hotels or search. Call this to see all of a chosen hotel's rooms, or to refresh availability before checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoThe hotel `ref` from search (e.g. 'tbo:1360717').
roomsNoRooms (default 1).
adultsNoAdults (default 2).
checkInYesCheck-in date, ISO 8601 (YYYY-MM-DD).
checkOutYesCheck-out date, ISO 8601 (YYYY-MM-DD).
childrenNoChildren (default 0).
supplierCodeNoAlternative to `ref`: supplier code.
supplierHotelIdNoAlternative to `ref`: supplier hotel id.
Behavior3/5

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

Annotations already indicate read-only and open-world behavior. Description adds that it lists bookable rooms and links output to checkout tools. However, it does not disclose potential limits, pagination, or error conditions. With annotations covering the core safety profile, the description provides moderate added context.

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?

Three sentences, each adding value: purpose, output usage, and usage context. No redundancy or fluff. Front-loaded with the key action.

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?

Despite many parameters and no output schema, the description effectively covers the workflow context. It explains the tool's role in the broader flow (after search, before checkout). A slight gap is not addressing which parameters are required (e.g., ref is optional) or how to choose between ref, supplierCode, and supplierHotelId.

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 100%, so baseline is 3. Description adds value by explaining the use of ref (from search) and the relevance of supplierRoomId in subsequent tools. This contextualizes parameters beyond the schema descriptions, though not all parameters gain extra meaning.

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?

Description clearly states the tool lists bookable rooms for one hotel and date range, with a specific verb and resource. It distinguishes from sibling tools by specifying when to use (after hotel selection, before checkout) and ties the output to other tools.

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?

Explicit guidance to use hotel ref from search and call to see all rooms or refresh availability. While it doesn't state when not to use, the context is clear and implies it's for a specific hotel and date range. No explicit alternative mentioned, but siblings list other actions.

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

list_my_bookingsList my bookingsA
Read-only
Inspect

List the signed-in user's hotel bookings.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
limitNoPage size (default 20).
Behavior3/5

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

Annotations already set readOnlyHint=true, so the description's added context (user-specific bookings) is helpful but not critical. No other behavioral details (e.g., pagination semantics) are disclosed.

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?

Description is a single, concise sentence that efficiently conveys the tool's purpose without wasted words.

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

Completeness3/5

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

Description lacks information about return format or behavior beyond listing. Given no output schema, adding a brief note on what is returned (e.g., array of booking objects) would improve completeness.

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 100% with descriptions for both page and limit. The tool description adds no additional parameter meaning beyond what the schema provides.

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?

Description clearly states it lists the signed-in user's hotel bookings, specifying scope (user-specific) and type (hotel). This distinguishes it from sibling tools like get_my_booking (singular) and cancel_booking (mutation).

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

Usage Guidelines3/5

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

Description implies usage for listing user's bookings, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like get_my_booking for a single booking.

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

list_payment_methodsList saved cardsA
Read-only
Inspect

List the signed-in user's saved payment cards (brand, last 4, expiry, default). Use the returned publicId with create_one_click_checkout to pre-select a card.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Annotations include readOnlyHint=true, consistent with the description's 'list' behavior. The description adds details on returned fields (brand, last 4, expiry, default) and scope (signed-in user). No contradictions.

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: first states purpose concisely, second provides actionable next step. No unnecessary words. Front-loaded with the core action.

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?

Despite no output schema, the description explains return fields and links to sibling tool. For a simple list operation, this is complete. No missing context needed for correct invocation.

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?

The tool has no parameters, and schema description coverage is 100% (no properties). Baseline for 0 params is 4. The description adds no parameter info, but none is needed, and it adds value on output semantics.

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 clearly states the tool lists the signed-in user's saved payment cards, specifying returned fields (brand, last 4, expiry, default). Title 'List saved cards' aligns well. It distinguishes from sibling tool create_one_click_checkout by linking the returned publicId.

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?

The description explains the tool returns publicId for use with create_one_click_checkout, providing clear usage context. However, it does not explicitly state when not to use the tool or mention alternatives.

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

list_tripsList saved tripsA
Read-only
Inspect

List the signed-in user's saved trips (itineraries).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description adds value by specifying what is listed (saved trips) and that it is user-specific. However, it does not disclose pagination, ordering, or other behavioral traits beyond what annotations cover.

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?

One sentence, front-loaded with the key action and resource, no extraneous words. Every part earns its place.

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 a no-parameter, read-only list tool, the description is sufficient. It could mention the return format, but it is not essential given the simplicity and annotations.

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?

With zero parameters and 100% schema description coverage, the baseline is 4. The description adds no parameter info, which is appropriate since none exist.

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 clearly states 'List the signed-in user's saved trips (itineraries),' specifying the verb (list), resource (saved trips), and scope (signed-in user). It distinguishes from sibling tools like save_trip and search_hotels.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as list_my_bookings or search. The description does not mention exclusions or context for selection.

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

modify_bookingModify bookingA
Destructive
Inspect

Change one of the signed-in user's bookings. Requires the 6-digit verificationCode from request_booking_action_code. Special-request edits always apply. A DATE change is pushed to the hotel supplier as a cancel-and-rebook at current availability, so it only works for suppliers that support amendment — for others (and when no room is available for the new dates) it returns an error asking you to cancel and rebook instead. A date change can shift the price and issue a new confirmation; the result's supplierModifyStatus says whether the supplier reservation was actually changed (modified), simulated (simulated), or the edit stayed local (local_only, e.g. special requests only). Never promise a date change went through unless supplierModifyStatus is modified or simulated.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkInNoNew check-in date, ISO 8601 (optional).
checkOutNoNew check-out date, ISO 8601 (optional).
publicIdYesThe booking's public id.
specialRequestsNoNew special requests (≤2000 chars, optional).
verificationCodeYes6-digit code from `request_booking_action_code`.
Behavior5/5

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

Goes beyond annotations by detailing that date changes are cancel-and-rebook, may shift price/confirmation, and describes supplierModifyStatus field. Complements destructiveHint and readOnlyHint with concrete behaviors.

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?

Front-loaded with main action, but somewhat lengthy due to necessary detail. Every sentence earns its place, though slight trimming could be possible without losing clarity.

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?

Covers all major behaviors including date change implications, special request handling, supplierModifyStatus interpretation. No output schema, but description compensates with detailed return field explanation.

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 100%, but the description adds value by linking verificationCode to request_booking_action_code and confirming special requests ≤2000 characters. Provides connections not in schema.

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 clearly states the verb 'change' and the resource 'one of the signed-in user's bookings', distinguishing it from sibling tools like cancel_booking (different action) and get_booking (read-only).

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?

Provides explicit context: requires verificationCode from request_booking_action_code, and notes that date changes may fail for unsupported suppliers, suggesting to cancel and rebook. Lacks explicit when-not-to-use beyond the date change case but covers prerequisites well.

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

request_booking_action_codeRequest booking action codeA
Idempotent
Inspect

Email a 6-digit verification code to the booking owner, required before cancelling or modifying a booking. Step 1 of 2 — then call cancel_booking/modify_booking with the code.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhich action the code authorizes.
publicIdYesThe booking's public id.
Behavior5/5

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

The description discloses the side effect (sending an email) and the two-step workflow. It aligns with annotations (idempotentHint=true, readOnlyHint=false) and adds context about the code's purpose and lifecycle.

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, no wasted words. Information is front-loaded: purpose, requirement, and next steps.

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 a simple step-1 verification tool without output schema, the description covers all necessary context: what it does, parameters, and follow-up tools.

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 100%, so the schema already documents parameters. The description adds context that action authorizes a specific operation, but this is also clear from the schema enum. 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 clearly states it emails a verification code, required before cancellation or modification. It names the specific verb (email) and resource (booking), and distinguishes from sibling tools by explicitly mentioning the next steps.

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?

The description explicitly states when to use this tool: as a prerequisite for cancelling or modifying a booking. It also directs to use cancel_booking or modify_booking as step 2, providing clear alternatives.

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

save_tripSave a tripBInspect

Create a new saved trip (itinerary) for the signed-in user.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTrip title (1-255 chars).
budgetNoOptional total budget.
endDateYesTrip end, ISO 8601 (YYYY-MM-DD).
startDateYesTrip start, ISO 8601 (YYYY-MM-DD).
descriptionNoOptional notes (≤4000 chars).
budgetCurrencyNoISO 4217 currency for the budget (e.g. 'USD').
Behavior2/5

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

Annotations indicate a write operation (readOnlyHint=false) and non-destructive nature. Description confirms creation but adds no extra behavioral context such as duplicates handling, error conditions, or return 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?

Single sentence, no verbose content, effectively communicates core purpose.

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

Completeness2/5

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

Missing information about return value or result behavior. With no output schema, the description should hint at what is returned (e.g., trip ID or the created object).

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 100% with clear individual descriptions. The tool description adds no additional parameter guidance, maintaining baseline adequacy.

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?

Description clearly states verb 'Create' and resource 'new saved trip (itinerary)', specifying the user context. It effectively distinguishes from siblings like 'add_trip_item' and 'list_trips'.

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

Usage Guidelines3/5

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

Implies usage for signed-in users, but no explicit guidance on when to use this tool versus alternatives like 'add_trip_item' or when not to use it.

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

search_hotelsSearch hotelsA
Read-only
Inspect

Search live hotel availability for a destination and date range. Returns a price-sorted list of hotels (JSON in the text), each with a ref and its cheapest bookable room's supplierRoomId. To book: pass a room's supplierRoomId + the hotel ref to get_checkout_quote then create_checkout. For a hotel's other rooms (or a hotel not in the list), call get_rooms. Narrow with keywords (a hotel name, area, or amenities).

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsNoRooms (1-6). Default 1.
adultsNoAdults (1-10). Default 2.
checkInYesCheck-in date, ISO 8601 (YYYY-MM-DD).
checkOutYesCheck-out date, ISO 8601 (YYYY-MM-DD). Must be after check-in.
childrenNoChildren (0-6). Default 0.
keywordsNoOptional free-text preferences, e.g. 'beachfront pool spa'.
destinationYesCity, region, or place to search (e.g. 'Paris', 'Goa', 'Lower Manhattan').
childrenAgesNoAge of each child at check-in. Length should equal `children`.
guestNationalityNoISO 3166-1 alpha-2 guest nationality (e.g. 'US', 'GB'). Affects supplier pricing.
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe read operation. The description adds that the output is a JSON text with price-sorted list, and explains the return fields ('ref' and 'supplierRoomId'), which goes beyond annotations. No contradictions.

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?

Description is compact (5 sentences), front-loaded with the main purpose, followed by workflow guidance, and then parameter hints. Every sentence adds value with no redundancy or fluff.

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?

Given no output schema, the description explains the return format (JSON, price-sorted, fields) and how to proceed with booking. It mentions narrowing via keywords but lacks details on pagination or result limits. Still, it covers the essential context for a search tool.

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 100% with all 9 parameters described. The description adds value by explaining 'keywords' as 'a hotel name, area, or amenities' and notes that 'guestNationality' affects pricing, but these are minor enhancements. 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?

Description clearly states 'Search live hotel availability for a destination and date range' and specifies output as 'price-sorted list of hotels' with 'ref' and 'supplierRoomId'. This differentiates from siblings like 'get_rooms' and 'get_hotel_details'.

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?

Explicitly tells when to use this tool (to search and get cheapest room) versus alternatives: 'For a hotel's other rooms (or a hotel not in the list), call get_rooms'. It also outlines the booking workflow using sibling tools 'get_checkout_quote' and 'create_checkout'.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources