Skip to main content
Glama

Server Details

Hotels, flights, and cars: compare cash vs points, book on loyalty points, and earn Gondola Cash.

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.4/5 across 31 of 31 tools scored. Lowest: 3.8/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action; no two tools have overlapping purposes. For example, search_hotels, get_hotel_details, get_hotel_reviews, and get_hotel_stats all address different aspects of hotel research.

Naming Consistency5/5

Tool names follow consistent patterns: search_ for searches, get_ for retrievals, book_ for bookings, and a few standalone verbs like cancel_, create_, delete_. All use snake_case with no mixing of conventions.

Tool Count4/5

With 31 tools, the server is on the high side but covers a broad domain (hotels, flights, vehicles, loyalty, payments). Most tools are justified, though a few hotel analysis tools could potentially be consolidated.

Completeness3/5

Hotels and vehicles have near-complete lifecycle coverage (search, details, book, manage), but flights are missing a book_flight tool, and hotel cancellation is not present. These gaps limit completeness.

Available Tools

32 tools
book_hotelA
Destructive
Inspect

Book a hotel room using a rate from get_hotel_details.

Requires a Gondola account (API key) and a saved payment method.
Use get_payment_methods to find your payment ID.

The gondola_rate_id comes from the room rates returned by get_hotel_details —
each room option has a rate ID you can use here.

Guest details (given_name, family_name, email_address, phone_number) can either be
passed directly or prefilled from a saved travel profile: pass travel_profile_id
(from get_travel_profiles) to book "as <traveler>" without collecting each field.
Any field you also pass explicitly overrides the profile.

To earn points and elite credit, pass loyalty_account_id — use the Member Number from
get_loyalty_accounts that matches the hotel's chain (e.g. the World of Hyatt account
for a Hyatt property). When a loyalty_account_id is passed, the booking goes out under
the email registered to that membership (overriding any travel profile or email_address),
so the stay credits to the right account.

Args:
    gondola_rate_id: The rate ID from get_hotel_details room rates.
    payment_id: Payment method ID from get_payment_methods.
    given_name: Guest's first name (optional if travel_profile_id is provided).
    family_name: Guest's last name (optional if travel_profile_id is provided).
    email_address: Guest's email for confirmation (optional if travel_profile_id is provided).
    phone_number: Guest's phone number with country code (optional if travel_profile_id is provided).
    special_request: Optional special request for the hotel (e.g. "high floor", "late check-in").
    loyalty_account_id: Optional Member Number (from get_loyalty_accounts) to earn points.
    travel_profile_id: Optional travel profile ID (from get_travel_profiles) to prefill guest details.

Returns:
    Booking confirmation with ID and details, or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
given_nameNo
payment_idYes
family_nameNo
phone_numberNo
email_addressNo
gondola_rate_idYes
special_requestNo
travel_profile_idNo
loyalty_account_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=true. Description adds useful behavioral context like override rules and loyalty credit details, but doesn't explicitly mention irreversibility or cancellation policies.

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?

Well-organized into paragraphs with clear front-loading of purpose and prerequisites. Slightly verbose but every sentence 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?

Covers all necessary aspects: prerequisites, parameter derivation, interaction with multiple other tools, override logic, and output schema present. Highly complete for a complex booking tool.

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

Parameters5/5

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

Schema has 0% description coverage, but the description thoroughly explains each parameter's source, optionality, and interrelations (e.g., loyalty_account_id overrides email).

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 'Book' and resource 'hotel room', and specifies it uses a rate from get_hotel_details, distinguishing it from siblings like book_vehicle.

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?

Provides explicit prerequisites (Gondola account, API key, saved payment method), directs to get_payment_methods and get_hotel_details for inputs, and explains the travel profile and loyalty account interactions.

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

book_vehicleA
Destructive
Inspect

Book a rental vehicle from a search result.

Requires a Gondola account (API key) and a saved payment method.
Use get_payment_methods to find your payment ID.

Args:
    search_id: Search ID from search_vehicles.
    vendor_code: Vendor code from search results (e.g. "ZE" for Hertz).
    rate_code: Rate code of the selected vehicle from search results.
    acriss_code: ACRISS vehicle classification code from search results.
    given_name: Renter's first name.
    family_name: Renter's last name.
    email_address: Renter's email for confirmation.
    phone_number: Renter's phone number with country code (e.g. "+1-555-123-4567").
    payment_id: Payment method ID from get_payment_methods.
    pickup_location: Optional pickup IATA code for the selected vehicle (disambiguates metro fanouts).
    loyalty_account_id: Optional loyalty account ID to earn points on this rental.

Returns:
    Booking confirmation with ID and details, or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
rate_codeYes
search_idYes
given_nameYes
payment_idYes
acriss_codeYes
family_nameYes
vendor_codeYes
phone_numberYes
email_addressYes
pickup_locationNo
loyalty_account_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations set destructiveHint=true, confirmed by description. Adds context about required account and payment method. 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.

Conciseness4/5

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

Well-organized with prerequisites, argument list in bullet style, and return description. Could be slightly more concise but every sentence adds value.

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?

Covers all parameters, return value, and dependencies. Output schema exists, so return details are fine. Could mention error scenarios but adequate for high complexity.

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

Parameters5/5

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

All 11 parameters explained with examples and source guidance (e.g., 'from search results'). Compensates for 0% schema description coverage.

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 'Book a rental vehicle from a search result.' Differentiates from sibling tools like book_hotel and references search_vehicles. Specific verb+resource.

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 mentions prerequisites (Gondola account, payment method) and suggests using get_payment_methods. No explicit when-not-to-use or alternatives, 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.

cancel_vehicle_bookingA
Destructive
Inspect

Cancel an existing vehicle booking.

Args:
    booking_id: The Gondola booking ID (confirmation number) of the vehicle booking.

Returns:
    Cancellation result.
ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds minimal behavioral context beyond clarifying the booking ID type. Does not disclose potential side effects like fees or cancellation policies.

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?

Very concise: one sentence plus structured Args/Returns. Every word adds value, no redundancy.

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?

Adequate for a simple cancellation with one parameter and an output schema, but lacks broader context like cancellation policies, prerequisites, or next steps. Sibling tools are available but no guidance on sequencing.

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

Parameters5/5

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

Schema coverage is 0%, but the description explains the sole parameter 'booking_id' as 'The Gondola booking ID (confirmation number)', which adds significant meaning beyond the schema's generic title 'Booking Id'.

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 'Cancel an existing vehicle booking,' which is a specific verb-resource pair. It distinguishes from sibling tools like book_vehicle (create) and get_vehicle_booking (retrieve).

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 versus alternatives, such as checking the booking status with get_vehicle_booking first or conditions like cancellation deadlines. Lacks example contexts or exclusions.

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

compare_ratesA
Read-only
Inspect

Compare cash vs points rates across multiple hotels side-by-side.

Use this after search_hotels to help a user decide between their top hotel picks.
Returns a comparison table with cash rate, points rate, CPP valuation, and value signals
for each hotel, highlighting the best cash value and best points value.

Args:
    hotel_ids: List of hotel IDs to compare (max 5). Get these from search_hotels results.
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    num_adults: Number of adult guests. Defaults to 2.

Returns:
    Side-by-side comparison of cash vs points rates with recommendations.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
hotel_idsYes
num_adultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds value by detailing return format (comparison table with CPP valuation, value signals, recommendations) without contradicting 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?

The description is concise with a clear intro, usage context, parameter details, and return summary. Every sentence earns its place without redundancy.

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 tool's moderate complexity, annotations, and output schema, the description fully covers purpose, usage, parameters, and return. No gaps remain.

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?

Despite 0% schema coverage, the description explains each parameter: hotel_ids list with max 5 and source, date formats, and default for num_adults. This compensates for the missing 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?

The description clearly states the tool compares cash vs points rates across multiple hotels side-by-side, using a specific verb and resource. It distinguishes from siblings like search_hotels or diagnose_rates.

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 explicitly states to use after search_hotels to help decide between top hotel picks, providing clear context and when-not-to-use guidance.

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

create_rate_alertAInspect

Create a rate alert to monitor a hotel for price drops.

Set up an alert to be notified by email when the rate drops for a specific hotel.
Optionally specify dates, or leave them out to monitor any stay.
Requires a Gondola account with an API key.

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).
    checkin: Check-in date in YYYY-MM-DD format. Must be provided with checkout, or both omitted.
    checkout: Check-out date in YYYY-MM-DD format. Must be provided with checkin, or both omitted.

Returns:
    Confirmation that the rate alert was created, with notification details.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinNo
checkoutNo
hotel_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds that the tool sends email notifications and requires an API key, which is valuable behavioral context beyond the annotations. It does not contradict 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?

The description is concise at approximately 70 words, front-loaded with the main purpose, and includes an Args section that efficiently adds parameter details without verbosity. Every sentence 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?

Given the moderate complexity (3 parameters, 1 required, output schema exists), the description covers prerequisites, parameter constraints, and return value (confirmation with notification details). It is complete enough for an agent to use correctly.

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

Parameters5/5

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

Schema description coverage is 0%, but the description provides detailed parameter semantics: hotel_id is a Vervotech property ID, checkin and checkout must be in YYYY-MM-DD and must be provided together or both omitted. This adds significant meaning beyond the schema's type and title.

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 creates a rate alert to monitor a specific hotel for price drops. It specifies the verb 'create' and the resource 'rate alert', and distinguishes from siblings like delete_rate_alert and get_rate_alerts.

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 clear usage context: set up an alert for price drops, optionally with dates, and requires a Gondola account. It does not explicitly exclude when not to use it, but the guidance is sufficient for typical use cases.

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

credit_card_coverageA
Read-only
Inspect

Look up rental car CDW/LDW coverage provided by a credit card.

Provide EITHER credit_card_product_name OR card_number_bin + card_provider.

Args:
    credit_card_product_name: Exact card product name (preferred when known).
    card_number_bin: First 6-8 digits of the card number (BIN).
    card_provider: Card network ("visa", "mastercard", "amex", or "discover"). Required with card_number_bin.

Returns:
    Coverage type, max days, and a human-readable summary.
ParametersJSON Schema
NameRequiredDescriptionDefault
card_providerNo
card_number_binNo
credit_card_product_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns coverage type, max days, and a summary. No contradictions. Lacks mention of potential delays or data limitations, but sufficient.

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?

Extremely concise with clear structure. Purpose stated first, then usage instructions in bullet-like format, then return info. Every sentence is necessary and 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?

Given the tool's complexity (3 optional params with dependencies) and the presence of an output schema (not shown), the description is complete. It explains parameter dependencies, return values, and stops short of duplicating schema details.

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

Parameters5/5

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

Schema has 0% description coverage, so the description carries full burden. It fully explains each parameter: credit_card_product_name is exact and preferred; card_number_bin is first 6-8 digits; card_provider is required with bin and lists accepted values. Provides complete semantic 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 verb 'Look up' and the resource 'rental car CDW/LDW coverage provided by a credit card'. It distinguishes from sibling tools like get_vehicle_booking_coverage by focusing on credit card details.

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 tells the agent to provide either credit_card_product_name or card_number_bin+card_provider, with a preferred method. Lacks explicit exclusions or alternatives, but the guidance is clear for parameter selection.

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

delete_rate_alertA
Destructive
Inspect

Delete a rate alert so you stop monitoring a hotel for price drops.

Requires a Gondola account with an API key.

Args:
    alert_id: The rate alert ID to delete (from get_rate_alerts).

Returns:
    Confirmation that the rate alert was deleted.
ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already indicate destructiveHint=true, so the description's 'Delete' is consistent. It adds that the function returns a confirmation, but does not disclose any other behavioral traits beyond what annotations provide.

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?

The description is concise with clear sections (purpose, requirements, args, returns). Every sentence adds value. Could be slightly more streamlined but overall efficient.

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?

For a simple delete action with destructiveHint and an output schema (presumably confirmation), the description provides the necessary information. However, it lacks details on error handling or idempotency.

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 0% schema description coverage, the description compensates by explaining the alert_id parameter: 'The rate alert ID to delete (from get_rate_alerts).' This adds value by indicating the source of the ID.

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 explicitly states 'Delete a rate alert so you stop monitoring a hotel for price drops.' Verb and resource are clear, and the purpose differentiates it from siblings like create_rate_alert or get_rate_alerts.

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?

Specifies prerequisite ('Requires a Gondola account with an API key') but does not provide explicit guidance on when to use or alternatives. Usage is implied by the name and purpose but lacks comparison to other tools.

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

diagnose_ratesA
Read-only
Inspect

Diagnose rate availability and source statuses for a specific hotel.

Use this to investigate why certain rates (e.g. AAA, member, points)
are or aren't showing for a property. Shows per-supplier status and
a full breakdown of every rate by type.

Args:
    hotel_id: The hotel's Vervotech property ID.
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    num_adults: Number of adult guests. Defaults to 2.
    rate_sources: Optional comma-separated rate sources to check
        (e.g. "travelport", "direct,travelport"). If omitted, all sources are checked.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
hotel_idYes
num_adultsNo
rate_sourcesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds behavioral context by stating it shows per-supplier status and a full breakdown by rate type, which goes beyond the annotations without contradicting them.

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 succinct—two sentences in the first paragraph and a clear bullet-style Args list. Every sentence adds value and avoids repetition or fluff.

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 5 parameters (3 required), an output schema, and clear purpose, the description covers all necessary information. It explains the tool's use case and all parameters adequately, leaving no gaps.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates thoroughly by explaining each parameter: hotel_id as Vervotech property ID, checkin/checkout date format, num_adults default of 2, and rate_sources as optional comma-separated sources. This adds significant 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 tool's purpose: diagnosing rate availability and source statuses for a hotel. It explains it is used to investigate why rates are or aren't showing, which distinguishes it from sibling tools like compare_rates and get_multi_night_rates.

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 says 'Use this to investigate why certain rates... are or aren't showing,' providing clear context for when to use the tool. It does not list exclusions or alternatives, but the purpose is sufficiently distinct from sibling tools.

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

get_bookingA
Read-only
Inspect

Get details for a specific hotel booking.

Args:
    booking_id: The booking ID or confirmation number.

Returns:
    Booking details including hotel, dates, room, rate, and status.
ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Get details' aligns. It adds that the response includes hotel, dates, room, rate, and status, but lacks deeper behavioral context like required permissions or error handling.

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 concise with two sentences plus structured Args/Returns sections. Every element is purposeful and efficiently conveys the tool's use.

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?

The description covers purpose, parameter, and output. It does not mention error cases or differentiate from get_booking_link, but for a simple read tool with annotations and output schema, it is mostly 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?

With 0% schema description coverage, the description adds meaning by specifying 'booking_id' as 'The booking ID or confirmation number.' This clarifies what the parameter accepts, though format details are missing.

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 retrieves details for a specific hotel booking, distinguishing it from sibling tools like get_vehicle_booking. The Returns section further clarifies the scope.

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?

No explicit guidance on when to use this tool vs alternatives like get_hotel_details or get_booking_link. Usage is implied by the name, but with many siblings, explicit context would help.

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

get_hotel_detailsA
Read-only
Inspect

Get detailed information, room types, and rates for a specific hotel.

Use this after search_hotels to get full details for a hotel the user is interested in.
Returns room options with pricing, cancellation policies, and amenities.

Args:
    hotel_id: The hotel's Vervotech property ID (returned by search_hotels).
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    num_adults: Number of adult guests. Defaults to 2.

Returns:
    Detailed hotel information including rooms, rates, policies, and amenities.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
hotel_idYes
num_adultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it 'Returns room options with pricing, cancellation policies, and amenities,' which provides useful behavioral detail beyond the annotations. No contradictions observed.

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?

The description is concise with a clear structure: purpose sentence, usage guide, parameter list, and return summary. The Returns section is slightly redundant with the first sentence, but overall it's efficient and well-organized.

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 that the tool has an output schema, the description appropriately outlines return content. All parameters are documented, and the relationship to search_hotels is clarified. The description is complete for the tool's complexity.

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

Parameters5/5

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

The description includes a full Args section that explains each parameter: hotel_id is 'the hotel's Vervotech property ID (returned by search_hotels),' checkin/checkout format, and num_adults default. Since schema coverage is 0%, this completely compensates and adds significant semantic 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?

The description clearly states 'Get detailed information, room types, and rates for a specific hotel.' It uses a specific verb (Get) and resource (hotel details). It also distinguishes from siblings like search_hotels by saying 'Use this after search_hotels,' making the purpose unambiguous.

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 advises 'Use this after search_hotels to get full details for a hotel the user is interested in,' which provides a clear usage context. While it doesn't explicitly exclude other scenarios, the context is strong and implies alternatives like book_hotel for booking. Lacks explicit when-not-to-use but still informative.

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

get_hotel_reviewsA
Read-only
Inspect

Get guest reviews for a specific hotel.

Use this to help users understand what other guests thought about a hotel.
Returns up to 10 recent reviews with ratings and comments.

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).

Returns:
    Formatted list of guest reviews with author names, ratings, and review text.
ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds that it returns up to 10 recent reviews with ratings and comments, and that the result is a formatted list, which goes 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?

Five sentences, no wasted words. Purpose first, then use case, then return details, then parameter. Well-structured and concise.

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 one parameter, annotations, and output schema (not visible but referenced), the description sufficiently explains the tool's behavior and inputs. No gaps identified.

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

Parameters5/5

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

Schema only shows hotel_id as integer. Description adds meaning: 'The hotel's Vervotech property ID (from search results).' This tells the agent where to get the ID, which is crucial for use.

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+resource: 'Get guest reviews for a specific hotel.' It distinguishes from sibling tools like get_hotel_details or get_hotel_stats by specifying the resource is reviews.

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?

States a clear use case: 'help users understand what other guests thought about a hotel.' Specifies returns up to 10 recent reviews, providing context. No explicit when-not or alternatives, but the purpose is narrow enough.

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

get_hotel_statsA
Read-only
Inspect

Get pricing analytics and percentile data for a hotel rate.

Use this to help users understand if a rate is a good deal. Shows how the cash rate
and points redemption value compare historically across the chain.

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).
    nightly_cash_cost: The current nightly cash rate.
    nightly_cash_cost_currency: Currency of the cash rate (e.g. "USD", "EUR").
    nightly_points_cost: Optional current nightly points cost.

Returns:
    Pricing stats with percentile rankings and value assessment.
ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_idYes
nightly_cash_costYes
nightly_points_costNo
nightly_cash_cost_currencyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds value by specifying that it shows historical comparison across the chain and yields percentile rankings, which is context beyond the annotations.

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?

The description is relatively concise with a clear front-loaded purpose sentence. The 'Args:' and 'Returns:' sections are structured but could be slightly more streamlined. Every sentence contributes, with minimal redundancy.

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 the presence of an output schema, the description adequately explains return values as pricing stats with percentile rankings. The annotations cover safety, making the description sufficient for an agent to understand the tool's behavior and outputs.

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 0%, so the description must compensate. It explains the meaning of hotel_id (Vervotech property ID) and indicates that nightly_points_cost is optional. For 4 parameters, this adds some but not extensive meaning; more detail on currency format would improve.

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 'Get' and clearly identifies the resource as 'pricing analytics and percentile data for a hotel rate'. It distinguishes from sibling tools like 'compare_rates' and 'diagnose_rates' by focusing on historical comparison for a single rate.

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 states 'Use this to help users understand if a rate is a good deal,' providing clear context for when to invoke it. However, it does not explicitly state when not to use it or name alternative tools, though the sibling list suggests differentiation.

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

get_loyalty_accountsA
Read-only
Inspect

Get the user's hotel and airline loyalty accounts with points balances and values.

Returns all linked loyalty accounts including current points balance, tier status,
estimated cash value, recent points changes, and expiration dates.

Requires a Gondola account (API key).

Returns:
    Formatted list of loyalty accounts with balances and values, or instructions to connect.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already mark the tool as read-only, but the description adds value by disclosing the return structure (points balance, tier status, estimated cash value, recent changes, expiration dates) and the requirement for an API key. It also hints at the return format (formatted list vs instructions to connect), which goes 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?

The description is brief (three sentences) and front-loaded with the primary purpose. Every sentence provides relevant information without redundancy or unnecessary detail, making it easy to parse.

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 no parameters and an output schema present, the description covers purpose, prerequisites, return contents, and return format. It is complete enough for an agent to use correctly.

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 trivially 100% schema coverage, the description does not need to add parameter details. According to guidelines, baseline for 0 parameters is 4, and the description adequately covers the lack of arguments.

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 specifies 'Get the user's hotel and airline loyalty accounts with points balances and values,' which is a specific verb and resource. It distinguishes itself from sibling tools like 'optimize_loyalty_portfolio' (which modifies) and 'get_payment_methods' (which gets payment info) by focusing on loyalty accounts.

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 states a prerequisite ('Requires a Gondola account (API key)') but does not provide explicit guidance on when to use this tool versus alternatives like search or booking tools. No exclusions or when-not scenarios are mentioned, leaving the agent to infer usage context.

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

get_multi_night_ratesA
Read-only
Inspect

Get a rate calendar showing prices across a date range for a hotel.

Use this when a user has flexible dates and wants to find the cheapest time to stay.
Shows cash rates, points rates, and value percentiles for each available check-in date.

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).
    start_date: Start of date range in YYYY-MM-DD format.
    end_date: End of date range in YYYY-MM-DD format.
    nights: Number of nights per stay (default: 1).

Returns:
    Rate calendar with pricing for each available date.
ParametersJSON Schema
NameRequiredDescriptionDefault
nightsNo
end_dateYes
hotel_idYes
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. The description adds that it shows cash rates, points rates, and value percentiles, which provides additional behavioral context beyond the 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?

The description is concise, with about six sentences covering purpose, usage, arguments, and returns. Every sentence adds value, and the structure is logical and front-loaded.

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 presence of annotations (readOnlyHint, openWorldHint) and an output schema, the description adequately covers what the tool does, when to use it, parameters, and return value. It is complete for the tool's complexity.

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

Parameters5/5

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

The input schema has no descriptions in its properties (0% coverage). However, the description's Args section explains each parameter ('hotel_id: The hotel's Vervotech property ID', 'start_date: ... YYYY-MM-DD format', etc.), adding significant meaning beyond the schema's titles and types.

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 a rate calendar showing prices across a date range for a hotel.' It identifies the specific verb and resource, and distinguishes itself from sibling tools like compare_rates by focusing on multi-night rates with flexible dates.

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 says 'Use this when a user has flexible dates and wants to find the cheapest time to stay.' This provides clear context for when to use the tool, though it does not explicitly mention when not to use it or list alternatives.

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

get_past_tripsA
Read-only
Inspect

Get the user's past trips including hotel stays and flights.

Returns a summary of past travel reservations with dates, confirmation numbers,
costs, and loyalty earnings.

Requires a Gondola account (API key).

Args:
    limit: Max number of past trips to return, most recent first (default 20). The response
        notes how many more exist; raise this only when the user wants their full history.

Returns:
    Formatted list of past trips, or instructions to connect an account.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Beyond annotations (readOnlyHint=true), the description discloses that it returns dates, confirmation numbers, costs, loyalty earnings, and notes the response indicates remaining items. It also states the requirement for a Gondola account. This adds useful context without contradicting annotations.

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?

The description is well-structured with a clear purpose statement, return summary, requirement note, and parameter documentation. It is front-loaded and concise, though the Args section slightly duplicates schema information.

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 simple tool (one optional parameter, output schema exists), the description covers all essential aspects: purpose, return content, parameter usage, and prerequisites. It is complete for an agent to invoke correctly.

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

Parameters5/5

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

The description provides extensive meaning for the limit parameter: ordering (most recent first), default value, and guidance on usage ('raise this only when the user wants their full history'). This fully compensates for the 0% schema description coverage.

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 explicitly states 'Get the user's past trips including hotel stays and flights,' providing a specific verb and resource. It clearly distinguishes from sibling tools like 'get_upcoming_trips' by focusing on past travel.

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 mentions when to adjust the limit ('raise this only when the user wants their full history') but does not explicitly compare with alternatives or state when not to use this tool. No exclusions or sibling comparisons are provided.

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

get_payment_methodsA
Read-only
Inspect

List the user's saved payment methods for booking.

Requires a Gondola account (API key). Returns saved credit/debit cards with their brand, last 4
digits, expiration, payment ID (needed for the book_hotel tool), and whether each card can be
booked in chat.

Returns:
    List of saved payment methods with IDs, or instructions to add one.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, and description adds details about returned fields (brand, last 4 digits, expiration, payment ID, bookable status) and the fallback instruction to add a payment method.

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 that are each valuable: purpose, prerequisite, return details, and summary. 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 zero parameters and existence of an output schema, the description fully covers what the tool returns and its purpose.

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?

No parameters, so baseline is 4. Description adds no param info, but none is needed.

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?

Clear verb 'List' and resource 'saved payment methods'. Distinguishes itself from sibling tools like book_hotel and get_booking by focusing on payment methods.

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?

Mentions prerequisite (Gondola account) and links to book_hotel via payment ID, but does not explicitly state when to use this tool vs alternatives like get_loyalty_accounts.

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

get_rate_alertsA
Read-only
Inspect

Get all active rate alerts for the current user.

Returns the user's rate alerts showing which hotels they're monitoring for price drops.
Requires a Gondola account with an API key.

Returns:
    List of active rate alerts with hotel names, dates, and current rates.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds context about returning a list of active rate alerts with hotel names, dates, and current rates, which is useful 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?

The description is brief and front-loaded, with three concise sentences and a clear 'Returns:' line. No extraneous 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?

The description covers purpose, return format, and authentication requirement. For a zero-parameter read-only tool with an output schema, it is largely complete, though it could mention pagination or sorting.

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?

There are zero parameters, so the description does not need to explain them. With 100% schema coverage, baseline is 4.

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 all active rate alerts for the current user', which is a specific verb and resource. It distinguishes from sibling tools like create_rate_alert and delete_rate_alert by focusing on retrieval.

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 mentions the prerequisite of a Gondola account with an API key, but does not provide guidance on when to use this tool versus alternatives 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.

get_similar_hotelsA
Read-only
Inspect

Find hotels similar to one the user is looking at.

Use this when a user wants alternatives, comparisons, or asks "show me hotels like this one."

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    num_adults: Number of adult guests (default: 2).

Returns:
    List of similar hotels with rates and ratings.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
hotel_idYes
num_adultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns 'List of similar hotels with rates and ratings,' which is useful but does not disclose other behavioral traits like pagination, rate limits, or authentication needs. With annotations carrying the primary burden, this is adequate but not exceptional.

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?

The description is concise with a clear structure: one-line purpose, usage guideline, bulleted argument list, and return value statement. Every sentence adds value. It could be slightly more compact by merging the purpose and usage, but it is already efficient.

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 4 parameters and an output schema present, the description covers all parameter details and explains the return type. It also provides essential context like the source of hotel_id ('from search results'). The only minor gap is a lack of mention of edge cases or error conditions, but overall it is sufficiently complete for an agent to use correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for the missing parameter descriptions. It fully documents each parameter: hotel_id is described as 'Vervotech property ID (from search results),' checkin/checkout as 'YYYY-MM-DD format,' and num_adults as 'number of adult guests (default: 2).' This adds significant meaning beyond the raw schema property names.

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: 'Find hotels similar to one the user is looking at.' This specifies the verb ('find'), resource ('hotels similar'), and distinguishes it from sibling tools like search_hotels (which performs a search) and compare_rates (which compares rates). The usage hint 'Use this when a user wants alternatives, comparisons...' further clarifies its role.

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 says 'Use this when a user wants alternatives, comparisons, or asks "show me hotels like this one."' This provides clear guidance on when to invoke the tool. However, it does not explicitly state when not to use it or list alternative tools for exclusion, which would earn a 5.

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

get_suggested_searchesA
Read-only
Inspect

Get personalized travel suggestions and trip inspiration.

Returns curated hotel recommendations based on the user's preferences, recent searches,
popular destinations, and upcoming holidays. Great for when the user doesn't know where to go.

Returns:
    Travel suggestions with preview hotel results.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing the tool uses user preferences, recent searches, popular destinations, and upcoming holidays. No contradictions 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.

Conciseness4/5

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

Concise at 3 sentences plus a returns line. Could be slightly more structured, but every sentence adds value. The 'Returns:' line is somewhat redundant given the output schema.

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 no parameters, existing annotations, and an output schema, the description is complete. It covers what the tool does, when to use it, and the type of results, without needing additional 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?

No parameters exist, so schema coverage is 100%. The description adds no parameter-level details, but that's acceptable since there are no parameters to explain. The tool's invocation requires no user input beyond 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?

Clearly states the tool provides personalized travel suggestions and trip inspiration, specifically curated hotel recommendations. Distinguishes from sibling search tools by emphasizing it's for when the user doesn't know where to go.

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 says 'Great for when the user doesn't know where to go,' providing clear usage context. Implies that when the user has a specific destination, other tools like search_hotels should be used, but does not name alternatives explicitly.

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

get_traveler_contextA
Read-only
Inspect

Get the user's saved travel context to personalize recommendations.

Returns the user's loyalty programs and elite tiers, home airport, preferred airlines and
cabin, preferred hotel chains, typical trip patterns (business vs leisure, budgets, frequent
destinations), and any preferences they've stated or that have been learned from past
conversations. Call this once at the start of a travel or planning session and weigh it across
hotel, flight, and car recommendations — it is the single best source of who this traveler is.

Requires a Gondola account (API key).

Returns:
    Formatted travel context, or instructions to build one.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that it returns formatted context or instructions to build one, and requires an API key. No contradictions; description enhances 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?

Description is succinct: purpose in first sentence, then return content, usage guidance, and requirement. Every sentence adds value, no redundancy.

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 no parameters and existence of an output schema, the description fully covers what an agent needs: what the tool returns, when to call it, and prerequisites. It is sufficiently complete 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 input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter details. Baseline for 0 params is 4, and description is adequate.

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 gets the user's saved travel context to personalize recommendations. It lists specific data returned (loyalty programs, home airport, preferences, etc.), distinguishing it from sibling tools that deal with specific bookings or searches.

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 instructs to call once at the start of a travel session and weigh across hotel/flight/car recommendations. Also notes requirement of a Gondola account (API key), providing precise when-to-use guidance.

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

get_travel_profilesA
Read-only
Inspect

Get the user's saved travel profiles (guest name, email, and phone presets).

Each profile has a selectable Profile ID. Pass it to book_hotel as `travel_profile_id`
to prefill the guest details — the same "book as <traveler>" selection the website
checkout offers — instead of collecting name, email, and phone field by field.

Requires a Gondola account (API key).

Returns:
    Formatted list of travel profiles with IDs, or instructions to add one.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare read only and non-destructive. Description adds that it requires a Gondola account (API key) and describes return format. 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?

Efficient two-paragraph format: purpose, usage with example, auth requirement, return info. 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 zero parameters and an output schema, the description fully explains the tool's purpose, how to use result, and auth requirement. Sufficient for an agent to invoke correctly.

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?

No parameters exist, so schema coverage is 100%. Baseline 4; description does not need to add parameter info.

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 retrieves saved travel profiles (guest name, email, phone presets). It distinguishes from siblings like booking tools by focusing on profile retrieval.

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 explains when to use: pass Profile ID to book_hotel to prefill guest details. Also implies alternative of manual entry. Lacks explicit 'when not to use' but provides strong context.

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

get_upcoming_tripsA
Read-only
Inspect

Get the user's upcoming trips including hotel stays, flights, and car rentals.

Returns a summary of all upcoming travel reservations with dates, confirmation numbers,
costs, loyalty earnings, and savings opportunities.

Requires a Gondola account (API key).

Returns:
    Formatted list of upcoming trips, or instructions to connect an account.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds detail on what the tool returns (dates, confirmation numbers, costs, loyalty earnings, savings opportunities) and that it may return instructions to connect an account. This provides useful behavioral context 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?

Three sentences, each serving a purpose: first states the primary function, second details the output, third states a requirement. Front-loaded and efficient 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?

With 0 parameters, annotations covering safety, and an output schema present, the description is complete. It explains the return value and prerequisite, leaving no ambiguity for a tool with this complexity.

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?

There are 0 parameters, so the schema is fully covered (100%). The description explains the output meaningfully, compensating for the lack of parameters. Baseline for 0 params is 4.

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 starts with 'Get the user's upcoming trips including hotel stays, flights, and car rentals.' It clearly states the verb and resource, and distinguishes from siblings like get_past_trips and get_booking by focusing on upcoming reservations across multiple categories.

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 mentions 'Requires a Gondola account (API key),' but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state when not to use it. Usage is implied but lacks exclusions or comparisons.

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

get_vehicle_bookingA
Read-only
Inspect

Get details for a specific vehicle booking.

Args:
    booking_id: The Gondola booking ID (confirmation number).

Returns:
    Vehicle booking details including vendor, pickup/dropoff, vehicle, rate, and status.
ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns booking details including vendor, pickup/dropoff, vehicle, rate, and status, which provides useful context beyond the 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?

Five lines with a front-loaded sentence stating the purpose, followed by concise parameter and return descriptions. No superfluous 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 presence of an output schema (as per context signals), the description's mention of return fields is sufficient. The tool has low complexity (one required parameter), and the description covers the essential information for an agent to invoke it correctly.

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 schema has 0% description coverage, but the description adds a clear explanation for the 'booking_id' parameter: 'The Gondola booking ID (confirmation number)'. This compensates for the missing schema descriptions and adds 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 'Get details for a specific vehicle booking', specifying the action (get details) and resource (vehicle booking). It effectively distinguishes from sibling tools like 'get_booking' (generic) and 'get_vehicle_booking_link' (retrieves a link).

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 provides clear context for when to use the tool: retrieving details of a specific vehicle booking. However, it lacks explicit when-not or alternative tool guidance, such as noting that 'get_booking' might be used for non-vehicle bookings.

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

get_vehicle_booking_coverageA
Read-only
Inspect

Get the rental car CDW/LDW coverage stored at booking time for a vehicle booking.

Args:
    booking_id: The Gondola booking ID of the vehicle booking.

Returns:
    Coverage details stored on the booking, or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds only that it returns coverage details or an error message, which is minimal extra 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?

The description is concise with two well-structured sentences and a parameter description, no wasted words.

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 simple read tool with one parameter and an output schema, the description provides enough context about what it does and returns, though it could mention edge cases or error behavior.

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 0% schema description coverage, the description adds valuable context by specifying that booking_id is a 'Gondola booking ID' and relates to the vehicle booking, compensating for the schema's lack of detail.

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 gets rental car CDW/LDW coverage for a specific vehicle booking, using a specific verb and resource that distinguishes it from sibling tools like get_vehicle_booking.

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 (to retrieve coverage for a vehicle booking) but does not provide explicit when-not-to-use scenarios or alternatives like credit_card_coverage.

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

get_vehicle_detailsA
Read-only
Inspect

Get detailed information about a specific rental vehicle option.

Use this after search_vehicles to get extras, insurance options, charges, and cancellation policy.

Args:
    vendor_code: Vendor code from search results (e.g. "ZE" for Hertz, "AL" for Alamo).
    rate_code: Rate code from search results.
    search_id: Search ID from the vehicle search results.

Returns:
    Vehicle details including extras, charges, and policies.
ParametersJSON Schema
NameRequiredDescriptionDefault
rate_codeYes
search_idYes
vendor_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds behavioral context by listing the types of details returned (extras, charges, policies), which aligns with the read-only nature. It does not contradict annotations.

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?

The description is concise with a clear structure: purpose statement, usage recommendation, argument list with examples, return summary. Every sentence adds value. It could be slightly more structured by using bullet points for arguments, but it's efficient.

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 the tool has an output schema (not shown), the description appropriately omits detailed return structure. It mentions key return categories (extras, charges, policies). For a simple lookup with three required parameters from search results, the description provides sufficient context for an AI agent to use it correctly.

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

Parameters2/5

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

The schema has 0% parameter description coverage (no descriptions in JSON schema). The description only says each parameter comes from search results, giving one example for vendor_code. It lacks detailed semantics such as format, length, or allowed values, which is insufficient to compensate for the missing 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?

The description clearly states the tool retrieves detailed information about a specific rental vehicle option, including extras, insurance, charges, and cancellation policy. It uses a specific verb ('Get') and resource ('rental vehicle option'), distinguishing it from siblings like search_vehicles (which lists options) and get_vehicle_booking (which handles bookings).

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 recommends using this tool after search_vehicles and explains that the parameters come from search results. It provides an example for vendor_code. While it doesn't explicitly state when not to use this tool, the purpose is clear and no sibling tool directly competes for this specific task.

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

optimize_loyalty_portfolioA
Read-only
Inspect

Optimize the user's loyalty portfolio for a specific trip.

Analyzes all the user's hotel loyalty programs and recommends which chain gives the best
value for a trip. Considers points balances, redemption rates, transfer partners, and earnings.

Use this when a user asks "Which loyalty program should I use?" or "Where should I book
to get the best value from my points?"

Args:
    location: Destination (e.g. "Paris", "Tokyo", "New York").
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    num_adults: Number of adult guests (default: 2).

Returns:
    Ranked chain options with points costs, values, and transfer recommendations.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
locationYes
num_adultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=true, and description reinforces non-destructive analysis. Adds behavioral context about factors considered (points, redemption rates) without contradicting annotations.

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?

Well-structured with purpose, usage guidance, and Args/Returns. Efficient but could be slightly more concise 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?

Given the tool's complexity and presence of an output schema, the description covers return values and behavioral context adequately.

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

Parameters5/5

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

Schema has no parameter descriptions (0% coverage), but the description compensates fully with clear explanations, examples, and default values for all 4 parameters.

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 optimizes loyalty portfolios for trips and analyzes hotel loyalty programs to recommend best value, distinguishing it from sibling tools which focus on booking or searching.

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 mentions when to use with example user queries ('Which loyalty program should I use?'), but does not specify when not to use, though alternatives are implied by sibling tools.

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

predict_priceA
Read-only
Inspect

Predict whether now is a good time to book a hotel, or if the user should wait for a better price.

Uses historical price data and trends to assess whether the current price is a good deal.
Call this when a user asks "Should I book now or wait?" or wants to know if a price is good.

Args:
    hotel_id: The hotel's Vervotech property ID (from search results).
    checkin: Check-in date in YYYY-MM-DD format.
    checkout: Check-out date in YYYY-MM-DD format.
    nightly_cash_cost: The current nightly cash rate for the hotel.
    nightly_cash_cost_currency: Currency of the cash rate (e.g. "USD", "EUR").
    nightly_points_cost: Optional current nightly points cost for the hotel.

Returns:
    Price prediction with recommendation (book now vs wait), confidence level, and key signals.
ParametersJSON Schema
NameRequiredDescriptionDefault
checkinYes
checkoutYes
hotel_idYes
nightly_cash_costYes
nightly_points_costNo
nightly_cash_cost_currencyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false. Description adds that it uses historical price data and trends, and returns a recommendation with confidence. This provides useful behavioral context beyond the annotations.

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?

Well-structured: purpose, method, usage trigger, then parameter list. No unnecessary details, though could be slightly more concise.

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?

Covers all 6 parameters (5 required) and mentions return values (recommendation, confidence, signals). Output schema exists to detail returns, so description is complete enough.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully documents all parameters with meanings (e.g., hotel_id as Vervotech property ID, date formats, currency). This compensates entirely for missing 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?

Description clearly states it predicts whether to book now or wait, using historical price data. The verb 'predict' and resource 'booking timing' are specific. It distinguishes from siblings like compare_rates and book_hotel.

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 states when to call: when user asks 'Should I book now or wait?' or wants to know if a price is good. Does not mention exclusions, 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.

search_flightsA
Read-only
Inspect

Search for flights by route and date and return cash-priced options.

Results are ranked for the traveler by the search backend — weighing their airline
loyalty/status and travel history alongside flight quality — and returned 10 per page.
To see more options, call again with ``page=2``, ``page=3``, and so on.

Args:
    origin: Origin airport code or city (e.g. "LAX", "SFO", "New York").
    destination: Destination airport code or city (e.g. "NRT", "LHR", "Paris").
    departure_date: Departure date in YYYY-MM-DD format (e.g. "2025-03-15").
    return_date: Optional return date in YYYY-MM-DD format for a round trip. One-way
        search returns guidance to search each leg separately.
    num_passengers: Number of passengers. Defaults to 1.
    cabin_class: Optional cabin class preference. One of:
        "economy", "premium economy", "business", "first".
    mode: Leave as "browse" (default). "book" is a restricted alpha — only use it if
        the user explicitly asks to book a flight.
    page: 1-based results page, 10 options per page. Increment to see more options.

Returns:
    A ranked, paged list of flight options — airlines, routes, prices, and a link.
ParametersJSON Schema
NameRequiredDescriptionDefault
modeNobrowse
pageNo
originYes
cabin_classNo
destinationYes
return_dateNo
departure_dateYes
num_passengersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate read-only and nondestructive behavior. The description adds valuable context: results are ranked by traveler loyalty and history, paginated at 10 per page, and 'book' mode is restricted. It does not contradict 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?

The description is well-structured: a summary sentence, followed by a behavioral note, then a clear parameter list, and a returns section. Every sentence is informative and concise without redundancy.

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 tool's complexity (8 parameters, output schema exists), the description covers all essential aspects: parameters, ranking, pagination, cash pricing, and mode restrictions. It is sufficiently complete for correct invocation.

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

Parameters5/5

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

With 0% schema description coverage, the description fully explains all 8 parameters, including examples, defaults, enum options, and usage notes. This adds comprehensive meaning beyond the raw 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 tool searches for flights by route and date, returning cash-priced options. It uses specific verbs and resources, distinguishing it from sibling tools like search_hotels or search_vehicles.

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 usage for browsing flights and cautions against using 'book' mode unless explicitly requested. However, it does not explicitly compare to alternative tools or provide when-not-to-use guidance, missing clear differentiation from sibling search tools.

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

search_hotelsA
Read-only
Inspect

Search for hotels by location and dates with cash AND points pricing.

Returns hotels with side-by-side cash vs points rates, cents-per-point (CPP) valuation,
and deal scores so you can recommend the best value. This is Gondola's unique advantage —
no other travel search shows both cash and points rates together.

Args:
    location: City name, address, or area to search (e.g. "Tokyo", "Manhattan, New York", "near LAX airport").
    checkin: Check-in date in YYYY-MM-DD format (e.g. "2026-04-15").
    checkout: Check-out date in YYYY-MM-DD format (e.g. "2026-04-20").
    num_adults: Number of adult guests. Defaults to 2.
    chain_name: Optional hotel chain to filter by (e.g. "marriott", "hilton", "hyatt", "ihg").
        Case-insensitive substring match against each result's chain. If nothing matches, the
        unfiltered results are returned with an explicit note so you don't keep retrying.
    loyalty_programs: Optional list of the user's loyalty programs (e.g. ["hilton_honors", "marriott_bonvoy"]).
        When provided, results include personalized earnings and tier benefits like 5th night free.
    loyalty_points: Optional dict of program name to points balance (e.g. {"hilton_honors": 250000}).
        When provided, results indicate whether the user can afford each hotel with points.
    limit: Max number of hotels to return (default 20). The response notes how many more exist
        and how to narrow; raise this only when the user explicitly wants a longer list.

Returns:
    Formatted list of hotels with cash rates, points rates, CPP valuation, and deal recommendations.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
checkinYes
checkoutYes
locationYes
chain_nameNo
num_adultsNo
loyalty_pointsNo
loyalty_programsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description adds substantial behavioral details beyond annotations, including how chain_name returns unfiltered results on no match, how loyalty_programs personalize earnings, and how limit notes remaining results. No contradictions with readOnlyHint/openWorldHint.

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 well-structured with clear sections (Args, Returns), uses bullet points effectively, and every sentence adds value without redundancy. It is informative yet not overly verbose.

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 complexity (8 parameters, 3 required) and the existence of an output schema, the description covers all necessary aspects: input semantics, edge cases, and return value summary. It is fully complete for an AI agent to use correctly.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates fully by explaining all 8 parameters: location with examples, date formats, default for num_adults, chain_name behavior, loyalty parameters, and limit guidance. Each parameter gets meaningful 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 clearly states it searches for hotels by location and dates, specifically comparing cash and points pricing. It explicitly distinguishes itself from alternatives by claiming 'no other travel search shows both cash and points rates together.'

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 good context for when to use the tool (hotel search with cash/points valuation) and offers parameter guidance (e.g., raising limit only when explicitly requested). However, it does not explicitly contrast with sibling tools like compare_rates or get_hotel_details.

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

search_vehiclesA
Read-only
Inspect

Search for rental vehicles at an airport or city.

Args:
    pickup_location: Airport IATA code (e.g. "LAX", "JFK", "SFO").
    pickup_datetime: Pickup date and time in ISO format (e.g. "2025-03-15T10:00:00").
    dropoff_datetime: Drop-off date and time in ISO format (e.g. "2025-03-20T10:00:00").
    vehicle_class: Optional preference: Economy, Compact, Standard, FullSize, Premium, Luxury, SUV, Van.

Returns:
    List of available rental vehicles with rates and details.
ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_classNo
pickup_datetimeYes
pickup_locationYes
dropoff_datetimeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, which cover safety. The description adds minimal behavioral context—just that it returns a list. It does not mention rate limits, pagination, or dynamic result behavior.

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?

The description is organized with Args and Returns sections, making it easy to parse. It includes examples but could be slightly more concise (e.g., removing 'e.g.' redundancy).

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 (indicated true), the description appropriately summarizes return value as a list with rates and details. It covers all required parameters with examples, but lacks explanation for non-airport city searches.

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 0%, so the description provides essential meaning: pickup_location examples (IATA codes), date format examples, and vehicle_class options. This compensates well, though date format could be stricter.

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 'Search for rental vehicles at an airport or city.' It specifies the action (search), resource (rental vehicles), and context (airport/city). This distinguishes it from sibling tools like book_vehicle or get_vehicle_booking.

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 provides examples and valid inputs but does not explicitly state when to use this tool vs. alternatives (e.g., get_vehicle_booking for existing bookings). No exclusions or alternative suggestions are given.

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!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources