gondola
Server Details
Travel award search: compare cash vs points on hotels, flights & cars, cents-per-point, and book.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- gondola-ai/gondola-mcp
- GitHub Stars
- 6
- Server Listing
- Gondola AI
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.4/5 across 31 of 31 tools scored. Lowest: 3.8/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.
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.
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.
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
34 toolsbook_hotelADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| given_name | No | ||
| payment_id | Yes | ||
| family_name | No | ||
| phone_number | No | ||
| email_address | No | ||
| gondola_rate_id | Yes | ||
| special_request | No | ||
| travel_profile_id | No | ||
| loyalty_account_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (destructiveHint=true) and open world. Description adds details on booking process, override behavior for loyalty_account_id, and error messages. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: purpose first, then prerequisites, then parameter details with Args section, and Returns note. Slightly verbose but necessary given 9 parameters and multiple integration points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all parameters and their sources. Explains interaction between travel_profile_id, loyalty_account_id, and guest fields. Mentions output format. Adequate for a complex mutation tool with output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description extensively explains each parameter's purpose and origin (e.g., gondola_rate_id from get_hotel_details, loyalty_account_id from get_loyalty_accounts). Compensates fully for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it books a hotel room using a rate from get_hotel_details. Verb (book), resource (hotel room), and source are specific. Distinguishes from sibling tool book_vehicle which books a different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear prerequisites: requires Gondola account, payment method, and rate ID from get_hotel_details. Explains when to use travel profiles and loyalty accounts. Does not explicitly state when not to use or alternatives, but implicit from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_vehicleADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rate_code | Yes | ||
| search_id | Yes | ||
| given_name | Yes | ||
| payment_id | Yes | ||
| acriss_code | Yes | ||
| family_name | Yes | ||
| vendor_code | Yes | ||
| phone_number | Yes | ||
| email_address | Yes | ||
| pickup_location | No | ||
| loyalty_account_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true (mutating). The description adds that it returns confirmation or error, but does not disclose idempotency, rate limits, or cancellation policy. Adequate but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence, prerequisites, and a bulleted args list. Could be slightly more concise, but each sentence adds value. Front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters (9 required), an output schema explaining return values, and all parameters documented in description, the tool definition is complete. No critical missing information like error handling or side effects beyond acknowledgment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries full burden. It explains every parameter meaning, including examples (e.g., vendor_code 'ZE'), format (phone_number), and source (payment_id from get_payment_methods). Adds significant value beyond schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Book a rental vehicle from a search result', using a specific verb and resource. It distinguishes from sibling tools like 'book_hotel' by explicitly focusing on vehicles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states prerequisites (Gondola account, payment method) and references get_payment_methods to find the payment ID. It implies usage after search_vehicles. Lacks explicit alternatives or when-not-to-use, but clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_vehicle_bookingADestructiveInspect
Cancel an existing vehicle booking.
Args:
booking_id: The Gondola booking ID (confirmation number) of the vehicle booking.
Returns:
Cancellation result.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds 'Cancel' and mentions a return value, but does not disclose additional behavioral traits such as whether cancellation is reversible, if fees apply, or if the booking must be in a cancellable state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear docstring structure (Args, Returns). Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, destructive action, output schema exists), the description adequately covers purpose, parameter meaning, and return type. It could mention potential side effects or conditions, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, but the description includes an Args section that explains the booking_id parameter as 'The Gondola booking ID (confirmation number)'. This adds meaningful context beyond the schema's type and title, compensating well for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cancel') and the resource ('existing vehicle booking'). It distinguishes this tool from siblings like 'book_vehicle' (creation) and 'get_vehicle_booking' (retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or conditions for cancellation. It simply states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_ratesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_ids | Yes | ||
| num_adults | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the return format (cash rate, points rate, CPP, value signals, recommendations) and usage context, but doesn't disclose additional behavioral traits like auth needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose upfront, usage guidance, parameter details, and return info. No unnecessary sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers returns. All 4 parameters are explained, and the tool's role in the workflow (post search_hotels) is clear. Siblings like search_hotels and book_hotel are distinct.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description includes an 'Args' section explaining each parameter: hotel_ids (max 5, from search_hotels), checkin/checkout (format YYYY-MM-DD), num_adults (default 2). This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Compare cash vs points rates across multiple hotels side-by-side,' specifying the verb (compare), resources (rates), and output format (comparison table). It distinguishes from siblings like search_hotels 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this after search_hotels to help a user decide between their top hotel picks,' providing clear context. No explicit exclusions, but the intended use case is well-defined.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | No | ||
| checkout | No | ||
| hotel_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds context about email notification and the account requirement. It does not describe any destructive side effects beyond creation, but provides sufficient transparency for a non-destructive write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with separate sections for purpose, usage, arguments, and returns. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 1 required), the description covers purpose, parameter semantics, prerequisites, and return value. The existence of an output schema reduces the need to detail return values, making the description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all parameters: hotel_id (Vervotech property ID), checkin/checkout (format and constraint). This adds significant meaning beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 hotels for price drops. It specifies the verb 'create' and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to monitor price drops) and prerequisites (requires Gondola account with API key). It mentions optional date parameters but does not explicitly state when not to use or suggest alternatives like book_hotel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credit_card_coverageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| card_provider | No | ||
| card_number_bin | No | ||
| credit_card_product_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds that the tool returns coverage type, max days, and summary, and that it performs a lookup. No contradictions, and the return structure is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct with no filler, clearly structured with Args and Returns, and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 sufficiently covers parameter usage and return fields. No gaps remain for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the two mutually exclusive parameter groups and that card_provider is required with card_number_bin, adding crucial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Look up') and resource ('rental car CDW/LDW coverage'), and distinguishes this tool from siblings like booking or vehicle tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides two alternative parameter combinations ('EITHER credit_card_product_name OR card_number_bin + card_provider'), guiding the agent on valid inputs. Does not mention when not to use it, but the clarity is high.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_rate_alertADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive. The description confirms the mutation ('Delete') and adds auth requirements, providing useful behavioral context beyond annotations. It does not mention permanence, but that's minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with clear sections (Args, Returns). Every sentence serves a purpose, no fluff. Perfectly sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with an output schema, the description covers the action, parameter, return value, and auth requirement. No gaps given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains the single parameter 'alert_id' by noting its source ('from get_rate_alerts'), adding meaning beyond the schema type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'rate alert', explicitly linking it to the purpose of stopping price monitoring. This distinguishes it from siblings like create_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It includes a prerequisite (Gondola account with API key) and implies usage when an alert is no longer needed. However, it does not explicitly state when not to use it or compare it to alternatives, though context from siblings makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_ratesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_id | Yes | ||
| num_adults | No | ||
| rate_sources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 value by clarifying that it 'shows per-supplier status and a full breakdown of every rate by type.' This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a usage guideline sentence, and a parameter list. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown), the description does not need to detail return values. It covers input parameters thoroughly. However, a brief note about the output structure could slightly improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter with clear semantics: hotel_id as 'Vervotech property ID', checkin/checkout formats, num_adults defaults, and rate_sources as optional comma-separated values. This fully compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Diagnose rate availability and source statuses for a specific hotel.' It uses a specific verb ('diagnose') and resource ('rates'), and distinguishes itself from sibling tools like 'compare_rates' or 'book_hotel' by focusing on investigation of rate availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it doesn't explicitly state when not to use it, the purpose is well differentiated from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description's 'Get details' aligns but adds no behavioral info beyond that, such as rate limits or auth needs. It doesn't 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a clear title, an 'Args' section, and a 'Returns' section. Every sentence is necessary and front-loaded, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description covers purpose, parameter semantics, and return content (hotel, dates, room, rate, status). It could mention error conditions or auth, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description's 'Args' section explains that booking_id is 'The booking ID or confirmation number,' adding meaningful context beyond the schema's bare parameter name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details for a specific hotel booking' with a specific verb ('Get') and resource ('booking details'). It distinguishes from sibling tools like 'book_hotel' (creation) and 'get_vehicle_booking' (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a booking ID to retrieve details, but it does not explicitly state when not to use this tool or recommend alternatives. No exclusions or context about when other sibling tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_linkARead-onlyInspect
Get booking options for a hotel.
Presents two explicit booking paths so the path is settled up front rather
than discovered mid-conversation:
1. **Check out on Gondola** with a booking link — always available.
2. **Book here now** with an eligible saved card — shown only when the user
has a card that can be charged in chat, and referenced by its last 4.
Anonymous users get path 1 plus a prompt to sign up for in-chat booking.
Use this after search_hotels or get_hotel_details when a user wants to book.
Pass ``gondola_rate_id`` whenever a specific rate has been surfaced (from
get_hotel_details or compare_rates) so the link lands on that rate's
checkout page instead of the generic hotel page.
Args:
hotel_id: The hotel's Vervotech property ID (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.
children_ages: Comma-separated ages of children (e.g. "5,8"). Empty string if no children.
gondola_rate_id: Optional rate ID from get_hotel_details/compare_rates. When provided,
the link deep-links straight to that rate's checkout page.
Returns:
Booking instructions tailored to the user's auth status.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_id | Yes | ||
| num_adults | No | ||
| children_ages | No | ||
| gondola_rate_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes behavior beyond annotations: two booking paths, auth-dependent outcomes, and anonymous user handling. Annotations indicate read-only and non-destructive, which the description aligns with. Adds valuable context about card eligibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (overview, usage, args, returns). Slightly lengthy but every sentence adds value. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations cover safety and output schema exists, the description is thorough: covers both booking paths, auth scenarios, anonymous user flow, and rate ID option. Leaves no gaps for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, but the description provides detailed explanations for all six parameters, including format (YYYY-MM-DD), default values, and semantics (e.g., hotel_id from search_hotels, gondola_rate_id for deep-linking). Fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets booking options for a hotel and elaborates on two explicit booking paths, distinguishing it from sibling tools like book_hotel which actually completes the booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use after search_hotels or get_hotel_details when user wants to book, and to pass gondola_rate_id when a specific rate has been surfaced. Lacks explicit when-not-to-use guidance but context strongly implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_free_night_creditsARead-onlyInspect
Get the user's free night certificates (award nights) across loyalty programs.
Returns each certificate's program, how many remain, what it covers, when it
expires, and whether a points top-up is allowed.
Requires a Gondola account (API key).
Returns:
Formatted list of free night certificates, or instructions to connect.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only. Description adds value by stating the authentication requirement (Gondola account) and the return format (formatted list or instructions to connect), which are not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with four clear sentences. Each sentence serves a purpose: purpose, return content, auth requirement, return type. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an existing output schema, the description fully covers the tool's behavior: what it retrieves, authentication needs, and return format. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description does not need to add meaning beyond the schema, but it mentions 'across loyalty programs' which adds no further constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves free night certificates across loyalty programs, using a specific verb and resource. It distinguishes from sibling tools like get_loyalty_accounts which focus on general account details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to prefer this over siblings, nor any exclusions. Context implies it's for certificate-specific queries, but does not compare to 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_hotel_detailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_id | Yes | ||
| num_adults | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's task is lighter. The description adds context by stating it returns room options, pricing, cancellation policies, and amenities. It does not contradict annotations and provides useful behavioral details about the return content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a brief intro sentence, a usage recommendation sentence, then separate 'Args' and 'Returns' sections. Every sentence adds value, and the most important information is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (4 params, output schema exists but not shown in detail), the description covers all necessary aspects: what the tool does, when to use it, parameter explanations, and a summary of return values. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema properties have no descriptions. The description compensates fully by explaining each parameter in the 'Args' section: hotel_id is the Vervotech property ID from search_hotels, checkin/checkout format is YYYY-MM-DD, and num_adults defaults to 2. This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information, room types, and rates for a specific hotel.' It uses a specific verb ('Get') and resource ('detailed information, room types, and rates') and distinguishes from siblings like search_hotels (which lists hotels) and book_hotel (which books).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this after search_hotels to get full details for a hotel the user is interested in.' This provides clear usage context. While it doesn't explicitly state when not to use it or list alternatives, the guidance is sufficient for an agent to understand the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotel_reviewsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hotel_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds value by specifying the tool returns up to 10 recent reviews with ratings and comments, which is not in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with clear sections for use case and parameters/returns. Every sentence adds necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description sufficiently covers what the tool does and what it returns. It's complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter hotel_id is described as 'The hotel's Vervotech property ID (from search results),' which clarifies its source beyond the schema's type alone. This 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves guest reviews for a specific hotel, distinguishing it from sibling tools like get_hotel_details or get_hotel_stats. It specifies the output type (recent reviews with ratings and comments) and a limit of 10.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use when helping users understand other guests' opinions, providing clear context. However, it does not mention when not to use it or suggest alternatives, which is acceptable given the tool's specific purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotel_statsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hotel_id | Yes | ||
| nightly_cash_cost | Yes | ||
| nightly_points_cost | No | ||
| nightly_cash_cost_currency | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive behavior. The description adds useful behavioral context (historical comparison, percentile rankings) beyond the annotations, but lacks details on data recency or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and well-structured: purpose sentence, usage sentence, then labeled Args/Returns sections. No wasted words, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and return concept; output schema handles details. Slightly vague on 'chain' context and historical time window, but overall sufficient for an informed tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by describing all four parameters in plain language, including the optional nature of nightly_points_cost and example currency values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves 'pricing analytics and percentile data' and helps determine if a rate is a good deal. It distinguishes from siblings like 'compare_rates' and 'predict_price' by focusing on historical percentile comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to help users understand if a rate is a good deal,' providing clear context. However, it does not explicitly mention when not to use or name alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_loyalty_accountsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description's addition of return format (formatted list) and conditional behavior (instructions to connect if no accounts) adds useful context. It does not disclose any potential side effects or authorization nuances beyond the API key requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four short sentences, each serving a purpose. It could be slightly more front-loaded, but the first sentence clearly conveys the main action. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the existence of an output schema, the description adequately explains the return value and conditional behavior. It addresses the key aspect of what the tool returns and under what circumstances, making it complete for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is 100%. The description adds no parameter details, but baseline for 0 params is 4. No additional meaning is needed beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves hotel and airline loyalty accounts with points balances and values, using a specific verb and resource. It distinguishes itself from sibling tools like get_traveler_context and optimize_loyalty_portfolio by focusing on loyalty account details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (Gondola account/API key) but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. Usage context is implied but not directly addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_multi_night_ratesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nights | No | ||
| end_date | Yes | ||
| hotel_id | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds useful behavioral context by specifying that it 'shows cash rates, points rates, and value percentiles,' which goes beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (about 5 lines excluding Args) and well-structured: a summary sentence, usage guidance, then an Args section. Every sentence adds value, and the key info is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (rate calendar with multiple metrics), the description is complete. It explains what the calendar shows (cash, points, percentiles) and all parameters. An output schema exists, so the return format is documented elsewhere. No missing information for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description fully carries the burden. It provides clear, helpful explanations for each parameter: hotel_id source, date format for start_date/end_date, and nights default. This adds significant meaning beyond the schema's basic type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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.' with a specific verb and resource. It also distinguishes from siblings like compare_rates by targeting date flexibility, and the context of searching for cheapest time to stay is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage scenario: 'Use this when a user has flexible dates and wants to find the cheapest time to stay.' It does not explicitly state when not to use or compare to siblings, but the context is sufficient for an agent to decide when to invoke this tool over alternatives like compare_rates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_past_tripsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. Description adds that the operation requires an API key, returns a formatted list, and notes the response will indicate how many more trips exist. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear summary line, then details in paragraphs. Each sentence adds value; no wasted words. Could be slightly more concise but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description covers purpose, auth requirement, parameter usage, and return format. Annotations cover safety. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining the limit parameter's default, ordering, and when to increase it. Adds semantic guidance beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'past trips', listing specific sub-resources (hotel stays, flights). It distinguishes from sibling tools like get_upcoming_trips by focusing on past trips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states requirement of a Gondola account (API key). Provides guidance on when to raise the limit parameter ('only when the user wants their full history'). Lacks explicit comparison to alternatives but context from sibling names and description is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_methodsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context: returns card details, payment ID, and chat-booking capability. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose and prerequisite. The bullet list of return values adds clarity without redundancy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and a referenced output schema, the description covers prerequisite, return data details, and purpose. It is fully complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, schema coverage 100%. Baseline is 4. The description adds value by explaining what is returned, compensating for no parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'saved payment methods for booking'. Among siblings, there are no other payment methods tools, so it is uniquely identified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires a Gondola account (API key)') and explains the returned data's relevance (payment ID needed for book_hotel tool, bookable in chat). It does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rate_alertsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and destructiveHint. Description adds useful behavioral context: requires API key, returns list of active alerts with intended output structure. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences with front-loaded main action. Each sentence adds value: purpose, elaboration, requirement, return description. Could combine first two sentences but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, good annotations, and presence of an output schema, the description adequately covers purpose, return values, and prerequisite. Lacks mention of potential limitations (pagination, max alerts) but sufficient for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No input parameters exist (schema is empty). Description does not add unnecessary parameter info. Baseline score for 0 parameters is 4, and the description appropriately focuses on purpose and output rather than parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get all active rate alerts for the current user' with specific verb and resource. Distinguishes from siblings like create_rate_alert by focusing on retrieval. Elaborates on what rate alerts are (monitoring hotels for price drops).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives like search_hotels or delete_rate_alert. Only mentions a prerequisite (Gondola account with API key), but no context on when it's appropriate to call this instead of other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similar_hotelsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_id | Yes | ||
| num_adults | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so description doesn't need to reiterate safety. It adds value by specifying the return type (list with rates and ratings) and implying a safe query operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: a one-line purpose, a usage note, and Args/Returns sections. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (though not shown), the description adequately describes the return as a list of similar hotels with rates and ratings. It could mention potential limitations (e.g., number of results) but is complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: hotel_id (Vervotech property ID), checkin/checkout (YYYY-MM-DD format), and num_adults (default 2). This adds essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Find hotels similar to one the user is looking at' and provides usage examples. It distinguishes this tool from sibling tools like book_hotel or get_hotel_details by focusing on similarity and alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this when a user wants alternatives, comparisons, or asks show me hotels like this one.' While it doesn't explicitly state when not to use, the context is clear and it implies appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_suggested_searchesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: it uses user preferences, recent searches, popular destinations, and upcoming holidays, and returns preview hotel results. This goes beyond annotations, though it could mention if it requires user login or has latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: a clear purpose statement, a detail sentence, and a usage guideline. The 'Returns:' line is structured well. Every sentence adds value without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, read-only annotations, and an output schema, the description covers the tool's purpose, behavior, and usage scenario completely. It does not need to explain return values as output schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% by default. The description correctly does not mention parameters, and the baseline of 4 applies for no-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides personalized travel suggestions and inspiration, distinguishing it from search and booking tools. Unlike 'search_hotels' which requires explicit criteria, this tool is for exploratory use when the user has no destination in mind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Great for when the user doesn't know where to go,' which gives a clear usage context. While it does not list when not to use or mention alternatives directly, the context implies use cases differentiate it from sibling tools like 'search_hotels'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traveler_contextARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds requirement for Gondola account (API key) and describes return format (formatted context or instructions). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded purpose, no wasted words. Includes usage instruction, prerequisite, and return description. Ideal length for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, presence of output schema, and comprehensive annotations, the description covers when to call, what it returns, and prerequisites. Fully adequate for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so baseline is 4. Description correctly omits param details as they are unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets saved travel context for personalization, lists specific data (loyalty, home airport, preferences), and specifies it's the best source of traveler identity. Distinguishes from siblings by framing as a single call to initialize recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to call once at start of travel/planning session and weigh across recommendations. Lacks explicit when-not-to-use or alternatives, but context is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_travel_profilesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. The description adds value by stating the auth requirement (Gondola account/API key) and return format (formatted list or instructions). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two paragraphs plus bullet points. The main purpose is front-loaded, and every sentence adds value. Well-structured with clear sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, a read-only operation, and an existing output schema, the description covers all necessary context: what it does, how to use the output, prerequisites, and return type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters, so baseline is 4. Description does not need to add parameter info. It correctly explains the tool's output and how to use the profile ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves travel profiles (guest name, email, phone presets). Distinguishes from siblings like update_traveler_profile and book_hotel by specifying the output (Profile ID) and use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use the tool: to prefill guest details when booking. Provides alternative (collecting fields individually) and notes the requirement of a Gondola account/API key. No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_tripsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context: it requires authentication, returns a summary with specific fields (dates, confirmation numbers, costs, etc.), and handles cases where no account is connected by providing instructions. This goes beyond annotations to inform the agent about side effects and response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each serving a purpose: purpose, what's returned, and prerequisites. It is front-loaded with the main action and remains free of fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, clear annotations, and an output schema (not shown but flagged as present), the description covers the essential elements: purpose, return content, and authentication. It slightly lacks edge-case details (e.g., behavior when no trips exist), but overall it is sufficiently complete for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100% (trivially). The description compensates by explaining the return value content (summary with dates, confirmations, costs, etc.). No parameter details are needed, and the description adds value by clarifying what the tool outputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('upcoming trips'), and specifies what is included ('hotel stays, flights, and car rentals'). It distinguishes the tool from siblings like 'get_past_trips' and specific booking tools by focusing on a comprehensive summary of all upcoming reservations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (API key), which provides usage context. While it doesn't explicitly list alternatives or when not to use, the tool's purpose is distinct enough from siblings like 'get_booking' (specific booking) and 'get_past_trips' to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_bookingBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it returns details including vendor, pickup/dropoff, etc., which is helpful but doesn't disclose additional behaviors like authentication requirements or error cases. With annotations covering the core safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence followed by structured Args and Returns sections. While the labels are somewhat redundant, the content is front-loaded with the purpose and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema (not provided but indicated), the description adequately covers the return categories. For a simple read operation, it is sufficiently complete, though it omits error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains booking_id as 'The Gondola booking ID (confirmation number)', adding meaningful context beyond the schema's 'Booking Id'. This clarifies the parameter's purpose and format, fully compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details for a specific vehicle booking', identifying the verb 'get' and resource 'vehicle booking'. The annotation title 'Get a rental car booking' reinforces this. It distinguishes from sibling tools like get_vehicle_booking_coverage by focusing on details of a specific booking by ID, though it doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives such as get_vehicle_booking_coverage or get_vehicle_booking_link. It only implies usage when having a booking ID, but provides no when-not-to-use or context for choosing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_booking_coverageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, signaling a safe read operation. The description adds that it returns 'coverage details or an error message', which is consistent but doesn't provide additional behavioral context like data freshness or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, then args/returns. It is front-loaded and contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param, no nested objects, annotations cover behavior), the description fully covers purpose, input, and output. An output schema exists, and the description mentions return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'booking_id: The Gondola booking ID of the vehicle booking', which adds meaning beyond the schema's type and name. This is sufficient for a single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'rental car CDW/LDW coverage stored at booking time for a vehicle booking', using a specific verb ('get') and resource. This distinguishes it from sibling tools like 'get_vehicle_booking' (which likely gets the booking itself) and 'credit_card_coverage'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., 'get_vehicle_booking' or 'credit_card_coverage'). The description does not specify prerequisites, limitations, 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_vehicle_booking_linkARead-onlyInspect
Get a Gondola.ai deep link for a specific vehicle from search results.
Authenticated users get instructions to book in-conversation with book_vehicle plus the
web link as a fallback; anonymous users get the web link directly.
Args:
search_id: Search ID from search_vehicles.
vendor_code: Vendor code from search results.
rate_code: Rate code of the selected vehicle.
pickup_datetime: Pickup date and time in ISO format.
dropoff_datetime: Drop-off date and time in ISO format.
Returns:
Booking instructions tailored to the user's auth status.
| Name | Required | Description | Default |
|---|---|---|---|
| rate_code | Yes | ||
| search_id | Yes | ||
| vendor_code | Yes | ||
| pickup_datetime | Yes | ||
| dropoff_datetime | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description adds behavioral details: it returns a deep link, and the response differs by auth status. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at 6-7 lines, with clear Args and Returns sections. Information is front-loaded with the purpose. Minor redundancy could be trimmed, but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the auth-context, source of each parameter, and the return format (booking instructions tailored to auth status). With an output schema likely present, the description provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the tool description includes an Args section explaining each parameter's origin (e.g., search_id from search_vehicles, vendor_code from search results) and format (e.g., ISO datetime). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a Gondola.ai deep link for a specific vehicle from search results. It uses the verb 'get' and specifies the resource 'vehicle booking link', distinguishing it from siblings like book_vehicle (for booking) and get_booking_link (generic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains behavior for authenticated vs anonymous users and mentions book_vehicle as an alternative for authenticated users. However, it does not explicitly state when to use this tool over other link-related siblings like get_booking_link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_detailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rate_code | Yes | ||
| search_id | Yes | ||
| vendor_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 clear. The description adds that it returns details like extras and policies, but does not reveal other behaviors like authentication requirements or rate limits. With annotations covering the key traits, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line purpose, a one-line usage note, then parameter list and return summary. No wasted words; front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's place in the workflow (after search_vehicles), lists all parameters, and indicates return content (extras, charges, policies). Given the output schema exists, the description sufficiently covers what an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in schema). The description compensates by explaining each parameter: vendor_code (with examples like 'ZE' for Hertz), rate_code, and search_id. This adds meaningful context that the schema alone does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get detailed information about a specific rental vehicle option' and enumerates specific content: 'extras, insurance options, charges, and cancellation policy'. This clearly distinguishes from sibling tools like search_vehicles and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this after search_vehicles', providing clear sequential context. Does not mention when not to use or alternative tools, but the context is sufficient for typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_loyalty_portfolioARead-onlyInspect
Analyze the user's whole loyalty portfolio and surface the highest-value actions.
Trip-independent. Looks across every loyalty program the user holds — plus the transferable
card currencies (Amex, Chase, Bilt, etc.) that can feed hotel programs — and reports points
expiring soon (ranked by value at risk), the best transfer opportunities, and the largest
balances. When the user's travel profile is available, it also tailors the view to their home
airport, the airlines they fly, their frequent destinations, and when they travel (e.g.
flagging points that expire before their usual travel months). Takes no arguments.
Use this when the user asks how to make the most of their points, what's expiring, or where
they can transfer. For deciding where to book a specific trip, use search_hotels /
compare_rates instead.
Returns:
A Markdown portfolio summary, or instructions to connect accounts when none are linked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds that it takes no arguments, returns a Markdown summary or instructions to connect accounts, and tailors results when travel profile is available. This adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: it starts with the core purpose, then provides details, usage guidelines, and return format. Every sentence adds value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (portfolio analysis) and that there are no parameters, the description thoroughly explains what it does, when to use it, and what it returns. It covers all necessary aspects including tailoring to travel profile and the case when no accounts are linked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%. With 0 parameters, the baseline is 4. The description does not need to add parameter semantics; it correctly states 'Takes no arguments.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes the user's loyalty portfolio and surfaces high-value actions, specifying it is trip-independent and covers all programs and transferable currencies. It distinctly differentiates from sibling tools like search_hotels and compare_rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use: when the user asks how to make the most of points, what's expiring, or where to transfer. It provides an alternative for booking specific trips, directing to search_hotels/compare_rates, offering clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predict_priceARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | ||
| checkout | Yes | ||
| hotel_id | Yes | ||
| nightly_cash_cost | Yes | ||
| nightly_points_cost | No | ||
| nightly_cash_cost_currency | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds value by stating it uses historical price data, returns recommendation with confidence and signals, and is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is clear and organized with purpose, usage, and args list. However, the args list largely repeats schema information, which could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 params (5 required), output schema exists, and annotations cover safety, the description is fairly complete. It covers purpose, usage, and parameter semantics, though lacks limitations like data availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains hotel_id as 'Vervotech property ID', date format, cost and currency meaning, and optional points cost, adding meaning beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Predict whether now is a good time to book a hotel' with a specific verb and resource. It distinguishes from sibling tools like compare_rates or diagnose_rates by focusing on timing advice using historical price data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this when a user asks "Should I book now or wait?"' and lists required inputs. Lacks 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.
search_flightsARead-onlyInspect
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. In browse
mode, round trips are searched as two one-way legs.
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.
airlines: Optional airline codes or names for browse mode (e.g. ["UA"] or
["United"]). Passed to the Google Flights search API.
max_stops: Optional maximum stops per direction in browse mode. Use 0 for
nonstop only, 1 for nonstop or one-stop itineraries.
Returns:
A ranked, paged list of flight options — airlines, routes, prices, and a link.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | browse | |
| page | No | ||
| origin | Yes | ||
| airlines | No | ||
| max_stops | No | ||
| cabin_class | No | ||
| destination | Yes | ||
| return_date | No | ||
| departure_date | Yes | ||
| num_passengers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds significant context: ranking by loyalty/status, cash-priced nature, use of Google Flights API, and mode restrictions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured with sections for overview, ranking, and detailed parameter descriptions. Each sentence adds value, though some redundancy exists (e.g., repeating cash-priced).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and an output schema (mentioned but not shown), the description covers inputs thoroughly and briefly describes the output structure. It provides enough context for an agent to understand and invoke the tool correctly, though more detail on output fields could be added.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 10 parameters are thoroughly explained with examples, formats, and constraints. The description compensates for the 0% schema coverage by detailing origins, destinations, date format, cabin_class enum, pagination, and optional filters like airlines and max_stops.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Search for flights by route and date and return cash-priced options,' which clearly states the verb ('search'), resource ('flights'), and key specifics (route, date, cash-priced). This distinctly separates 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains pagination ('call again with page=2...') and mode usage ('book' only if user explicitly asks to book). It gives clear context on when to use each mode and how to get more results, though it does not explicitly list alternatives for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hotelsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| checkin | Yes | ||
| checkout | Yes | ||
| location | Yes | ||
| chain_name | No | ||
| num_adults | No | ||
| loyalty_points | No | ||
| loyalty_programs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds detailed behavioral traits: returns side-by-side rates with CPP valuation, chain_name's fallback behavior (returns unfiltered results with a note if no match), loyalty_programs for personalization, and limit indicating how many more results exist. This significantly 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear front-loaded purpose and organized parameter list. Every sentence adds value, and the length is appropriate for the tool's complexity (8 parameters). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, 0% schema coverage, and an output schema exists, the description is complete. It covers all parameters, return values (formatted list with CPP and deal recommendations), and special behaviors (chain_name fallback, personalization). No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides comprehensive semantics for all 8 parameters: location examples, date formats, num_adults default, chain_name case-insensitive matching and fallback, loyalty_programs and loyalty_points for personalization and affordability, and limit with usage guidance. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for hotels by location and dates with cash AND points pricing.' It highlights the unique advantage of side-by-side rates, CPP valuation, and deal scores, effectively distinguishing it from siblings like compare_rates and get_hotel_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool (searching hotels with both cash and points pricing) and offers guidance for parameters like limit ('raise this only when the user explicitly wants a longer list'). However, it lacks explicit when-not-to-use instructions or direct comparisons to sibling tools, missing some exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vehiclesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vehicle_class | No | ||
| pickup_datetime | Yes | ||
| pickup_location | Yes | ||
| dropoff_datetime | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 limited behavioral insight. It mentions returning a list of available vehicles with rates, but does not disclose additional traits like data freshness or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet-pointed arguments and a clear opening sentence. It is efficient but not overly concise; the param list takes space but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description adequately covers parameters and mentions return type. It is complete for a search tool, though it could note optionality of vehicle_class more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description fully compensates by detailing each parameter: IATA code for pickup_location, ISO format for datetimes, and enum values for vehicle_class. This adds critical meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for rental vehicles at an airport or city, with specific verb 'Search' and resource 'rental vehicles'. It distinguishes from siblings like 'book_vehicle' and 'get_vehicle_details'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives (e.g., 'get_vehicle_booking' or 'book_vehicle'). It implies usage before booking but lacks when-not or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_traveler_profileAInspect
Save a learned travel preference or experience to the user's traveler profile.
Use when the user shares a durable preference, like, dislike, or trip experience that should
inform future recommendations — "Always takes a window seat", "Prefers boutique hotels over
chains", "Vegetarian". Don't save temporary logistics like "my flight lands at 3pm".
Saved entries come back from get_traveler_context in later sessions, which is how a preference
stated once is still known next time.
Requires a Gondola account (API key).
Args:
profile_entry: The preference or experience to save. Be specific and actionable.
Good: "Prefers ocean-view rooms". Bad: "Liked the hotel".
Returns:
Confirmation of the saved entry, or an error message.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_entry | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: explains that saved entries persist across sessions via get_traveler_context, mentions API key requirement, and describes return behavior (confirmation or error). No contradictions with annotations (readOnlyHint=false, destructiveHint=false). Could further specify rate limits or idempotency, but sufficient for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose first, then usage guidelines, persistence note, requirement, and parameter description. Each sentence adds value; no waste. Appropriate length for a simple write tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary aspects: purpose, when to use, what to save, prerequisites, return behavior. No gaps given the tool's simplicity and the presence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% but description provides detailed guidance on the single parameter: examples of good vs bad entries, encouragement to be specific and actionable. Adds meaningful usage advice beyond schema type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it saves a learned travel preference or experience to the user's traveler profile, with specific examples of durable preferences vs temporary logistics. Clearly distinguishes the action and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (durable preferences, likes, dislikes, trip experiences) and when-not-to-use (temporary logistics like flight landing time). Also mentions prerequisite (Gondola account) and references sibling tool get_traveler_context for retrieving saved entries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Your Connectors
Sign in to create a connector for this server.