Skip to main content
Glama

Server Details

Search award flight availability and points pricing across 27 airlines and 23 loyalty programs.

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
89.2% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
AwardTravelFinder/mcp
GitHub Stars
6

TDQS

B3.2/5.0

Scored across 137 tools

Disambiguation2/5

With 137 tools, many have overlapping purposes. For example, multiple flight search tools (search_all_airlines, search_availability, search_monthly_availability, search_multi_passenger, search_cash_flights, search_hybrid) and multiple award chart lookups (get_pricing, get_program_rates, get_program_partner_chart) create ambiguity. There are also redundant discover_more_flight_tools variants and overlapping audit_hotel_folio/audit_marriott_folio, making it difficult for an agent to reliably pick the right tool.

Naming Consistency3/5

Most tools follow a verb_noun snake_case pattern, but there are inconsistencies: add_flight_booking vs log_lounge_visit, delete_lounge_visit vs lounge_delete_visit (two patterns for the same action), and set_loyalty_status vs update_points_balance. While prefixes like fs_, sw_, lounge_ are consistent, the mix of verb styles and occasional redundant prefixes reduce overall coherence.

Tool Count1/5

137 tools is far beyond the typical well-scoped server (3-15). Even for a comprehensive travel platform, this is extreme and overwhelming, making it nearly impossible for an agent to efficiently explore and select the right tool.

Completeness4/5

The server covers an extensive domain: award flights, hotels, lounges, credit cards, points, status, vouchers, trips, monitors, seatmaps, WiFi, and activities. CRUD operations are largely present (e.g., add/update/delete for flights and hotels, list/create/update/delete for trips, vouchers, monitors). Minor gaps exist, such as no update_voucher, but overall the surface is quite complete for its stated purpose.

Available Tools

137 tools
add_flight_bookingAInspect

Log a flight booking/redemption — award (points) or cash (paid with money; set kind:"cash" and cash_paid). For multi-leg trips (connecting flights, open-jaw, return), call this once per leg using the same trip_id — put the total cost on the first leg and 0 on subsequent legs. Works great with Gmail — extract booking details from confirmation emails. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoaward = points/miles redemption (default); cash = paid with money. Defaults to award.
notesNo
originYes
airlineYes
programNoAward bookings only. Loyalty program used.
trip_idNoOptional UUID grouping legs of the same multi-leg booking. Generate once and reuse for all legs. Omit for single-leg bookings.
cash_paidNoCash bookings only. Total cash fare paid for this leg, in taxes_currency (default USD).
passengersNo
taxes_paidNo
cabin_classYes
destinationYes
return_dateNo
points_spentNoAward bookings only. Total points for this leg. Use 0 for connecting legs — put the full booking cost on the first leg only.
flight_numberNo
departure_dateYes
taxes_currencyNoCurrency for taxes_paid and cash_paid. Defaults to USD.
workspace_trip_idNoOptional id of a workspace Trip (from create_trip / list_trips) to file this flight under, so it shows grouped with the matching hotels. Distinct from trip_id, which only chains multi-leg legs.
confirmation_numberNo

TDQS

A4.4/5.0
Behavior4/5

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

With all annotation hints false, the description carries the burden of behavioral disclosure. It discloses the paid nature, the cost allocation rule across legs, and Gmail integration. It does not cover failure modes or idempotency, but the essential side effects (logging and cost distribution) are transparent.

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

Conciseness5/5

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

The description is a single coherent paragraph with no fluff. Each sentence adds value: purpose, award/cash distinction, multi-leg handling, Gmail hint, and paid warning. It front-loads the core action and methodically covers important edge cases.

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

Completeness4/5

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

Given 18 parameters, 5 required, and no output schema, the description covers the critical semantics needed to log a booking correctly, especially the multi-leg and award/cash nuances. It doesn't explain every optional parameter or return behavior, but for a logging tool with clear schema patterns, it is sufficiently complete for its complexity.

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

Parameters4/5

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

Schema coverage is only 39%, so the description must compensate. It clarifies the meaning of kind (award vs cash with example), trip_id's role in multi-leg grouping, and the first-leg cost rule for cash_paid and points_spent. It also hints at taxes_currency via the cash_paid description. Key parameters are well explained, though many optional ones (notes, passengers, confirmation_number) are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool logs a flight booking/redemption, distinguishes award vs cash, and explains the multi-leg handling pattern. It explicitly names the alternate payment kinds and the per-leg call convention, making its purpose distinct from update/delete/list flight booking tools.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance for multi-leg trips (call once per leg with same trip_id, put total cost on first leg), and mentions Gmail integration and paid feature. It does not explicitly contrast with update_flight_booking or when to modify existing bookings, but the core usage context is clear.

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

add_hotel_bookingAInspect

Log a hotel booking to the user's portfolio — award (points, with price-drop monitoring) or cash (paid with money; set kind:"cash" and original_pay_rate_usd). Use hotel_id from search_hotels / get_hotel_availability results. Pass trip_id to file the stay under a workspace Trip so it shows grouped with the matching flights. Works great with Gmail — pull check-in/out dates, room type, rate and confirmation number from the reservation email. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoaward = points stay with price-drop monitoring (default); cash = paid with money. Defaults to award.
notesNo
trip_idNoOptional id of a workspace Trip (from create_trip / list_trips) to file this stay under.
hotel_idYesHotel identifier from search_hotels / get_hotel_availability results.
rate_planNo
room_typeNo
check_in_dateYes
check_out_dateYes
original_pointsNoAward bookings only. Total points paid for the stay.
cash_rate_currencyNoCurrency of original_pay_rate_usd. Defaults to USD.
confirmation_numberNo
original_pay_rate_usdNoCash rate paid for the stay (required for cash bookings; optional cash-equivalent for award bookings).

TDQS

A4.4/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: award bookings include price-drop monitoring, cash bookings require kind and original_pay_rate_usd, and trip_id causes the stay to group with matching flights. It also discloses that this is a paid feature. No contradiction with annotations exists.

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

Conciseness5/5

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

Four sentences convey the core purpose, parameter-critical guidance, workflow context, and a paid-feature warning without redundancy. The most important information, the award/cash distinction, is front-loaded, and every clause adds value.

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

Completeness4/5

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

For a 12-parameter creation tool with no output schema and annotations that only report false hints, this description covers the essential workflow well: where IDs come from, required cash parameters, trip grouping, and email-based data extraction. It does not describe return values or duplicate-handling behavior, but the core call path is clear enough for an agent to proceed correctly.

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

Parameters4/5

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

Schema coverage is only 50%, and the description compensates well for key gaps. It explains the award vs cash distinction for kind, the source of hotel_id, the purpose of trip_id, and how check-in/out dates, room type, rate, and confirmation number can be extracted from a Gmail reservation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: log a hotel booking to the user's portfolio. It clearly distinguishes this from sibling tools like add_flight_booking, update_hotel_booking, and delete_hotel_booking by stating the operation type and target resource explicitly.

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

Usage Guidelines4/5

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

It gives concrete sourcing guidance: use hotel_id from search_hotels or get_hotel_availability results. It also explains when to pass trip_id and how that affects grouping with flights. It does not explicitly name alternatives like update_hotel_booking for modifications, but the context strongly implies the intended workflow.

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

add_voucherAInspect

Add a companion/upgrade voucher the user holds to their inventory. Use list_voucher_types to find the voucher_slug. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
referenceNoVoucher code or membership reference.
expires_onNoVoucher expiry date (YYYY-MM-DD).
voucher_slugYesSlug from list_voucher_types, e.g. 'ba-amex-premium-plus-companion'.

TDQS

A4/5.0
Behavior3/5

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

Annotations are all false, giving no safety hints, so the description carries the burden. It states this is a mutation ('Add') but does not disclose side effects, idempotency, failure modes, or what happens if the voucher already exists. The paid note and the prerequisite add some context but not rich behavioral detail; 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.

Conciseness5/5

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

Two sentences with no filler. The core purpose is front-loaded, the prerequisite is given, and the paid caveat is included. Every word earns its place.

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

Completeness4/5

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

For a simple add operation with one required parameter and no output schema, the description covers the essential workflow: what to do, how to get the slug, and that it costs money. Missing details like error handling or return values are minor given the simplicity and the well-specified schema.

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

Parameters3/5

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

Schema description coverage is 75% (3 of 4 params have descriptions including format and examples). The description text adds only the instruction to use list_voucher_types to get the slug, which reinforces the schema rather than adding new meaning. With high schema coverage, baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Add), the resource (companion/upgrade voucher), and the destination (user's inventory). It also distinguishes itself from siblings like 'apply_voucher_to_booking' and 'delete_voucher' by specifying the inventory add purpose, and mentions the prerequisite 'list_voucher_types' for finding the required slug.

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

Usage Guidelines4/5

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

The description provides a concrete prerequisite ('Use list_voucher_types to find the voucher_slug') and explicitly flags it as a paid feature, giving the agent an important usage constraint. However, it does not explicitly state when not to use it or list alternative tools (e.g., 'apply_voucher_to_booking'), so it falls short of full exclusions.

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

apply_voucher_to_bookingAInspect

Apply a held voucher to a flight or hotel booking (e.g. a BA companion voucher onto a flight redemption, or a Barclaycard upgrade voucher onto a Club World leg). Omit booking_id to detach the voucher. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idNoID of the booking to apply the voucher to. Omit to detach.
voucher_idYesID of the user's voucher (from list_my_vouchers).
booking_typeNoWhether booking_id refers to a flight redemption or a hotel booking.

TDQS

A4/5.0
Behavior3/5

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

Annotations provide no hints (all false), so the description bears the full burden. It discloses that the tool can apply or detach a voucher and that it is a paid feature, but does not mention side effects such as reversibility, impact on the booking, or error conditions. For a mutation tool with zero annotation coverage, this is a moderate but incomplete disclosure.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action and followed by the detach condition and paid-feature note. There is no fluff or repetition; every clause contributes to understanding the tool's purpose.

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

Completeness4/5

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

For a relatively simple mutation with 3 parameters and no output schema, the description covers the core use cases: applying and detaching, with examples and a cost condition. It lacks explicit handling of error cases or return values, but those are not always required. The description is mostly complete for an agent to decide when and how to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains all parameters. The description adds some nuance with examples (voucher types) and reiterates the detach behavior for booking_id, but this is largely redundant with the schema. It does not provide additional meaning beyond what the schema offers, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'apply' and the resource 'voucher to a booking', with specific examples (BA companion voucher, Barclaycard upgrade voucher) that differentiate it from generic booking tools. It also distinguishes from sibling tools like add_voucher or delete_voucher by specifying it affects existing bookings. The mention of 'detach' further clarifies its dual purpose.

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

Usage Guidelines4/5

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

The description implies when to use it: when you have a held voucher and want to attach it to a booking or detach it. It gives context with examples and notes it is a paid feature, which is a use condition. However, it does not explicitly compare to alternatives like add_voucher or list_my_vouchers, though the distinction is implied by the tool name and sibling set.

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

assign_bookings_to_tripAInspect

File existing flight and/or hotel bookings under a workspace Trip so the portfolio shows them grouped as one trip. Get the trip id from list_trips / create_trip and booking ids from list_flight_bookings / list_hotel_bookings. Pass an empty array (or omit) for a booking type you're not moving.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTarget workspace Trip id.
hotel_booking_idsNoHotel booking ids to file under the trip.
flight_booking_idsNoFlight redemption ids to file under the trip.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations establish that this is a mutating, non-destructive operation. The description adds context that it groups existing bookings under a trip and affects portfolio display. It does not disclose what happens if a booking is already assigned to another trip, nor any other side effects, but the annotations cover the main safety profile.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, ID sourcing, and optional-parameter handling. The most important information is front-loaded, and there is no redundancy or filler.

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

Completeness4/5

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

For a three-parameter mutation tool with complete schema descriptions and non-destructive annotations, the description covers the essentials: what the tool does, where to get IDs, and how to treat optional arrays. It is slightly incomplete about reassignment behavior and whether calling again with the same bookings has any effect, but nothing blocks an agent from invoking it correctly.

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

Parameters5/5

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

Schema coverage is 100%, yet the description still adds real value by explaining how to source each parameter's values and by clarifying that empty arrays or omission are acceptable for unused booking types. This directly informs correct parameter construction beyond the schema's terse descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "File existing flight and/or hotel bookings under a workspace Trip." It also states the outcome, grouping bookings in the portfolio, which clearly differentiates this tool from adding new bookings or creating trips. The scope is unambiguous.

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

Usage Guidelines4/5

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

The description tells the agent where to get the required IDs: trip id from list_trips / create_trip and booking ids from list_flight_bookings / list_hotel_bookings. It also explains how to handle booking types being moved versus omitted. It does not explicitly name sibling alternatives or exclusion conditions, so it stops short of a 5.

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

audit_hotel_folioB
Read-only
Inspect

Audit a hotel folio for commonly-disputable charges. Supports Marriott, Hilton, Hyatt, and IHG. Returns a finding list with a chain-aware dispute template. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
stay_typeNo
folio_textYes
status_tierNo
confirmation_numberNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful non-obvious context beyond the annotations: the output shape (a finding list with a chain-aware dispute template) and the premium-tier access requirement. It does not disclose edge-case behavior such as handling of unsupported chains or malformed folio text, but the added context is meaningful.

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

Conciseness5/5

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

Three sentences, each earning its place: the core purpose, the supported scope, and the deliverable/access tier. The most important information is front-loaded, with no filler.

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

Completeness3/5

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

The description is sufficient for a basic invocation since the two required parameters (chain and folio_text) are implicitly documented, and the output shape is described despite there being no output schema. However, the three optional parameters remain unexplained at 0% schema coverage, and the relationship to audit_marriott_folio is unaddressed, leaving clear gaps for a tool of this complexity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only partially does. It implicitly documents chain (by listing the four supported chains, matching the enum) and folio_text (by referencing 'hotel folio'), yet stay_type, status_tier, and confirmation_number receive no explanation at all, leaving three of five parameters semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('audit'), a resource ('hotel folio'), and a clear purpose ('commonly-disputable charges'), and enumerates the supported chains (Marriott, Hilton, Hyatt, IHG). It is clear and unambiguous, though it does not explicitly differentiate itself from the sibling audit_marriott_folio, which an agent might reasonably confuse it with.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description never mentions audit_marriott_folio, despite that sibling covering one of the same chains, nor does it state any conditions that would favor one tool over the other. 'Premium tier' hints at an access restriction but does not function as usage guidance.

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

audit_marriott_folioA
Read-only
Inspect

Audit a Marriott Bonvoy folio for commonly-disputable charges (resort fee on award stays, parking double-billing, destination fee, internet). Returns a finding list with a dispute template. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
stay_typeNo
folio_textYes
status_tierNo
confirmation_numberNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive behavior. The description adds that the tool returns a finding list with a dispute template and notes the premium-tier requirement, which is useful beyond the annotations. It does not conflict with the readOnlyHint or describe unwarranted side effects.

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

Conciseness5/5

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

Two compact sentences carry scope, examples, and output in a front-loaded way; 'Premium tier' is the only separate fragment. There is no repetition of schema fields or annotation information.

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

Completeness3/5

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

For a read-only audit tool, the description covers the resource, purpose, and high-level return shape. Gaps remain: no parameter semantics for three optional fields, no explicit distinction from audit_hotel_folio beyond the brand name, and no output schema to make the 'finding list' structure precise.

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

Parameters2/5

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

With 0% schema description coverage, the description needed to compensate, but it only implicitly covers folio_text via 'folio' and hints at stay_type through 'award stays'. status_tier and confirmation_number are never mentioned, and there is no guidance on how the optional enums affect the audit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('audit'), a clearly bounded resource ('Marriott Bonvoy folio'), and identifies the exact class of charges it examines. The examples and return description make it distinct from the sibling audit_hotel_folio by brand and specialized scope.

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

Usage Guidelines3/5

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

The description implies the use case: auditing a Marriott Bonvoy folio for disputable charges. It does not explicitly state when to prefer this over audit_hotel_folio, nor does it give exclusions or conditions such as 'for non-Marriott folios use audit_hotel_folio'. That leaves the routing decision to inference.

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

calculate_flight_earningsA
Read-only
Inspect

Estimate the ELITE-QUALIFYING points a flight earns toward status — British Airways Tier Points, Air France/KLM Flying Blue XP, or American AAdvantage Loyalty Points — plus the great-circle distance. Answers 'how many tier points is LHR–JFK in business?' and 'how many BA tier points for a £600 fare?'. Tier Points and Loyalty Points are revenue-based (pass fare_price); Flying Blue XP is fixed per segment by distance + cabin. Use program slugs: 'british-airways-executive-club', 'air-france-klm-flying-blue', 'american-aadvantage'.

ParametersJSON Schema
NameRequiredDescriptionDefault
cabinNoCabin: economy, premium, business, or first.economy
originYesOrigin airport IATA code, e.g. 'LHR'.
programYesQualifying program slug: 'british-airways-executive-club', 'air-france-klm-flying-blue', or 'american-aadvantage'.
segmentsNoNumber of flight segments/legs (multiplies Flying Blue XP). Default 1.
fare_priceNoFare price for revenue-based programs (BA Tier Points, AA Loyalty Points). Base fare + carrier surcharges, excluding taxes.
destinationYesDestination airport IATA code, e.g. 'JFK'.
fare_currencyNoISO currency of fare_price (e.g. GBP, USD, EUR). Defaults to the program's home currency.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral distinctions between revenue-based and distance-based earning and commits to returning great-circle distance. It doesn't describe output shape, rounding, or exactness, but for a non-mutating estimator with read-only annotation, that is a minor gap.

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

Conciseness5/5

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

Three compact sentences; the core purpose and supported programs are front-loaded, followed by usage examples and provider slug guidance. No filler or restatement of schema details.

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

Completeness4/5

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

Given 7 parameters, 3 program-specific calculation rules, and no output schema, the description is nearly sufficient: it covers the inputs that matter, the program slugs, and the main output (points + distance). It could add a note that returned values are estimates and maybe rounding, but those are not required for an agent to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the description doesn't need to repeat definitions. It adds meaning by tying fare_price and segments to specific programs ('revenue-based (pass fare_price)' and 'Flying Blue XP is fixed per segment'), and gives program slugs and currency examples. This is a meaningful increment over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Estimate'), a precise resource (elite-qualifying points a flight earns toward status), and the return of great-circle distance. It gives concrete example questions and names the exact programs, so an agent can identify what it computes. However, it never names a sibling such as get_earning_rates or get_program_rates, so differentiation from those is implicit rather than explicit.

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

Usage Guidelines4/5

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

It gives clear conditional usage: pass fare_price for revenue-based BA/AA programs, while Flying Blue XP is fixed per segment by distance and cabin. The example questions ('LHR–JFK in business?', '£600 fare?') establish realistic invocation contexts. It stops short of saying 'use X instead when...' or listing exclusions, so it provides clear context without explicit alternatives.

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

cancel_route_monitorA
Destructive
Inspect

Cancel an active route monitor by ID. Cancelled monitors stop firing but are preserved for history.

ParametersJSON Schema
NameRequiredDescriptionDefault
monitor_idYes

TDQS

A4.1/5.0
Behavior5/5

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

The description goes well beyond the annotations by adding specific post-invocation behavior: 'Cancelled monitors stop firing but are preserved for history.' This clarifies that despite destructiveHint=true, the data is not deleted and remains available historically. This is valuable context that the annotations alone do not provide.

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

Conciseness5/5

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

Two short sentences with no filler. The action is front-loaded and the key behavioral nuance about preservation is stated as a separate clarifying clause. Every word earns its place.

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

Completeness4/5

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

For a single-parameter mutation tool with no output schema, the description covers the precondition (active), the action (cancel by ID), and the outcome (stops firing, preserved). It is nearly complete, though it could have mentioned how to discover the monitor_id via list_route_monitors or what happens for unknown IDs.

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

Parameters2/5

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

With 0% schema description coverage, the description is the only source of parameter meaning, but it only says 'by ID.' It does not explain where monitor_id comes from, what constitutes a valid monitor_id, or what happens if an invalid or already-cancelled ID is supplied. This leaves the agent to infer too much for the sole parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Cancel') and names the precise resource ('route monitor'), with an explicit identifying scope ('by ID'). It also differentiates the behavior from related sibling tools by explaining that cancelled monitors stop firing but remain preserved, making it distinct from a delete operation or an update.

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

Usage Guidelines3/5

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

The phrase 'active route monitor' establishes a clear precondition, and the consequence 'stop firing' explains what happens after the call. However, it does not explicitly mention alternatives, such as using update_route_monitor to modify a monitor or list_route_monitors to find a monitor ID, leaving some routing to the agent implicit.

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

cancel_standing_orderA
Destructive
Inspect

Stop a standing order by ID so it no longer runs. The record is kept, including its last result.

ParametersJSON Schema
NameRequiredDescriptionDefault
standing_order_idYes

TDQS

A4/5.0
Behavior4/5

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

The annotations say destructiveHint=true, but the description adds a valuable nuance: the record and its last result are preserved. This clarifies the real impact of the cancellation beyond the generic destructive hint and helps the agent set expectations.

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

Conciseness5/5

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

Two short sentences convey the action, the consequence, and the retention behavior with no filler. The most important information is front-loaded.

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

Completeness4/5

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

For a simple one-parameter cancellation action, the description tells the agent what happens and what is preserved. It could mention error behavior or the source of the ID, but the tool's low complexity makes the definition reasonably complete.

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

Parameters3/5

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

The single parameter standing_order_id is mentioned indirectly through 'by ID', but the description adds little beyond the schema's property name and type. With 0% schema description coverage, there is minimal compensation, though the parameter is simple and self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Stop') with a clear resource ('standing order by ID') and states the outcome ('so it no longer runs'). It also clarifies the record is retained, which distinguishes it from deletion tools and other standing-order operations.

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

Usage Guidelines3/5

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

The description implies the right context: use this when you want a standing order to stop running but still keep its history. However, it does not explicitly name alternatives like list_standing_orders or explain when not to use this tool, leaving some inference to the agent.

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

cards_analyze_spendingA
Destructive
Inspect

Given a breakdown of the user's monthly spending, estimate annual rewards for each card and rank them. Includes net annual fee after benefit credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax cards to return (default 10).
regionNoRegion of cards to evaluate. Defaults to US.
card_typeNo
monthly_spendingYesArray of {category, amount} for the user's typical monthly spend. Amounts in the local currency of the chosen region.

TDQS

A3.5/5.0
Behavior2/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description does not disclose any side effects or confirm whether this tool modifies data. It only describes an estimation and ranking process, which seems inconsistent with the destructive hint. The description adds no behavioral context beyond what annotations provide, leaving ambiguity about side effects.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose and mentions the net annual fee inclusion. It is concise with no redundant information.

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

Completeness3/5

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

The tool has 4 parameters and no output schema, so the description should clarify the return format. It states that it ranks cards and includes net annual fee, which gives some idea, but it does not mention the default region or the optional limit and card_type parameters. It also fails to address the destructive hint from annotations, leaving potential side effects unclarified.

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

Parameters3/5

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

The schema covers 75% of parameters with descriptions (limit, region, monthly_spending), but card_type lacks a description. The tool description does not elaborate on any parameter, merely referencing 'monthly spending' which matches the required parameter. It adds no meaning beyond the schema, so it does not compensate for the missing card_type description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: given monthly spending, it estimates annual rewards for each card and ranks them. It also mentions including net annual fee after benefit credits, which adds specificity. This distinguishes it from siblings like cards_compare_cards and cards_rank_welcome_bonuses by focusing on annual rewards ranking based on spending.

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

Usage Guidelines3/5

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

The description implies usage when the user has monthly spending data and wants to see which card yields the best annual rewards. However, it does not explicitly state when to use this tool versus alternatives like cards_compare_cards or cards_find_cards_for_category, nor does it provide any exclusions or conditions for alternative tools.

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

cards_compare_cardsA
Destructive
Inspect

Compare 2–4 cards side by side: annual fees, welcome bonuses, top multipliers, and total benefit credits. Pass card ids from list_cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesCard ids to compare, e.g. ["amex-gold-us", "chase-sapphire-preferred"].

TDQS

A3.8/5.0
Behavior1/5

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

The annotations declare destructiveHint=true, implying the operation may modify or destroy state, while the description describes a pure comparison operation that reads cards side by side. This is a direct contradiction between the described behavior and the annotation, and no additional context is provided to resolve it.

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

Conciseness5/5

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

Two sentences with no filler: the core function and scope are front-loaded, and the data-source instruction is compact and directly actionable.

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

Completeness4/5

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

For a single-parameter comparison tool, the description provides enough detail about what to pass and what dimensions are compared. The absence of an output schema is acceptable, but the contradiction with the destructive hint prevents a perfect completeness score.

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

Parameters4/5

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

The schema already documents the ids array with min/max constraints and an example. The description adds the practical instruction to source ids from list_cards, which helps the agent construct valid input beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the verb 'Compare' and names the resource ('2–4 cards') plus the specific comparison dimensions (annual fees, welcome bonuses, top multipliers, total benefit credits). It also names the data source (list_cards), making it clearly distinct from sibling card tools like cards_rank_welcome_bonuses.

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

Usage Guidelines4/5

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

The description gives clear invocation context by instructing the agent to pass card ids from list_cards and by enumerating the exact comparison dimensions. It does not explicitly mention alternatives or when not to use the tool, but the purpose is clear enough to guide selection.

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

cards_find_cards_for_categoryB
Destructive
Inspect

Find cards with the best earning multiplier for a spend category (e.g. "dining", "groceries", "petrol", "travel"). Returns cards sorted by multiplier descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10).
regionNo
categoryYesSpend category — supports UK/AU terms like "petrol", "chemist", "woolworths".
card_typeNo
min_multiplierNoOnly return cards at or above this multiplier.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate openWorldHint=true and destructiveHint=true, suggesting the tool may have side effects or return broad results, but the description does not explain these. No mention of caching, data sources, or potential mutation behavior. The description is silent on behavioral nuances; only order by multiplier is mentioned.

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

Conciseness4/5

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

Description is two sentences, concise, and front-loads the core purpose. No fluff, but it ends with sorting detail that could be merged with first sentence. Overall efficient.

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

Completeness3/5

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

With no output schema and moderate param coverage, the description covers the main use case but misses potential filters (region, card_type) and does not clarify open-world or destructive hints. For a search tool, it is usable but not fully complete.

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

Parameters3/5

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

Schema has 60% coverage, with descriptions for category, limit, and min_multiplier, but not for region and card_type. The description adds context that category supports UK/AU terms, which is covered in schema, but does not add much beyond schema. Region and card_type enums are self-explanatory, so baseline 3 is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool finds cards with best earning multiplier for a spend category, with specific examples. Distinguishes from sibling tools like cards_compare_cards (comparison) and cards_analyze_spending (analysis).

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

Usage Guidelines3/5

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

Description implies usage for finding top earning cards per category, but does not explicitly mention when to use this vs cards_compare_cards or cards_list_cards. No exclusions or alternatives given, though purpose is clear enough for moderate guidance.

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

cards_find_transfer_programs_for_airlineC
Destructive
Inspect

Find which transferable points programs can transfer to a given airline or hotel. Optionally filter by region to see locally relevant programs.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoFilter to programs from a specific region.
partner_nameYesAirline or hotel name, e.g. "Qantas", "Virgin Atlantic", "Hyatt".

TDQS

C2.9/5.0
Behavior1/5

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

The description describes a read-only lookup ('Find which...'), but the annotations declare destructiveHint=true and readOnlyHint=false. This is a direct annotation contradiction, so the description fails to provide a consistent behavioral profile.

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

Conciseness5/5

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

Two tight sentences with no filler. The first states the core function, the second adds the optional region filter, and the wording is front-loaded and directly actionable.

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

Completeness3/5

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

This is a simple two-parameter lookup, and the description conveys the intended inputs and optional filter. However, with no output schema, no usage guidance, and an annotation contradiction, an agent is not fully equipped to know the response shape or when to choose this tool over siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds very little beyond the schema: it restates 'airline or hotel' and mentions the region filter, but provides no additional formatting, matching, or default behavior details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Find which transferable points programs can transfer to a given airline or hotel') and an optional region filter, so an agent can tell what resource is queried. However, it does not explicitly distinguish this from sibling tools like cards_list_transfer_partners or find_transfer_paths.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. Nearby sibling tools such as cards_list_transfer_partners, find_transfer_paths, and compare_transfer_options exist, but the description does not explain how this one differs or when it should be preferred.

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

cards_get_cardB
Destructive
Inspect

Get full details for a single card, including all multipliers, all benefits, welcome bonus, and source URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCard id, e.g. "amex-gold-us". Use list_cards to discover ids.

TDQS

B3.3/5.0
Behavior1/5

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

The annotations declare destructiveHint=true, while the description describes a pure read operation ("Get full details"). This is a direct contradiction, making the tool's safety profile untrustworthy. No other behavioral traits are disclosed, and the contradiction prevents the description from providing reliable context.

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

Conciseness5/5

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

The description is one front-loaded sentence with no filler. Every clause adds specific information about what details are returned, making it efficient and well-structured.

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

Completeness3/5

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

For a one-parameter getter, the description covers the operation, object, and key return content, which is mostly sufficient. However, the contradictory destructiveHint annotation and the lack of any note about safety or return format leave the overall definition internally inconsistent.

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

Parameters3/5

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

The single parameter is fully covered by the schema, including an example value and guidance to use list_cards to discover ids. The description adds no parameter-specific semantics beyond indicating the id selects a single card, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and object: "Get full details for a single card," and enumerates the delivered content (multipliers, benefits, welcome bonus, source URL). This clearly distinguishes it from list, compare, and rank sibling tools.

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

Usage Guidelines3/5

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

The main description gives no explicit when-to-use guidance, but the id parameter's schema description provides a useful workflow cue: "Use list_cards to discover ids." This implies this tool is the detail-retrieval step after listing, but it does not explicitly exclude alternatives like cards_compare_cards.

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

cards_list_cardsA
Destructive
Inspect

List credit cards in the database. Returns compact summaries (id, fees, welcome bonus value, top multipliers). Use get_card for full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoFilter by region/country.
providerNoFilter by issuer.
card_typeNoFilter by personal vs business.

TDQS

A3.5/5.0
Behavior1/5

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

The description presents the operation as a harmless read-only listing, but annotations mark destructiveHint=true and readOnlyHint=false, implying a destructive or mutating effect. The description neither acknowledges nor explains this, and it directly contradicts the destructive annotation by framing the tool as a simple 'List' operation. This is a clear annotation contradiction.

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

Conciseness5/5

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

Two sentences with no filler: the first states the action and scope, the second summarizes the return payload and routes to the full-detail sibling. Information is front-loaded and every sentence earns its place.

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

Completeness3/5

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

The return summary fields are listed, the main alternative is named, and filters are covered by the schema. However, the destructiveHint=true annotation introduces serious ambiguity that the description does not resolve, and with no output schema or pagination/limit guidance, the description is not fully complete for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with all three optional filter parameters already documented (region, provider, card_type). The description adds no additional parameter-level meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pairing ('List credit cards in the database') and clearly differentiates from cards_get_card by stating it returns compact summaries and pointing to get_card for full details. This leaves no ambiguity about what the tool does or how it relates to the closest sibling.

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

Usage Guidelines4/5

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

It explicitly directs agents to use `get_card` when full details are needed, providing a clear alternative. It does not enumerate other sibling distinctions (e.g., when to use cards_find_cards_for_category), but the core routing guidance is present and actionable.

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

cards_list_changesB
Destructive
Inspect

List recent card data changes (welcome bonus updates, fee changes, multiplier edits). Useful for "what changed recently?" queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook back this many days (default 30).
limitNoMax results (default 50).
card_idNoFilter to changes for one card.

TDQS

B3.3/5.0
Behavior1/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, yet the description says 'List recent card data changes', which strongly implies a read-only operation. The description does not disclose any destructive behavior and directly contradicts the annotations, creating a serious risk that an agent misjudges the tool's side effects.

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

Conciseness4/5

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

The description is compact and front-loaded: the first sentence states the action and resource, and the second supplies a natural-language use case. The phrase 'what changed recently?' is somewhat redundant with 'recent' and 'changes', but it still helps an agent recognize matching queries.

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

Completeness2/5

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

The tool has no output schema, and the description only says 'list' without describing the shape or content of results beyond the examples of change types. More importantly, the destructive annotation is left unexplained, so an agent cannot tell whether invoking this tool mutates data. This is a significant completeness gap.

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

Parameters3/5

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

The input schema already provides complete descriptions for all three parameters (days, limit, card_id), including defaults and filtering semantics. The description adds little beyond the word 'recent', but because schema coverage is 100%, no compensatory parameter detail is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the action 'List recent card data changes' and enumerates the domain via examples such as welcome bonus updates, fee changes, and multiplier edits. This clearly identifies the card-data-changes resource and distinguishes it from sibling tools like cards_list_cards or cards_analyze_spending.

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

Usage Guidelines4/5

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

The description explicitly says it is useful for 'what changed recently?' queries, which gives an agent a concrete trigger for choosing this tool. However, it does not provide when-not-to-use guidance or name alternative tools, so it misses the explicit exclusions needed for a 5.

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

cards_list_transfer_partnersB
Destructive
Inspect

List transferable points programs and their airline/hotel partners. Region filter shows programs relevant to that market (e.g. region=UK shows UK Amex MR, Barclaycard, HSBC).

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoFilter to programs from a specific region.
providerNoFilter to one provider, e.g. "amex" or "anz".
partner_typeNo

TDQS

B3.4/5.0
Behavior1/5

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

The description says 'List', implying a read-only operation, while annotations declare destructiveHint=true and readOnlyHint=false. This is a direct contradiction. The description also provides no behavioral detail that would explain any side effects or state changes, so the agent is left with conflicting signals.

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

Conciseness5/5

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

Two sentences with no filler. The main action is front-loaded, and the region example is concrete and useful. Every word contributes.

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

Completeness2/5

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

For a list tool with no output schema, the description gives a reasonable overview, but it completely omits any mention of the destructive/read-write behavior implied by the annotations. It also doesn't describe response format or what happens when filters are combined. The contradiction makes the context incomplete and potentially misleading.

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

Parameters3/5

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

The description adds real meaning to the region parameter with an example, but provider is already documented in the schema and partner_type is left to its enum values. With schema description coverage at 67%, the description partially compensates but does not fully describe all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List') and resource ('transferable points programs and their airline/hotel partners'), which makes the tool's function immediately clear. It also differentiates from nearby siblings like cards_find_transfer_programs_for_airline by focusing on listing programs and partners rather than finding a transfer path.

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

Usage Guidelines4/5

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

The description gives clear context for when the region filter is useful, including a concrete example. It does not explicitly state when to prefer this tool over siblings like cards_find_transfer_programs_for_airline or compare_transfer_options, but the listing intent is clear enough for basic routing.

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

cards_rank_welcome_bonusesC
Destructive
Inspect

List current welcome bonuses sorted by point/mile value descending. Optionally filter by spend achievability.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20).
regionNo
card_typeNo
min_valueNoMinimum bonus point/mile value.
monthly_spendNoMonthly spend in the card's local currency. If provided, only includes bonuses where required spend ≤ monthly_spend × months.

TDQS

C2.7/5.0
Behavior1/5

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

The description presents a read-only listing operation, but annotations mark it as not read-only and destructive (readOnlyHint=false, destructiveHint=true). That is an annotation contradiction, and the description provides no caveat or explanation. It also does not mention what is returned for each bonus or how pagination behaves.

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

Conciseness5/5

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

The description is a single front-loaded sentence that moves immediately from action to resource to sort order, with no filler or repetition.

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

Completeness2/5

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

For a 5-parameter tool with no output schema, the description gives no sense of the return fields, and the contradictory destructive annotation is unresolved. The optional filters and the dynamic 'current' nature (openWorldHint) are partially covered, but the missing output shape and safety ambiguity leave a substantial gap.

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

Parameters3/5

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

With 60% schema coverage, the description usefully reinforces the point/mile value theme and the spend achievability filter, aligning with min_value and monthly_spend. However, region and card_type have no schema descriptions and the description does not clarify them, and 'spend achievability' is vaguer than the schema's monthly_spend formula.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource ('current welcome bonuses'), a concrete action ('List'), and a clear ordering ('sorted by point/mile value descending'). It is unambiguous, but it never explicitly separates itself from sibling tools such as cards_list_cards or cards_compare_cards, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

The only usage hint is the optional spend filter; the description does not say when to choose this tool over siblings like cards_compare_cards or cards_find_cards_for_category, and it gives no exclusions or situational guidance. This leaves the agent to infer the intended use case from the name.

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

compare_transfer_optionsA
Read-only
Inspect

Decide which points to use for a specific redemption. Given a target loyalty program and how many points it costs, ranks every transfer route from the user's own balances by real cash cost (cents-per-point), including multi-hop routes, active transfer bonuses, and how long each transfer takes to post. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
points_neededYesHow many target-program points the redemption costs
target_programYesThe program you need points in (e.g. 'Asia Miles', 'Avios', 'Aeroplan', 'Virgin Points')

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral details beyond that: it ranks by real cash cost, includes multi-hop routes, active bonuses, and transfer posting times. This gives agents useful expectations about what the tool computes, though it does not describe output format or edge cases.

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

Conciseness5/5

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

The description is two sentences, front-loaded with purpose and then details. Every phrase adds value: the ranking criteria, inclusion of multi-hop and bonuses, and the premium tier note. No redundancy or fluff.

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

Completeness4/5

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

For a read-only tool with clear inputs and no output schema, the description covers the core behavior: what it ranks, the criteria, and the inputs. It omits details like return format or pagination, but the annotations cover safety and the purpose is clear. Given the tool's complexity, it is reasonably complete.

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

Parameters3/5

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

Schema description coverage is 100% with clear explanations for both points_needed and target_program. The description does not add much beyond confirming their role in the ranking, so it meets the baseline of 3 without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: deciding which points to use for a specific redemption. It specifies inputs (target program and points needed) and outputs (ranking of transfer routes by cost). It distinguishes itself from siblings like find_transfer_paths by emphasizing cost ranking and decision-making, not just path discovery.

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

Usage Guidelines4/5

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

The description implies usage context: when you need to choose among transfer options for a given redemption. It mentions 'Premium tier', indicating a prerequisite. However, it does not explicitly state alternatives or when not to use it, such as pointing to find_transfer_paths for just listing routes without cost analysis.

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

connect_integrationAInspect

Initiate the OAuth flow to connect an external integration. Returns the authorize URL; the user must open it in a browser to grant access. Use this when a tool returns connection_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYesWhich integration to connect

TDQS

A4.5/5.0
Behavior5/5

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

Beyond what the annotations state, the description reveals that the tool alone does not complete the connection: it returns a URL the user must open in a browser to grant access. It also discloses the initiating side effect and the dependency on a connection_required state.

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

Conciseness5/5

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

Three short, purposeful sentences: action and resource, return value/user step, and trigger condition. There is no redundant or filler content.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description covers the invocation trigger, the return value, and the required user action. An agent has what it needs to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and the single provider parameter already has an enum and a description. The tool description adds no meaningful parameter semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Initiate the OAuth flow') and a clear resource ('external integration'), and states it returns the authorize URL. This clearly distinguishes it from sibling tools like disconnect_integration and list_integrations.

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

Usage Guidelines4/5

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

The description explicitly gives a trigger condition: 'Use this when a tool returns connection_required.' This is strong context, but it does not mention when not to use the tool or name alternatives such as disconnect_integration or list_integrations.

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

create_route_monitorAInspect

Create a saved route monitor. ATF checks every 6 hours for award seats matching the route + window + cabin and emails when fresh availability appears. Free accounts get one monitor; Premium is unlimited.

ParametersJSON Schema
NameRequiredDescriptionDefault
cabinNo
originYes
airlinesNoOptional airline filter; omit to watch all supported carriers
max_pointsNoOnly fire when points <= this cap
passengersNo
destinationYes
latest_dateYes
earliest_dateYes

TDQS

A3.7/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: the 6-hour check cadence, email notification behavior, and the free/Premium account limit. It does not define what 'fresh availability' means or what happens if the user exceeds the monitor limit, but it provides substantial insight into how the tool behaves.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, followed by high-value behavioral and account-limit context. There is no filler or redundant restating of schema details.

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

Completeness2/5

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

Given 8 parameters, 4 required fields, low schema coverage, and no output schema, the description is too thin. It omits parameter-level semantics, the meaning of 'fresh availability', duplicate/limit behavior, and what the operation returns or whether it can be reversed.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description must compensate, but it only groups concepts as 'route + window + cabin' and does not explain origin/destination format, date format, max_points, passengers, or airlines. It is also slightly misleading because cabin is optional in the schema yet described as a standard matching criterion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a saved route monitor') and explains the monitor's ongoing behavior: checking every 6 hours, matching route/window/cabin, and emailing on fresh availability. This clearly distinguishes it from related siblings like update_route_monitor, cancel_route_monitor, and list_route_monitors.

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

Usage Guidelines3/5

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

The usage is implied: use this when the user wants a saved monitor for award seats, rather than a one-time search. However, it does not explicitly name alternatives or state when not to use this tool versus search_availability or fs_create_seat_alert.

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

create_standing_orderAInspect

Save a recurring instruction ATF runs for the user unattended, then emails the result. Use for anything the user wants checked repeatedly without asking — e.g. 'every Sunday check whether LHR-NRT business opens on any programme I hold points for' or 'each morning tell me if any of my tracked bookings dropped in price'. Write prompt as a complete, self-contained instruction: it runs with no conversation history, so name the routes, programmes, cabins and dates explicitly. Premium only.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe self-contained instruction to run each time. No conversation context is carried over.
cadenceNoDefaults to weekly.
trip_idNoOptional trip to file this order under.
run_hourNoHour of day in UTC to run. Defaults to 7.
run_weekdayNo0=Sunday … 6=Saturday. Weekly cadence only. Defaults to Monday (1).

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the sparse annotation block, the description discloses meaningful behaviors: the order runs unattended, the result is emailed, the prompt executes with no conversation history, and the feature is Premium-only. These are exactly the operational constraints an agent needs and the annotations alone do not provide.

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

Conciseness5/5

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

The description is front-loaded with the core action and then uses two illustrative examples that directly clarify the prompt requirement. Every sentence earns its place, and the 'Premium only' restriction is included without padding.

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

Completeness4/5

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

For a creation tool with 5 parameters and no output schema, it covers the essential context: what the order does, how the result is delivered, prompt requirements, and access restriction. It does not describe the immediate API return value, which would have made it fully complete.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value on top by explaining how to write the required prompt: complete, self-contained, explicitly naming routes/programmes/cabins/dates. This is genuinely useful guidance beyond the schema's short 'self-contained instruction' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Save a recurring instruction'), the resource (a standing order ATF runs), and the behavior ('then emails the result'). It is easily distinguished from siblings like cancel_standing_order and list_standing_orders by focusing on creation and the recurring, unattended execution model.

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

Usage Guidelines4/5

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

It gives clear usage context: 'Use for anything the user wants checked repeatedly without asking', plus two concrete examples that help an agent recognize the right scenario. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

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

create_tripAInspect

Create a new trip (a project workspace grouping chats, searches, monitors, and bookings). Free accounts get one active trip; additional active trips require Premium.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTrip name, e.g. 'Tokyo with the family'
end_dateNo
start_dateNo
destinationNoPrimary destination (city or airport)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already signal a non-read-only, non-idempotent mutation. The description adds useful behavioral context by explaining what a trip contains and the active-trip limit. It does not disclose what happens when the limit is exceeded, whether duplicate names are allowed, or what the response will look like.

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

Conciseness5/5

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

The description is a single concise sentence. It front-loads the action, gives a compact clarifying definition, and includes a relevant account-limit caveat with no redundant wording.

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

Completeness3/5

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

For a simple create operation without an output schema, the description explains the resource and one business rule. Still, it omits the return value, failure behavior when the active-trip limit is hit, and how this tool relates to post-creation steps such as assign_bookings_to_trip.

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

Parameters2/5

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

Schema coverage is only 50%, with start_date and end_date lacking descriptions. The tool description does not compensate by explaining any parameters; it only clarifies the trip concept and account limit. Name and destination are described in the schema, but the date parameters receive no added semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a new trip', and defines the resource as 'a project workspace grouping chats, searches, monitors, and bookings.' This definition distinguishes create_trip from related siblings like list_trips, delete_trip, and plan_trip.

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

Usage Guidelines3/5

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

The description implies when to use the tool—when a new project workspace is needed—and adds a concrete constraint about free accounts having one active trip with extra trips requiring Premium. However, it does not explicitly mention alternatives or conditions where another tool should be used instead.

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

delete_flight_bookingA
Destructive
Inspect

Cancel or remove a tracked flight booking. Use this when the user says the flight is cancelled, superseded, no longer happening, or asks to remove/archive it.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already carry destructiveHint=true and readOnlyHint=false; the description adds the trigger scenarios and the 'tracked' qualifier. It does not disclose side effects (e.g., impact on trips, reversibility), so it adds modest value beyond annotations.

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

Conciseness5/5

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

Two sentences, no fluff, action first then usage conditions. Every phrase carries information.

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

Completeness4/5

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

The tool is simple (one required param, no output schema), and the description covers what triggers it and what it acts on. It omits side effects or confirmation behavior, but the destructive annotation partially covers the risk profile.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to explain how to identify the booking, but it never mentions booking_id or provides any additional parameter context. The single parameter is only documented by its name and integer type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific operation (cancel/remove) and resource (tracked flight booking), with concrete trigger examples ('cancelled, superseded, no longer happening'). Clearly distinguishable from sibling delete_hotel_booking or delete_trip.

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

Usage Guidelines4/5

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

Provides explicit user-intent conditions ('when the user says...') that trigger this tool. Does not name alternatives or exclusions, so not a full 5, but the guidance is clear and actionable.

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

delete_hotel_bookingA
Destructive
Inspect

Remove a tracked hotel booking from the user's portfolio. Use when the trip is cancelled or the booking was added by mistake.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description is not required to restate the destructive nature. It adds some context ('tracked', 'portfolio') and the reason for use, but does not disclose additional behavioral traits such as irreversibility, cascading effects, or success/return behavior.

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

Conciseness5/5

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

Two short sentences convey both the operation and the usage context with no filler. The core action is front-loaded, and every clause earns its place.

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

Completeness4/5

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

For a single-parameter destructive tool with clear annotations, the description covers purpose, target, and usage scenarios. It does not specify side effects on related trips or bookings, but that level of detail is not essential for invoking this tool correctly given its simplicity and the annotation profile.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining booking_id. It never explicitly mentions the parameter, how to obtain it, or what it references beyond the general notion of a 'tracked hotel booking.' The property name and integer minimum do some work, but the description fails to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Remove') with a clear resource ('tracked hotel booking') and scope ('from the user's portfolio'). This clearly distinguishes it from related siblings like delete_flight_booking or delete_trip, and the first sentence fully states the operation.

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

Usage Guidelines4/5

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

The description explicitly states when to use it: 'when the trip is cancelled or the booking was added by mistake.' It does not explicitly name alternatives or exclusion cases, but for a single-purpose delete tool tied to one resource, the usage context is clear and sufficient.

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

delete_lounge_visitA
Destructive
Inspect

Remove a lounge visit you previously logged with log_lounge_visit. Use list_lounge_visits to find the visit id. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
visit_idYesId of the logged visit, from list_lounge_visits.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, so the destructive nature is known. The description adds useful context beyond annotations: it is a 'Paid feature' (cost/authorization implication) and only affects visits the user logged, not shared records. It does not detail irreversibility, but that is already signaled by destructiveHint.

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

Conciseness5/5

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

Three short sentences, each contributing: the action, how to find the id, and the paid-feature caveat. No filler or restatement of the tool name.

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

Completeness5/5

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

For a one-parameter destructive operation with no output schema, the description plus annotations fully equip the agent: it names the action, the source of the id, the prerequisite, and the paid restriction. Nothing important appears missing for correct invocation.

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

Parameters3/5

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

The schema already describes visit_id as 'Id of the logged visit, from list_lounge_visits,' covering 100% of parameters. The description reinforces this by telling the agent to use list_lounge_visits to find the id, but adds no new semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Remove') and resource ('lounge visit'), and ties it to a prior action ('previously logged with log_lounge_visit'), so an agent knows exactly what this tool does. It clearly distinguishes from logging and listing, though it doesn't address the similarly named sibling lounge_delete_visit.

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

Usage Guidelines4/5

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

Gives explicit instruction to call list_lounge_visits to obtain the visit_id, showing the prerequisite step. It also scopes usage to visits 'previously logged with log_lounge_visit,' implying it is not for arbitrary lounge records. However, it does not mention the near-duplicate sibling lounge_delete_visit or state when to prefer one over the other.

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

delete_loyalty_statusA
Destructive
Inspect

Remove a tracked elite/loyalty status (e.g. when it lapses and the user doesn't want to renew it).

ParametersJSON Schema
NameRequiredDescriptionDefault
programYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, covering the safety profile. The description adds the context that the action targets a 'tracked' status and offers a concrete example, but does not elaborate on consequences (e.g., irreversibility, impact on related data). With annotations in place, this is acceptable but not richer.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the core action, includes a useful example, and contains no redundant words. It is appropriately concise and well-structured.

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

Completeness2/5

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

For a destructive operation with an undocumented parameter, the description is under-specified. The lack of any explanation of 'program' is a significant omission, and the description does not cover prerequisites or side effects, making it incomplete for safe and correct usage.

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

Parameters1/5

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

The schema has one required parameter 'program' with no description (coverage 0%). The description does not mention this parameter at all, providing no guidance on what values it expects (e.g., program name). The description completely fails to compensate for the schema gap, leaving the agent without essential information to call the tool correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Remove') and resource ('a tracked elite/loyalty status'), and includes an example of when to use it ('when it lapses and the user doesn't want to renew it'). This unambiguously identifies the tool's purpose and distinguishes it from sibling tools like set_loyalty_status.

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

Usage Guidelines4/5

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

The description provides a specific usage scenario ('when it lapses...'), giving clear context for when to invoke the tool. However, it does not explicitly contrast with alternatives (e.g., 'use set_loyalty_status to add/update') or state when not to use it, missing an opportunity to fully differentiate from siblings.

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

delete_points_balanceA
Destructive
Inspect

Remove a loyalty program from your points balances — e.g. you closed the account or added it by mistake. Use the program name as shown by list_points_balances. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
programYesLoyalty program name to remove (as shown by list_points_balances)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds useful context like 'Paid feature' and real-world scenarios, but does not disclose what happens beyond the removal, such as whether the deletion is permanent or affects related data.

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

Conciseness5/5

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

Two sentences with no filler. The core action is stated first, followed by practical examples, the source for the parameter value, and the paid-feature warning. Every sentence earns its place.

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

Completeness5/5

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

For a simple one-parameter destructive tool with full schema coverage and annotations, the description covers what, when, how to identify the program, and the paid constraint. No output schema exists, so explaining return values is unnecessary.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents 'program' as the loyalty program name as shown by list_points_balances. The description mostly restates this same guidance, so it adds no significant new parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb 'Remove' and resource 'loyalty program from your points balances', immediately distinguishing it from updating or listing balances. The examples clarify exactly what kind of removal is intended.

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

Usage Guidelines4/5

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

Gives clear context on when to use the tool ('closed the account or added it by mistake') and tells the agent to reference list_points_balances for the program name. It does not explicitly mention when not to use it or point to update_points_balance as an alternative, so it stops short of a 5.

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

delete_tripA
Destructive
Inspect

Archive a trip, or delete it permanently. Archiving keeps the trip and its itinerary but frees the active-trip slot; bookings, monitors and chats filed under it are always kept and simply unfiled.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTrip id to remove. Use list_trips to find it.
permanentlyNoDelete the trip and its itinerary for good instead of archiving. Defaults to false.

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description goes further by explaining that archiving keeps the trip and itinerary, and that bookings, monitors, and chats are always preserved and simply unfiled. It also clarifies that permanent deletion removes the itinerary for good, adding meaningful behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and every clause adds decision-relevant information about the two deletion modes. There is no filler or redundant restating of the tool name.

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

Completeness4/5

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

For a destructive tool with two modes, the description explains both outcomes and the fate of associated records, and the schema covers the parameters. It does not describe return values or error behavior, but with no output schema and only two simple parameters, it is largely sufficient.

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

Parameters3/5

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

The schema already documents both parameters fully, including the default false for permanently. The description reinforces the permanently semantics but adds little beyond what the input schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Archive a trip, or delete it permanently') and clarifies the two modes. It does not explicitly differentiate from sibling deletion tools, but the trip scope is evident.

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

Usage Guidelines4/5

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

It gives clear context for choosing between archiving and permanent deletion: archiving frees the active-trip slot while retaining the trip, while permanent deletion removes the trip and itinerary for good. It does not explicitly name alternatives or exclusion cases, so it falls short of a 5.

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

delete_voucherA
Destructive
Inspect

Remove a voucher from the user's inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
voucher_idYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, and the description's 'remove' aligns with that. The description adds the scope 'from the user's inventory', which is useful, but it does not disclose permanence, side effects, or preconditions. This is acceptable given annotations cover the destructive behavior.

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

Conciseness5/5

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

A single, well-structured sentence. It is appropriately sized for the tool's simplicity and conveys the core action immediately without any filler.

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

Completeness4/5

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

For a single-parameter destructive tool with annotations covering the danger profile, this description is largely complete. An agent can infer the required voucher_id and the inventory scope. It lacks explicit mention of return behavior or failure modes, but those are not essential for this simple operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of parameter meaning. The description does not explain voucher_id, how to obtain it, or its role beyond the schema's property name and type. With only one self-explanatory parameter, the gap is minor, but the description does not compensate for the zero coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('remove'), a clear resource ('voucher'), and a precise scope ('from the user's inventory'). This clearly distinguishes it from related siblings like add_voucher, list_my_vouchers, and apply_voucher_to_booking.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor any exclusions (e.g., what happens if a voucher is already applied to a booking). The context of 'user's inventory' is implied but no explicit usage direction is provided.

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

disconnect_integrationA
Destructive
Inspect

Revoke a previously connected integration. The OAuth tokens are deleted from ATF storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes

TDQS

A4.3/5.0
Behavior4/5

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

Although destructiveHint=true already signals danger, the description adds specific context about what is destroyed ('OAuth tokens are deleted from ATF storage'), which is exactly the kind of beyond-annotation detail needed. The wording also implies irreversibility.

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

Conciseness5/5

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

Two short sentences with no filler, and the core verb and object are front-loaded. Every word contributes to understanding the tool's function.

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

Completeness5/5

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

For a one-parameter destructive tool with no output schema, the description plus annotations cover what the tool does, what it destroys, and the precondition for use. Nothing essential is missing.

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

Parameters3/5

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

With 0% schema description coverage, the description carries some burden, but the single provider parameter is constrained and self-explanatory via the enum. The phrase 'previously connected integration' helps the agent select a provider that is already linked, which adds value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Revoke') and resource ('previously connected integration'), and adds that OAuth tokens are deleted, making the operation unambiguous. The contrast with sibling tools connect_integration and list_integrations is clear from the description itself.

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

Usage Guidelines4/5

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

'Previously connected' states the precondition for use and implies the tool should not be used for new integrations. It does not explicitly name alternatives, but the sibling set makes the distinction obvious.

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

discover_more_flight_toolsA
Read-only
Inspect

Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering aircraft seatmaps, airport delays/wait times, and lounges — with one-line install URLs. Call this when the user asks about seat selection, airport delays/security waits, baggage rankings, lounges, or 'what other flight tools are there?'

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description adds meaningful context beyond them: this tool returns a list of complementary remote MCP servers with one-line install URLs. It does not misrepresent side effects; the 'add to your client' phrasing refers to user action, not tool mutation.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence establishes what the tool does and returns, and the second provides immediately matchable trigger phrases.

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

Completeness5/5

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

For a parameterless, read-only discovery tool with no output schema, the description sufficiently covers what it returns, why it exists, and when to call it. Nothing essential is missing.

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

Parameters4/5

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

The tool accepts zero parameters, and schema coverage is 100%, so there is nothing for the description to add about individual parameters. The parameterless-tool baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete action ('discovers/lists') and a concrete resource ('other flight & travel MCP servers'), then scopes the content to seatmaps, airport delays/waits, and lounges with install URLs. This is specific enough to distinguish it from the fs_ and lounge_ discover siblings by category coverage.

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

Usage Guidelines4/5

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

The description gives explicit call triggers: seat selection, airport delays/security waits, baggage rankings, lounges, and the umbrella question 'what other flight tools are there?'. It does not explicitly name sibling discovery tools as alternatives or state when not to use it, so it is strong but not maximally clear.

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

find_premium_hotelsA
Read-only
Inspect

Find Amex Fine Hotels & Resorts (FHR), Amex The Hotel Collection (THC), or Chase Edit hotels in a city. These programs stack benefits worth $300+: breakfast, F&B credits, room upgrades, late checkout. Use when the user wants premium hotel options that maximize portal stacking.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name to search (e.g. 'Tokyo', 'Maldives'). Optional — omit to list all premium hotels.
programNoFilter by program. Default: any.

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the read-only and non-destructive safety profile, so the description does not need to restate that. It adds useful context about program-stacked benefits but does not disclose behavioral details such as result format, filtering behavior beyond program, or whether it only returns premium properties without booking side effects.

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

Conciseness5/5

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

Two sentences, no filler. The core resource and programs are front-loaded, followed by the concrete benefit and a clear usage trigger. Every sentence contributes to selection and invocation.

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

Completeness4/5

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

Given the low complexity, optional params, and existing schema/annotations, the description is essentially complete for an agent to invoke correctly. A minor gap is not mentioning the field filter option or result expectations, but these are not critical for a simple read-only search tool.

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

Parameters3/5

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

The input schema has 100% description coverage for both params, so the schema already explains city and program defaults. The description adds program meanings and benefits but does not need to compensate for schema gaps; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Find' and the specific resource: Amex FHR, Amex THC, and Chase Edit hotels in a city. It also gives the value proposition of premium portal-stacking benefits, which further distinguishes it from generic hotel search tools.

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

Usage Guidelines4/5

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

Explicitly indicates when to use: 'when the user wants premium hotel options that maximize portal stacking.' It does not explicitly list alternatives or when not to use it, but the intended context is clear enough for an agent to route appropriately.

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

find_transfer_pathsA
Read-only
Inspect

Find all transfer routes (direct AND multi-hop) to move points from one program to another, e.g. 'Amex Membership Rewards' to 'American Airlines AAdvantage'. Surfaces non-obvious second-hop routes through hotel programs, applies live transfer bonuses, and computes source points needed. Use when a card/program has no direct partner with the target.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_hopsNoMax transfer steps to consider (default 3)
from_programYesProgram you have points in (e.g. 'Amex Membership Rewards', 'Chase', 'Marriott Bonvoy')
points_neededNoOptional: how many target-program points you need. Returns source points required per route.
target_programYesProgram you want points in (e.g. 'American Airlines AAdvantage', 'Alaska', 'Avios')

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark this as readOnly (readOnlyHint=true) and non-destructive. The description adds useful behavioral context: it applies live transfer bonuses and computes source points needed, which goes beyond the structured hints. It doesn't describe side effects (none expected) or rate limits, but for a read-only lookup this is adequate.

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

Conciseness5/5

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

The description is three sentences: purpose, key features, and usage trigger. It is front-loaded with the core function and avoids any fluff. Every sentence adds information, and the structure is easy to scan.

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

Completeness3/5

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

There is no output schema, so the description should clarify what the tool returns. It mentions 'computes source points needed' but doesn't detail the structure of the returned routes (e.g., intermediate programs, transfer ratios, bonus details, or sorting). It also doesn't mention error handling (e.g., no routes found). Given the tool's moderate complexity, this is a notable gap, making the description adequate but incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented. The description adds marginal value by tying 'points_needed' to the output of 'source points required' and by referencing multi-hop in the context of 'max_hops'. However, it doesn't introduce new semantics or syntax beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: finding direct and multi-hop transfer routes between points programs, with a concrete example. It distinguishes itself from siblings like cards_find_transfer_programs_for_airline by explicitly mentioning multi-hop routing through hotel programs and live bonus application.

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

Usage Guidelines4/5

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

Provides an explicit usage condition: 'Use when a card/program has no direct partner with the target.' This is clear and actionable, but it doesn't name alternatives or mention when this tool might be less appropriate (e.g., when direct partners exist but users want comparisons). It gives a strong trigger but lacks a full decision framework.

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

fs_create_seat_alertAInspect

Create a seat alert that notifies you by email when a matching seat becomes available on a specific flight. Supports preferences like window, aisle, exit row, specific seat, adjacent seats, and class availability. Requires authentication. The flight must already be in our database — use search_flight first if not.

ParametersJSON Schema
NameRequiredDescriptionDefault
cabin_classYesCabin class to monitor
flight_dateYesFlight date in YYYY-MM-DD format. Must be today or within the next 60 days.
flight_numberYesFlight number, e.g. 'QF1', 'AA716'
specific_seatNoRequired when seat_preference is 'specific' (e.g. '12A')
seat_preferenceYesSeat preference to alert on
adjacent_seats_countNoRequired when seat_preference is 'adjacent_seats' or 'minimum_seats' (2-9)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false. The description adds behavioral context beyond this: it mentions the email notification side effect, the authentication prerequisite, and the requirement that the flight already exists in the database. It does not cover edge cases like duplicate alerts or response structure, but the annotations cover the basic mutation safety profile.

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

Conciseness5/5

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

The description is three concise sentences with no fluff. It front-loads the core purpose, then adds preference examples and a crucial prerequisite. Every sentence earns its place.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the essential prerequisites (flight must exist, authentication required), the core behavior (email notification), and the supported preferences. It does not explain the response format or how to manage alerts (e.g., via fs_list_seat_alerts or fs_delete_seat_alert), but these are covered by sibling tools and the schema provides parameter details. Overall, it is complete enough for an agent to call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all six parameters. The description lists example preferences (window, aisle, exit row, specific seat, adjacent seats) which mirrors the enum values already in the schema. It does not add additional semantic meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb (create) and resource (seat alert), and clarifies its function: notifying via email when a seat becomes available. It also distinguishes itself from sibling tools like fs_list_seat_alerts and fs_delete_seat_alert by focusing on creation, and references the prerequisite search_flight.

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

Usage Guidelines5/5

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

The description explicitly instructs when to use this tool vs alternatives: 'The flight must already be in our database — use search_flight first if not.' This is a clear directive for when this tool is appropriate and when another tool should be used first, and it also mentions the authentication requirement.

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

fs_delete_seat_alertA
DestructiveIdempotent
Inspect

Delete a seat alert by its ID. Use list_seat_alerts to find the alert ID. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesID of the seat alert to delete

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as destructive and idempotent, so the 'delete' behavior is covered. The description adds a useful behavioral trait beyond the annotations: 'Requires authentication.' It does not contradict the annotations, and the destructive semantics align with destructiveHint=true.

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

Conciseness5/5

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

Two concise sentences with no filler. The primary action is front-loaded, and the follow-up guidance about finding the ID is directly relevant and necessary.

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

Completeness5/5

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

For a simple one-parameter delete tool with no output schema, the description covers the action, the required identifier, how to obtain that identifier, and the authentication requirement. Nothing essential for calling the tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and the alert_id parameter is already described. The description adds value by telling the agent where to obtain the alert_id value through list_seat_alerts, which goes beyond the raw schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('delete'), a specific resource ('seat alert'), and the key identifier ('by its ID'). This clearly distinguishes it from sibling tools like fs_create_seat_alert and fs_list_seat_alerts without requiring schema inspection.

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

Usage Guidelines4/5

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

The description explicitly tells the agent to use list_seat_alerts to find the alert ID, which is practical prerequisite guidance. It does not explicitly enumerate when not to use it or compare against alternatives, but the direction is clear and actionable.

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

fs_discover_more_flight_toolsA
Read-only
Inspect

Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights, airport delays/wait times, and lounges.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds that it lists complementary remote MCPs, which is useful context. However, it doesn't disclose whether the tool returns installation instructions, URLs, or just names, nor does it mention any external network calls. With annotations covering the safety profile, 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.

Conciseness5/5

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

Two sentences with no waste. The first sentence states the action and resource, the second adds the scope of what will be listed. Information is front-loaded and every word earns its place.

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

Completeness4/5

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

For a zero-parameter, read-only discovery tool with no output schema, the description is largely complete. It tells the agent what the tool does and what categories of MCPs will be listed. A minor gap is not specifying the output format (e.g., list of server names vs. installation commands), but given the tool's simplicity, this is not a significant omission.

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

Parameters4/5

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

The tool has zero parameters, and schema description coverage is 100% (vacuously). The description doesn't need to explain parameters. Baseline 4 for zero-param tools is appropriate, and the description adds context about what the discovery covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: discovering other flight & travel MCP servers to add to the client. It specifies the resource (MCP servers) and the action (discover/list). It distinguishes itself from the sibling 'lounge_discover_more_flight_tools' by mentioning complementary remote MCPs covering award flights, airport delays/wait times, and lounges, though it doesn't explicitly name the sibling.

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

Usage Guidelines3/5

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

The description implies when to use this tool: when the user wants to find additional flight/travel MCP servers to add to their client. It does not explicitly state when not to use it or name alternatives like lounge_discover_more_flight_tools. The context is clear but exclusions are absent.

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

fs_find_best_seatsA
Read-only
Inspect

Find the best available seats on a flight matching user preferences like window, aisle, extra legroom, exit row, quiet zone, etc. Returns a ranked list and an interactive seatmap with recommended seats highlighted.

ParametersJSON Schema
NameRequiredDescriptionDefault
cabin_classNoOptional cabin class filter
flight_dateNoOptional flight date in YYYY-MM-DD format
preferencesYesSeat preferences to match
flight_numberYesFlight number, e.g. 'QF1'

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already mark this as read-only, open-world, and non-destructive, so the description need not restate safety traits. It adds useful output behavior—ranked list and interactive highlighted seatmap—but does not disclose ranking logic, availability semantics, or edge cases like conflicting preferences or no available seats.

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

Conciseness5/5

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

The description is two concise sentences that front-load the core purpose and then state the return value. There is no filler or repetition beyond the mild overlap between 'best available seats' and 'recommended seats', which is acceptable.

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

Completeness3/5

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

With no output schema, the description correctly explains that the tool returns a ranked list and an interactive seatmap. However, it lacks detail on how preferences are weighted or combined, what happens when no seats match, and how this differs from the many sister fs_* seat tools, leaving moderate gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents flight_number, preferences, cabin_class, and flight_date. The description adds little beyond naming example preference values, which is redundant with the enum, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds the best available seats on a flight and matches user preferences, giving a specific verb and resource. It does not, however, distinguish itself from nearby siblings like fs_interactive_seat_finder or fs_get_seatmap, which could also serve seat-selection tasks.

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

Usage Guidelines3/5

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

The description implies this tool is the right choice when users have seat preferences such as window, aisle, or extra legroom, and when a ranked recommendation plus seatmap is desired. It does not explicitly say when to use an alternative like fs_interactive_seat_finder or fs_get_seat_reviews, nor does it provide exclusions.

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

fs_get_seat_infoB
Read-only
Inspect

Get detailed information about a specific seat on a flight, including characteristics, cabin class, availability, and pricing. Also renders the interactive seatmap.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_dateNoOptional flight date in YYYY-MM-DD format
seat_numberYesSeat number, e.g. '12A', '1F', '32K'
flight_numberYesFlight number, e.g. 'QF1'

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds some behavioral context by listing the kind of data returned and noting that it also renders an interactive seatmap, which is beyond the annotations. However, it does not explain what 'renders' means in terms of output behavior, UI side effects, or return format.

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

Conciseness5/5

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

The description is two sentences with no filler. The primary purpose and data categories are front-loaded, and the secondary rendering behavior is in a short, separate sentence. Every phrase adds information.

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

Completeness4/5

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

For a read-only tool with only three simple parameters and complete schema coverage, the description is largely sufficient. It conveys the kind of information returned and the notable rendering side effect. The main missing piece is a clearer distinction from the seatmap-focused sibling tools, but the core invocation context is adequately covered.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for flight_number, seat_number, and flight_date. The tool description adds no parameter-specific detail beyond what the schema already provides, so the baseline of 3 is appropriate. It does not explain edge-case formats or relationships between parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific verb and resource: 'Get detailed information about a specific seat on a flight.' It also lists useful content dimensions like characteristics, cabin class, availability, and pricing. However, the additional claim 'Also renders the interactive seatmap' blurs the boundary with the sibling fs_get_seatmap, preventing a perfect sibling-distinguishing score.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to choose this tool over related siblings such as fs_get_seatmap, fs_find_best_seats, or fs_get_seat_reviews. The phrase 'specific seat' implies a use case, but the separate seatmap-rendering claim actively creates ambiguity about which tool should be used for seatmap interactions. No exclusions or alternative routing are provided.

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

fs_get_seatmapA
Read-only
Inspect

Get the seat map for a flight from our database. Shows all seats, cabin classes, characteristics, and availability as both text and an interactive visual seatmap. Returns cached data — for fresh/updated data, use search_flight (sign in via OAuth).

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_dateNoOptional flight date in YYYY-MM-DD format
flight_numberYesFlight number including airline code, e.g. 'QF1', 'AA716', 'BA178'

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the safety profile is established. The description adds valuable behavioral context by warning that data is cached, meaning the agent can expect potentially stale results and should use a different tool when freshness matters.

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

Conciseness5/5

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

Three concise sentences each carry useful information: what the tool returns, what is included, and the cached-data caveat with an alternative. No filler or redundancy.

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

Completeness5/5

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

For a read-only retrieval tool with complete parameter schema and supporting annotations, the description covers purpose, return contents, presentation format, and data-freshness caveat. It provides enough for an agent to decide whether to call this tool or the alternative.

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

Parameters3/5

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

Schema description coverage is 100%, so flight_number and flight_date are already well-documented in the schema. The description adds no further parameter-level detail, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific verb and resource: "Get the seat map for a flight." It further differentiates itself by listing the contents (all seats, cabin classes, characteristics, availability) and the visual format, distinguishing it from sibling tools like fs_get_seat_info.

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

Usage Guidelines4/5

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

The description explicitly warns that data is cached and directs the user to search_flight for fresh/updated data, providing a clear when-not and alternative. However, the named alternative "search_flight" does not exactly match the sibling tool name "fs_search_flight," creating minor ambiguity for an agent performing exact-name routing.

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

fs_get_seat_reviewsA
Read-only
Inspect

Get user-submitted reviews for a flight, optionally filtered to a specific seat. Shows ratings, comments, seat number, cabin, and helpfulness votes. Free — no auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault
seat_numberNoOptional seat number to filter reviews (e.g. '12A')
flight_numberYesFlight number, e.g. 'QF1'

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds valuable context by stating 'Free — no auth required' and listing the output fields, which goes beyond the annotations. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the core action and optional filter; the second lists output fields and the free/auth aspect. Information is front-loaded and every word earns its place.

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

Completeness5/5

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

For a simple read-only tool with two parameters, one required, no output schema, and annotations covering the read-only and non-destructive nature, the description is complete. It specifies what data is returned, the optional filter, and the lack of auth requirement. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters ('flight_number' and 'seat_number') have clear descriptions in the schema. The description restates that the seat filter is optional but adds no additional syntax or details not already in the schema. Baseline of 3 is appropriate when the schema already documents parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a clear resource ('user-submitted reviews for a flight'), and the optional filter by seat. It also enumerates the returned fields (ratings, comments, seat number, cabin, helpfulness votes), making its purpose unambiguous and distinct from sibling fs_* tools that handle seat maps or seat info.

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

Usage Guidelines4/5

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

The description provides clear context about what the tool does and the optional seat filter, but it does not explicitly mention when to use this tool over alternatives like fs_get_seat_info or fs_find_best_seats. Since the name and description already convey the focus on reviews, the lack of explicit exclusions is a minor gap.

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

fs_interactive_seat_finderA
Read-only
Inspect

Seat finder that recommends the best seats on a flight and renders an interactive seatmap. Good default when the user wants help finding a seat but hasn't specified preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_dateNoOptional flight date in YYYY-MM-DD format
flight_numberYesFlight number, e.g. 'QF1', 'AA716'

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety, so the bar for extra behavioral disclosure is lower. The description adds that the tool renders an interactive seatmap and recommends seats, which is useful, but it doesn't describe output format, how preferences are handled, or what 'best' means.

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

Conciseness5/5

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

Two short sentences with zero filler. The core behavior is front-loaded immediately, and the usage context is stated in the second sentence without unnecessary detail.

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

Completeness4/5

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

For a simple read-only tool with two parameters and no output schema, the description plus schema covers the essentials. It does not explain what an agent should expect in the rendered seatmap or whether recommendations are returned as data, but the tool is simple enough that this is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both flight_number and flight_date are already documented in the schema. The description adds no additional parameter-level meaning, which is acceptable under the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('recommends', 'renders') and a clear resource ('best seats', 'interactive seatmap'), so an agent can tell what the tool does. It does not explicitly name the sibling tools it competes with, like fs_find_best_seats or fs_get_seatmap, which keeps it from a 5.

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

Usage Guidelines4/5

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

It gives a clear trigger: use this as the default when a user wants seat help but hasn't specified preferences. It does not state when to choose a different sibling tool for preference-specific seat searching or seatmap-only requests, so it lacks exclusions.

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

fs_list_seat_alertsA
Read-only
Inspect

List all your seat alerts (active and inactive). Shows which seats you're being notified about, priority, days until flight, and last check time. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond the annotations: it lists active and inactive alerts, enumerates the displayed fields, and notes that authentication is required. This gives the agent meaningful expectations about invocation and output.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the primary action and scope, then provides useful output details and the authentication requirement. Every sentence earns its place.

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

Completeness5/5

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

For a zero-parameter, read-only list tool, the description is complete. It states what is listed, what output fields to expect, and the authentication precondition. No output schema is present, but the description compensates by enumerating the returned information.

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

Parameters4/5

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

The input schema is empty with zero parameters, so there is nothing the description needs to explain about parameters. Per the rubric, a zero-parameter tool receives a baseline of 4; no parameter information is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a clear resource ('your seat alerts'), and explicitly includes both active and inactive alerts. This clearly distinguishes it from sibling tools like fs_create_seat_alert and fs_delete_seat_alert.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you want to view your existing seat alerts and their details. However, it does not explicitly state when to prefer this over related tools or mention alternatives, so usage guidance is only implied, not stated.

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

fs_search_flightAInspect

Search for a flight and get fresh seatmap data. Requires a signed-in account — connect this server to sign in via OAuth. Paid plan users can fetch new flights not yet in our database. Uses a search credit. Returns an interactive seatmap with the results.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_dateNoFlight date in YYYY-MM-DD format (defaults to today)
flight_numberYesFlight number, e.g. 'QF1', 'AA716'

TDQS

A4/5.0
Behavior5/5

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

Discloses meaningful behavior beyond the annotations: requires a signed-in account, consumes a search credit, has a paid-plan restriction, and returns an interactive seatmap. The annotations only indicate non-readOnly and open-world behavior; the description adds the auth, cost, and data-freshness context.

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

Conciseness5/5

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

Four sentences with no filler. The first sentence front-loads the core purpose, and each subsequent sentence contributes distinct, actionable information: auth, paid-plan behavior, credit cost, and return type.

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

Completeness4/5

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

The description is sufficient for a competent agent to invoke the tool: it covers prerequisites, cost, plan limitations, and the output type. With no output schema present, the mention of an interactive seatmap helps, though explicit routing among sibling flight-search tools would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% for both parameters, with flight_number and flight_date already described inline. The description does not add parameter-specific meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action — search for a flight and return fresh seatmap data — plus an output type. It is clear about the resource involved, but it does not explicitly distinguish itself from sibling tools like lookup_flight or fs_get_seatmap.

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

Usage Guidelines3/5

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

The description gives useful context: OAuth sign-in is required, paid plan users can search flights not yet in the database, and each search costs a credit. However, it never states when to choose this over alternatives or when not to use it, leaving the routing decision to the agent.

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

get_award_chart_faqA
Read-only
Inspect

Get curated award-chart FAQs, sweet spots, and booking tips for a loyalty programme (e.g. Aeroplan, British Airways Avios, AAdvantage, Flying Blue, World of Hyatt). Use to answer questions about a programme's award pricing, best redemptions, and how to book. Accepts a programme slug OR a loose name. Returns editorial Q&A you can cite directly. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
programYesProgramme slug or loose name, e.g. 'aeroplan', 'British Airways', 'avios', 'world-of-hyatt'.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it accepts a slug OR a loose name, returns editorial Q&A that can be cited directly, and is free/no account needed. These are operational traits an agent needs to know. It doesn't disclose pagination or response size, but for a single-parameter lookup tool this is minor.

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

Conciseness5/5

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

Three sentences, each earning its place: what the tool returns, when to use it, and key operational facts (loose name accepted, citable, free). The most important scoping information is front-loaded. No filler or repetition of schema details.

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

Completeness4/5

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

For a simple one-parameter read-only lookup with no output schema, the description covers the essential context: what it returns, how to invoke it, and what the agent can do with the result. It doesn't describe the response structure, but since there is no output schema and the tool is a free-form editorial Q&A, the absence is acceptable. It could mention that results are programme-specific and may not cover all programmes, but the examples already imply this.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents the 'program' parameter with examples. The description adds meaning by clarifying that the parameter accepts both a slug and a loose name, and by listing example values that overlap with the schema. This is a small but real addition beyond the schema, so slightly above the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a clear resource ('curated award-chart FAQs, sweet spots, and booking tips'), and a target domain ('loyalty programme'). It also names example programmes, which distinguishes it from generic knowledge-base tools like search_knowledge_base and from award-chart data tools like get_program_partner_chart. The purpose is unambiguous.

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

Usage Guidelines4/5

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

The description explicitly says 'Use to answer questions about a programme's award pricing, best redemptions, and how to book,' which gives clear context for when to invoke it. It does not explicitly name alternatives or exclusions, but the sibling list contains related tools (get_program_partner_chart, get_partner_award_options, recommend_redemption) that an agent could confuse it with; the description's focus on editorial Q&A and booking tips provides enough differentiation. A small gap: no explicit 'use X instead' guidance.

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

get_award_release_windowA
Read-only
Inspect

Look up when an airline opens award seats for booking (days from departure). Use this before searching for a date >330 days out to warn the user if inventory hasn't been loaded yet, and to suggest the right retry date or a route monitor.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineYesIATA code (e.g. 'BA') or carrier name (e.g. 'British Airways').

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context by explaining that the tool returns the release window in days from departure and connects this to inventory loading at 330 days, which helps set expectations about the data returned.

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

Conciseness5/5

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

The description is concise and front-loaded: the first clause states what the tool does, and the second sentence gives actionable usage context. There is no redundant or filler language.

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

Completeness5/5

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

For a simple single-parameter read-only lookup with no output schema, the description covers what the tool returns, why it matters, and when to invoke it. Nothing essential is missing for an agent to select and use it correctly.

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

Parameters3/5

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

Schema coverage is 100%, with the single 'airline' parameter already described as IATA code or carrier name. The description does not add further parameter-level detail, and the baseline of 3 applies because the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Look up when an airline opens award seats for booking') and identifies the resource (airline award release window). It is distinct in meaning from the sibling list_award_release_windows, though it does not explicitly name or contrast itself with that alternative.

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

Usage Guidelines4/5

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

The description gives explicit guidance on when to use this tool: before searching for a date more than 330 days out, to warn the user about unloaded inventory and suggest a retry date or route monitor. It does not discuss when not to use it or alternatives, but the use case is clearly specified.

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

get_award_trip_detailsA
Read-only
Inspect

Get flight-level detail for one award result from search_all_airlines or search_availability: flight numbers, aircraft, departure/arrival times, stops, and direct booking links into the mileage programme. Pass the trip_id from a seats.aero result row. Requires a connected seats.aero account.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe `trip_id` field from an award search result row

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds value by disclosing the account requirement and the nature of the response (direct booking links). 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.

Conciseness5/5

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

Two concise sentences front-load the core purpose and immediately list the returned fields, then give the required input and prerequisite. No filler or redundant phrasing.

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

Completeness5/5

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

For a simple single-parameter read-only tool, the description covers the input source, output content, and access requirement. Since there's no output schema, the description sufficiently explains what the caller can expect. Nothing essential is missing.

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

Parameters4/5

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

The schema already describes trip_id as 'The trip_id field from an award search result row'. The description reinforces this by explaining where to obtain it, adding context about the source (seats.aero) and that it comes from a specific search result. This enriches the schema's minimal description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('flight-level detail for one award result'), enumerates the exact fields returned (flight numbers, aircraft, times, stops, booking links), and names the source tools (search_all_airlines or search_availability). This clearly distinguishes it from the many sibling search tools.

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

Usage Guidelines4/5

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

It provides a clear usage instruction: pass the trip_id from a seats.aero result row. It also states a prerequisite (connected seats.aero account). While it doesn't explicitly say when NOT to use it (e.g., for cash flights), the context makes the intended use obvious.

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

get_buy_points_pricingA
Read-only
Inspect

Get the cost to buy points/miles for a loyalty program. Returns tiered base purchase pricing and any active bonus promotion. Use to answer 'how much does it cost to buy X Avios/miles/points?' If no program specified, returns all programs with pricing data. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
programNoProgram slug. Omit to list all available programs.
quantityNoNumber of points/miles to price (e.g. 50000).

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover read-only and non-destructive behavior. The description adds meaningful extras: 'Free — no account needed' (auth requirement), the return composition (tiered base purchase pricing and active bonus promotion), and the behavior when program is omitted. These go beyond the annotation baseline.

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

Conciseness4/5

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

Three sentences with no fluff: purpose is front-loaded, followed by return details, then usage/optional/auth info. Each sentence earns its place, though the use case sentence slightly overlaps with the first sentence in meaning.

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

Completeness4/5

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

For a read-only tool with 2 optional parameters, no output schema, and existing safety annotations, this description covers purpose, return content, optional parameter behavior, and auth. It doesn't detail the response structure or explicitly differentiate from overlapping pricing siblings, but is largely sufficient.

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

Parameters3/5

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

Schema coverage is 100% and both parameters already have clear descriptions. The description's use case example ('how much does it cost to buy X') reinforces the quantity meaning but does not add new information beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Get the cost to buy points/miles for a loyalty program.' It also describes the return content (tiered base purchase pricing, active bonus promotion) and gives the exact question it answers, clearly distinguishing it from generic pricing siblings like get_pricing or get_program_rates.

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

Usage Guidelines4/5

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

It explicitly says 'Use to answer "how much does it cost to buy X Avios/miles/points?"' which provides a clear when-to-use context. However, it does not name alternative tools (e.g., get_pricing, get_program_rates) or state when not to use it, so it stops short of full disambiguation.

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

get_cancellation_feeA
Read-only
Inspect

Get the award-ticket cancellation/redeposit fee for an airline's OWN loyalty programme (e.g. British Airways Avios, Qatar Privilege Club, Virgin Atlantic Flying Club). Returns the headline fee, who is exempt (elite tiers), and a source link. Accepts a slug or a loose airline name. NOTE: fees for booking a carrier through a PARTNER programme differ — this returns the airline's direct policy. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineYesAirline slug or name, e.g. 'british-airways', 'Qatar Airways', 'virgin'.

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already indicate read-only, non-destructive, and open-world behaviour. The description adds useful context beyond that: the operation is free and requires no account, returns a source link, and clarifies the own-vs-partner programme scope. It does not discuss idempotency despite idempotentHint=false, but the added operational context is meaningful.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core purpose, followed by output summary, input flexibility, and an important scoping caveat. Every sentence earns its place with no fluff or redundancy.

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

Completeness5/5

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

For a single-parameter, read-only tool with no output schema, the description provides a complete picture: what it does, what it returns, what input forms are accepted, the key edge case (partner programmes), and access requirements (free, no account). Nothing essential is missing for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% and the schema documents the airline parameter as 'slug or name' with examples. The description adds the nuance 'acceptable slug or a loose airline name', clarifying that exact slugs are not required. This goes slightly beyond the schema by indicating tolerance for loose input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get the award-ticket cancellation/redeposit fee for an airline's OWN loyalty programme.' It also states what is returned (headline fee, exemptions, source link), and explicitly distinguishes this from partner-programme fees, making it easy to differentiate from sibling tools like get_partner_award_options.

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

Usage Guidelines4/5

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

It clearly establishes when to use the tool (for an airline's own loyalty programme) and includes an explicit when-not: fees for booking through a PARTNER programme differ, and this tool returns the airline's direct policy. However, it does not name a specific alternative tool to use for partner-programme fees, so it lacks a fully explicit alternative.

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

get_earning_ratesA
Read-only
Inspect

Look up mileage earning rates for crediting a partner-airline ticket to a loyalty program. Returns the % of distance earned per booking class. Use when deciding which program to credit a flight to. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineYesOperating airline IATA code (e.g. AA, BA, QR)
programYesLoyalty program to credit to
fare_classNoOptional booking class letter (e.g. K, M, Y). If omitted, returns the full table for that program×airline.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, and the description is consistent with those. The description adds the non-obvious 'Free' cost signal and clarifies that the result is a table of percentages per booking class, which 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.

Conciseness5/5

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

Three sentences with no filler. The core action and result are front-loaded, the use case is stated next, and the cost/access note ('Free') is kept to a single word.

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

Completeness5/5

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

For a simple read-only lookup with complete schema descriptions and safety annotations, the description covers purpose, output shape, and when to use it. There is no output schema, but the description sufficiently explains the return value, and edge cases like omitted fare_class are handled in the parameter schema.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for airline, program, and fare_class, including the optional behavior of returning the full table when fare_class is omitted. The description adds some contextual framing around booking class and crediting, but does not materially supplement the schema's parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Look up') and names the exact resource ('mileage earning rates for crediting a partner-airline ticket to a loyalty program'). It also states the output shape ('% of distance earned per booking class'), which clearly differentiates it from vague or tautological tool descriptions.

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

Usage Guidelines4/5

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

It explicitly says 'Use when deciding which program to credit a flight to,' giving a clear decision context. However, it does not name alternatives such as calculate_flight_earnings or get_program_rates, nor does it state when not to use the tool.

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

get_flight_bookingA
Read-only
Inspect

Get details of a specific flight booking/redemption.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. It adds the scope that redemptions are included, but does not disclose error behavior, authorization, or 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.

Conciseness5/5

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

A single, front-loaded sentence that contains no filler and communicates the operation and resource efficiently.

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

Completeness4/5

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

For a one-parameter read-only lookup with annotations covering the safety profile, the description is mostly sufficient. It could specify what 'details' includes or behavior for missing IDs, but the core call shape is clear.

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

Parameters2/5

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

The schema has 0% description coverage for booking_id, and the description does not explicitly define it or explain where to obtain it. It only weakly ties the ID to 'specific flight booking', which is not enough compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Get') and specific resource ('flight booking/redemption'), and the word 'specific' distinguishes it from list_flight_bookings while 'flight' distinguishes it from get_hotel_booking.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus list_flight_bookings or how it fits with add/update/delete variants. There are no explicit alternatives, prerequisites, or exclusion criteria.

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

get_hotel_availabilityA
Read-only
Inspect

Get current points availability for a hotel on specific dates. Use BEFORE monitor_hotel_price to find the correct rate_plan and current points rate. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_codeYesHotel code or numeric id from search_hotels
check_in_dateYes
check_out_dateYes

TDQS

A4/5.0
Behavior4/5

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

The annotations already cover read-only and non-destructive behavior, so the description does not need to repeat that. It adds a meaningful extra behavioral trait by flagging 'Paid feature' and implies live/open-world data with the word 'current'. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences with no filler. The primary action is front-loaded, and the second sentence adds high-value workflow and cost information without redundancy.

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

Completeness3/5

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

The description is minimally viable: it names the inputs conceptually and gives workflow guidance, but with no output schema and low parameter coverage it does not explain what the invocation returns or how the date range maps to availability. An agent could call it, but would still have meaningful unknowns.

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

Parameters2/5

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

Schema description coverage is only 33%, and the description does not compensate. It mentions a 'hotel' and 'specific dates' but adds no meaningful detail about check_in_date/check_out_date semantics, date format, or whether availability is per-night or for the whole stay.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('Get') and resource ('current points availability for a hotel'), with date scoping. It also explicitly distinguishes itself from monitor_hotel_price by saying 'Use BEFORE monitor_hotel_price', which helps an agent know what this tool is and is not.

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

Usage Guidelines4/5

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

Explicitly tells the agent when to use this tool: before monitor_hotel_price, to find the correct rate_plan and current points rate. It lacks exclusions or broader alternative guidance, so it falls just short of a 5.

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

get_hotel_bookingA
Read-only
Inspect

Get details and full price history of a monitored hotel booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that the tool returns both details and full price history, but it does not disclose behavior around monitoring status, response format, or potential errors. No contradiction with annotations.

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

Conciseness5/5

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

A single, efficient sentence front-loads the core behavior: 'Get details and full price history of a monitored hotel booking.' There is no filler or repetition, and it contains the essential information for an agent.

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

Completeness3/5

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

With one simple integer parameter, read-only annotations, and no output schema, the description is mostly adequate. However, it does not clarify what 'monitored' means in relation to sibling tools like monitor_hotel_price, nor what 'details' includes. An agent may be uncertain about the exact scope and return value.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining the parameter. The description does not mention booking_id at all, though the parameter's name and the tool's name make its purpose inferable. This is minimal compensation but not enough given the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'hotel booking' and elaborates with 'details and full price history', clearly distinguishing it from siblings like list_hotel_bookings, get_flight_booking, and monitor_hotel_price. An agent can immediately understand what this tool does and how it differs.

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

Usage Guidelines3/5

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

The phrase 'monitored hotel booking' implies that this tool is for bookings that are being price-monitored, giving some usage context. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or how to obtain the booking_id.

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

get_partner_award_optionsA
Read-only
Inspect

Given an operating airline and a route, list which loyalty programmes can book that airline as a PARTNER and how many points it costs per cabin. Example: a Korean Air (KE) flight ICN→LAX can be booked with Virgin Points. Use this to answer 'which of my programmes can book this flight and what's the cheapest?'. Points are off-peak/saver estimates from published partner award charts. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierYesOperating airline IATA code (2 letters, e.g. KE for Korean Air, AF for Air France).
departureYesOrigin airport IATA code (e.g. ICN).
destinationYesDestination airport IATA code (e.g. LAX).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context beyond that: results are 'off-peak/saver estimates from published partner award charts' and the tool is 'Free — no account needed'. This gives an agent a realistic sense of data quality and access requirements.

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

Conciseness5/5

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

The description is front-loaded with the main function, followed by a concrete example, a practical use case, and two concise caveats. Every sentence earns its place without redundancy or unnecessary elaboration.

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

Completeness4/5

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

For a read-only lookup with three clearly documented parameters, the description adequately covers inputs, outputs (loyalty programmes and point costs per cabin), and important caveats. With no output schema present, the description gives enough shape of the return value; a minor gap is not specifying how results are ordered or whether empty results are possible.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters (carrier, departure, destination) already documented with IATA codes and examples. The description repeats some of that context but does not materially add parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: given an operating airline and route, list loyalty programmes that can book it as a partner and show point costs per cabin. The included Korean Air/ICN-LAX example clarifies the exact input/output relationship, and the inverse framing (airline-to-programs, not program-to-airlines) distinguishes it from siblings like get_program_partner_chart.

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

Usage Guidelines4/5

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

Provides a concrete use case: 'Use this to answer "which of my programmes can book this flight and what's the cheapest?"'. This gives clear guidance on when to invoke the tool, though it does not explicitly name alternatives or state 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_points_valuationA
Read-only
Inspect

Get the cents-per-point valuation for a credit-card points/miles currency or hotel program — answers "what is a Chase/Amex/Capital One/Avios/Marriott/Hyatt point worth?". Returns the headline cents-per-point, the value we've actually observed across logged redemptions (with sample size) when available, and the best way to use the currency. Pass a slug (e.g. chase-ultimate-rewards) or a loose name (e.g. "amex points", "hyatt"). Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyYesPoints/miles currency — a slug (chase-ultimate-rewards) or loose name ("amex points", "marriott", "hyatt").

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already specify readOnlyHint=true, destructiveHint=false, so the tool is clearly safe and read-only. The description adds valuable behavioral context by explaining the 'best way to use the currency' and the flexible input handling, which is not in the schema or annotations. It also discloses that observed values may be included with a sample size, which is extra transparency beyond the structured data.

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

Conciseness4/5

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

The description is a single, well-structured sentence that front-loads the core purpose and then provides output details and usage examples. It is efficient with no wasted words, though slightly dense. The free usage note at the end is useful context, but could be omitted without loss, so not a 5.

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

Completeness4/5

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

Given the simplicity of the tool (one parameter, no output schema), the description covers the essential aspects: what it returns, how to call it, and its read-only nature via annotations. The observed-value detail adds depth. The only minor gap is that it doesn't specify error conditions for unrecognized currencies, but this is not critical for a lookup tool.

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

Parameters4/5

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

Although schema description coverage is 100%, the description enriches the single 'currency' parameter by providing examples (chase-ultimate-rewards, 'amex points') and clarifying that it accepts both slugs and loose names. This interpretation guidance goes beyond the schema's simple type description, helping the agent format the query correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving cents-per-point valuation for points/miles currencies and hotel programs. It goes beyond a simple verb+resource by including the specific output (headline valuation, observed value, best use) and examples, which makes its purpose unmistakable. It also distinguishes itself from related sibling tools like get_buy_points_pricing, get_earning_rates, and get_program_rates by focusing on valuation rather than pricing or earning rates.

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

Usage Guidelines4/5

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

The description provides implicit usage context by indicating that it answers valuation questions and accepts flexible inputs (slug or loose name). It does not explicitly name alternative tools or provide 'when not to use' guidance, but the examples and stated free access imply it's for quick valuation lookups. This is clear enough for an agent to decide when to invoke it, though not as explicit as naming alternatives.

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

get_portfolioA
Read-only
Inspect

Get a complete summary of your travel rewards portfolio for signed-in users: points balances, spend on hotels and flights, upcoming and past trips, destinations, and monthly spending trends. Uses the same underlying snapshot as the server-loaded chat preamble; call after the user adds bookings or balances in-session when you need a refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnlyHint and destructiveHint, so the description adds value by noting the snapshot dependency and the signed-in user requirement. It also implies a refresh semantics without contradicting annotations.

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

Conciseness5/5

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

Two well-structured sentences with no filler. The first sentence lists what the tool returns, the second provides a clear usage directive. Perfectly front-loaded and efficient.

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

Completeness4/5

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

Without an output schema, the description sufficiently enumerates the returned data categories and the refresh trigger. It covers the essential context (signed-in users, snapshot source) for an agent to decide when to call it, though it could briefly mention that it's a read-only aggregate view (already covered by annotations).

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

Parameters4/5

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

The tool has zero parameters, so the schema is trivially complete (100% coverage). The description doesn't need to explain parameters; it appropriately focuses on output content and usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a comprehensive travel rewards portfolio summary, listing specific content categories (points, spend, trips, trends). It distinguishes from granular get_* siblings by emphasizing the aggregate 'portfolio' scope, though it doesn't name any sibling explicitly.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance: 'call after the user adds bookings or balances in-session when you need a refresh.' This gives a clear trigger condition, though it doesn't mention alternatives or when not to use it.

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

get_pricingB
Read-only
Inspect

Get the award pricing chart for a specific airline route. Shows points required per cabin class (off-peak/peak). No date needed. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineYes
arrival_codeYes
departure_codeYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to state safety. The description adds useful context: the response is points per cabin class with off-peak/peak, and that it's a paid feature. However, it doesn't disclose what happens if the route isn't supported or if the user doesn't have a paid plan, which could be relevant.

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

Conciseness4/5

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

The description is concise with three sentences, each adding a distinct piece of information: the core purpose, what it shows, and the note about paid feature. It's front-loaded with the main action. No wasted words.

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

Completeness3/5

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

For a simple read-only tool with clear parameters from schema, the description covers the basics. However, the lack of output schema means the description should hint at the return structure more explicitly, which it partially does (points per cabin class, off-peak/peak). But it doesn't mention edge cases like unsupported routes or error handling, which might be important for a paid feature.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. The description names the route parameters (airline, departure_code, arrival_code) implicitly by saying 'airline route', but it doesn't explain the airline enum values, the format of the codes (though pattern is in schema), or any nuances. It adds minimal value beyond the schema's field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets an award pricing chart for a specific airline route, showing points per cabin class with off-peak/peak distinction. It distinguishes from many pricing-related siblings like 'get_buy_points_pricing' or 'get_program_rates' by focusing on route-specific award charts, though it doesn't explicitly name an alternative.

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

Usage Guidelines3/5

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

The description says 'No date needed' and 'Paid feature', which gives some guidance on when to use it. However, it doesn't explicitly say when not to use this vs alternatives like 'search_availability' or 'get_partner_award_options', and doesn't mention any prerequisites like having a paid subscription.

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

get_program_partner_chartA
Read-only
Inspect

Get a loyalty programme's PARTNER airline award chart (the points to book partner-operated flights), as a region-pair or distance-band table with sources, confidence, and accuracy caveats. Supported: aeroplan (Air Canada), aadvantage (American), singapore-krisflyer, cathay-asia-miles (distance-based), turkish-miles-smiles, ana-mileage-club. Match the route's origin/destination regions (or distance) to a row to read the points cost. IMPORTANT: read the returned confidence, caveats, and trip_basis fields — points are one-way unless trip_basis says round_trip (ANA is round-trip), and these charts apply to PARTNER-operated flights, not the programme's own dynamically-priced flights. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
programYesProgramme slug.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds important behavioral caveats: points are one-way unless trip_basis says round_trip, ANA is round-trip, charts apply only to partner-operated flights, and results include confidence/caveats fields. It also says it's free and needs no account, which is useful non-obvious context.

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

Conciseness5/5

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

The description is compact but information-dense: core purpose first, then supported programmes, then a clear 'how to read' instruction, then critical caveats. No sentence is redundant, and the structure front-loads the most important information.

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

Completeness5/5

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

With only one parameter and no output schema, the description carries the burden of explaining the returned data, and it does so thoroughly: table type, supported programmes, how to interpret rows, key fields to check, and the partner-only limitation. Nothing essential for using the tool is missing.

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

Parameters4/5

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

The schema already fully documents the single 'program' parameter with an enum and description. The description adds value by noting that cathay-asia-miles is distance-basedhare and by listing the supported values inline. This goes slightly beyond the schema's basic enum, so a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get a loyalty programme's PARTNER airline award chart', and then precisely defines the output form ('region-pair or distance-band table'). It also distinguishes the scope from the programme's own dynamically-priced flights, which helps an agent separate this from other pricing/award tools.

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

Usage Guidelines4/5

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

The description gives clear contextual guidance: it lists the supported programmes, tells the agent to match route regions/distance to a row, and instructs the agent to read specific returned fields. It does not explicitly name alternatives or state when not to use this tool versus siblings, but the context and supported-list make the intended usage clear.

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

get_program_ratesA
Read-only
Inspect

Get the full award chart rates for a specific loyalty program. Returns all destinations with points required per cabin class including off-peak/peak pricing. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
programYesLoyalty program slug (e.g. british-airways, emirates, aeroplan)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the tool as readOnly and non-destructive, and the description reinforces that this is a safe read operation. It adds helpful context beyond annotations by stating no account is needed and describing the detailed return data. It does not mention rate limits or data freshness, but it is adequate for this simple read-only tool.

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

Conciseness5/5

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

The description is three short sentences with no filler. It front-loads the core action and resource, then adds the return details and access note. Every sentence contributes useful information.

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

Completeness5/5

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

With only one required enum parameter and no output schema, the description provides enough context to invoke the tool and interpret its results: full award chart rates, destinations, cabin classes, and off-peak/peak pricing. Access prerequisites are addressed with 'Free — no account needed.' Nothing essential is missing for this simple lookup.

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

Parameters3/5

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

Schema coverage is 100%, with the property description already providing examples and an enum of allowed values. The tool description adds no new parameter-level meaning beyond 'specific loyalty program.' Baseline 3 is appropriate since the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Get the full award chart rates for a specific loyalty program.' It also specifies the return scope: all destinations, points per cabin class, and off-peak/peak pricing. It does not explicitly name a sibling to distinguish itself from, but the resource is specific enough.

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

Usage Guidelines4/5

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

The description makes it clear when to use this tool: when the full award chart for a loyalty program is needed. It adds the access context 'Free — no account needed,' which helps agents choose this over authenticated operations. It does not mention alternatives or exclusions, but this is a simple one-parameter lookup.

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

get_skillA
Read-only
Inspect

Fetch the full markdown body of a reference skill by key. Use when planning multi-step workflows where the skill's rules matter.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesSkill key from list_skills

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the return is the 'full markdown body', but says nothing about error behavior, missing keys, or content structure. With annotations present, this is adequate but not rich.

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

Conciseness5/5

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

Two sentences with no filler. The action ('Fetch the full markdown body') is front-loaded, followed by a brief usage note. Every word contributes to agent understanding.

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

Completeness4/5

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

For a single-parameter read tool with no output schema, the description adequately explains the return format ('full markdown body'). It does not define what a 'skill' is, but the schema's reference to list_skills provides enough context. Overall, an agent has sufficient information to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains 'Skill key from list_skills'. The description only repeats 'by key' and adds no additional semantic value, so it meets the baseline established for fully covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the full markdown body of a reference skill by key. This distinguishes it from list_skills (which lists skills) and search_knowledge_base (which searches general knowledge), making the resource and action unambiguous.

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

Usage Guidelines4/5

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

It specifies when to use the tool: 'when planning multi-step workflows where the skill's rules matter.' This provides clear context, though it does not explicitly name alternatives or state when not to use it. The prerequisite of obtaining the key from list_skills is left to the schema description, not the tool description.

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

get_status_matchesA
Read-only
Inspect

Get current airline status match offers. Returns active promotions where you can match elite status from one airline to another. Includes direct apply links. Each program also has a detailed FAQ page at awardtravelfinder.com/status-match/{program-slug} with eligibility, requirements, and step-by-step instructions. Free — no account needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
allianceNoFilter by airline alliance

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context: offers are 'current' and 'active,' no account is needed, results include direct apply links, and each program has a FAQ page at a specified URL. This goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is four sentences, each adding distinct value: the core purpose, the nature of returned promotions, the FAQ resource, and the access constraint. It is front-loaded with the primary action and avoids redundancy.

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

Completeness5/5

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

For a simple read-only lookup with one optional parameter, the description is complete. It covers the result contents, the presence of apply links, the related FAQ page, and the fact that no account is needed. The absence of an output schema is acceptable because the description already conveys what the caller will receive.

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

Parameters3/5

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

The single parameter 'alliance' has 100% schema description coverage, including an enum of valid values and a clear 'Filter by airline alliance' description. The tool description adds no parameter-specific meaning, but the schema fully documents the only parameter, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: current airline status match offers. It states the action 'get' and defines the output as 'active promotions' with 'direct apply links,' which distinguishes it from sibling status-related tools like get_status_progress or recommend_status_path.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus alternatives. The description states what the tool returns, but it does not mention exclusions, prerequisites, or which sibling tool to use for different status-matching needs.

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

get_status_progressA
Read-only
Inspect

Show the user's progress toward elite status across all their tracked loyalty programs — for each: current tier, qualifying balance, the next tier's threshold and what it unlocks, how far they are from it, and their requalification date. Answers 'how close am I to my next tier?' and 'what would the next tier get me?'. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
programNoOptional — limit to a single program slug. Omit to return all tracked statuses.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds useful behavioral context by listing the returned fields (current tier, qualifying balance, threshold, unlocks, distance, requalification date) and confirming the 'all programs' vs. 'single program' scope. No contradiction.

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

Conciseness5/5

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

Three sentences that front-load the core purpose, then list the output components, and then answer typical user questions. Every sentence carries weight with no redundancy or filler, making it efficient and scannable for an agent.

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

Completeness5/5

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

With no output schema, the description compensates fully by enumerating all return fields (tier, balance, threshold, unlocks, distance, date) and clarifying the filter behavior. For a read-only query with one optional parameter, everything an agent needs to call it correctly is present.

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

Parameters3/5

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

Schema coverage is 100% with a single optional parameter 'program' that already documents its meaning ('limit to a single program slug. Omit to return all tracked statuses'). The description implies the same distinction but adds no new semantic detail beyond what the schema provides, so it meets the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Show'), a clear resource ('progress toward elite status'), and the scope ('across all their tracked loyalty programs'). It enumerates the exact data points returned and answers typical user questions, distinguishing it from sibling tools like set_status_progress and get_status_matches without needing to open schemas.

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

Usage Guidelines4/5

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

The description conveys when to use it by specifying it answers 'how close am I to my next tier?' and 'what would the next tier get me?', and explicitly marks it as read-only. However, it does not name alternatives or state conditions where another tool should be used instead, so it stops short of fully explicit routing.

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

get_trip_briefingA
Read-only
Inspect

Combine FlightSeatmap and FlightQueue data for a planned flight: aircraft and seatmap availability plus airport delay and security-wait snapshots. Use when a user asks how to prepare for a flight or wants one live flight brief.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOptional departure airport IATA code
destinationNoOptional arrival airport IATA code
flight_dateNoOptional departure date
flight_numberYesFlight code such as BA117 or AA 100

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, destructiveHint). The description adds context about the live nature of the data and the aggregation of two sources, which is useful beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

Two sentences with zero filler. The core functionality is front-loaded, and the usage trigger is stated in the second sentence. Every word earns its place.

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

Completeness4/5

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

The description fully explains what the tool does and when to use it, with all parameters documented in the schema. There is no output schema, but the description lists the content types (aircraft, seatmap, delay, security-wait) so the agent knows what to expect. Missing edge-case behavior (e.g., flight not found) is minor.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented. The description does not add extra semantic meaning for parameters beyond reinforcing that it's for a 'planned flight'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Combine') and the exact resources (FlightSeatmap and FlightQueue data), and enumerates the output contents (aircraft, seatmap, airport delay, security-wait). It distinguishes itself from sibling tools like fs_get_seatmap or sw_get_airport_wifi by being a single aggregated briefing.

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

Usage Guidelines5/5

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

Explicitly says 'Use when a user asks how to prepare for a flight or wants one live flight brief.' This gives a clear trigger condition and implies the exclusivity of the tool for this use case, which is enough guidance even without naming alternatives.

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

list_award_release_windowsA
Read-only
Inspect

List all known per-airline award booking windows. Useful when the user asks 'when do award seats open?' generally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and 'List all known' is consistent with those hints without adding much beyond them. The description adds no detail about response shape, data source, or coverage, so behavioral disclosure is nominal but not contradictory.

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

Conciseness5/5

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

Two short sentences with the operation and resource front-loaded, followed by a concrete usage cue. Every word earns its place; there is no filler.

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

Completeness4/5

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

For a no-parameter, read-only reference tool, the description plus annotations cover purpose, trigger, and safety profile. There is no output schema, so a brief note on the returned shape would be nice, but an agent has enough to invoke it correctly.

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

Parameters4/5

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

The input schema has zero parameters and schema description coverage is 100%, so there is no parameter semantic burden for the description to carry. The phrase 'per-airline' usefully signals how the data is organized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('all known per-airline award booking windows'), and adds the user-facing trigger 'when do award seats open?'. It does not explicitly distinguish itself from the sibling get_award_release_window, though the plural/aggregate scope is reasonably clear.

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

Usage Guidelines3/5

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

It provides a clear contextual trigger ('when the user asks... generally'), which implies this is the broad list tool. However, it never names the singular sibling get_award_release_window or states when to prefer that tool for a specific airline, so the exclusion is only implied.

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

list_flight_bookingsA
Read-only
Inspect

List all tracked flight award bookings/redemptions. Shows airlines, routes, points spent, and cabin classes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds value by disclosing what the response will contain (airlines, routes, points spent, cabin classes) and that only 'tracked' award bookings are included. No contradiction with annotations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the core purpose and immediately followed by the output contents. No filler or redundant wording.

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

Completeness4/5

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

For a zero-parameter, read-only list tool, the description fully explains what is listed and what fields are shown. There is no output schema, but the description adequately covers expected return contents, so nothing critical is missing.

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

Parameters4/5

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

There are zero parameters, so parameter semantics are not a concern. The description correctly avoids inventing parameters and simply states the tool's behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), names the exact resource ('all tracked flight award bookings/redemptions'), and clarifies it covers redemptions as well. This distinguishes it from singular operations like get_flight_booking and mutation tools like update_flight_booking.

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

Usage Guidelines3/5

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

The scope 'all tracked flight award bookings' implies this is the list/overview tool, and the sibling names suggest get_flight_booking is for individual details. However, the description does not explicitly state when to prefer this over related tools or mention any exclusions.

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

list_hotel_bookingsA
Read-only
Inspect

List all hotel bookings being monitored for price drops. Shows current vs. original points rates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond these annotations by clarifying the output scope ('all hotel bookings being monitored') and the data shown ('current vs. original points rates'), which helps set expectations about the result.

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

Conciseness5/5

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

The description is two short sentences with no wasted words. It front-loads the core action in the first sentence and then adds the key output detail in the second, making it easy to scan and understand.

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

Completeness5/5

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

For a zero-parameter, read-only list tool, the description is complete enough: it states what is listed, the scope ('all ... being monitored'), and the meaningful output fields ('current vs. original points rates'). No output schema exists, so the description adequately substitutes for it in this simple case.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to explain. The baseline score of 4 applies because the description correctly focuses on the output rather than nonexistent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List all hotel bookings being monitored for price drops.' It also distinguishes itself from siblings like list_flight_bookings by scoping to hotel bookings, and from get_hotel_booking by covering all monitored bookings rather than a single one.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: when the agent needs an overview of hotel bookings being monitored for price drops, including their current versus original points rates. However, it does not explicitly name alternatives or state when not to use it, such as using get_hotel_booking for a single booking's details.

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

list_integrationsA
Read-only
Inspect

List the external services the user can connect (seats.aero, AwardWallet, etc.) and their current connection status. Call this before any flight/hotel search if you suspect a connection is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful context that it reports current connection status and should be used as a pre-check, but doesn't disclose details like whether it returns auth-expired states or rate-limit info. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the resource and scope; the second gives actionable usage guidance. Every word earns its place.

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

Completeness4/5

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

For a parameterless read-only list tool, the description is nearly complete. It names examples, states the output concept (connection status), and gives a trigger condition. It doesn't describe the exact return shape, but with no output schema and a simple list operation, that's a minor gap.

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

Parameters4/5

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

The tool has zero parameters, so there is no schema burden to compensate for. The description adds meaning by explaining what the list contains (external services, connection status) and when to use it, which is all an agent needs for a parameterless call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists external services and their connection status, naming examples (seats.aero, AwardWallet). It distinguishes itself from connect_integration and disconnect_integration siblings by focusing on listing current state rather than mutating connections.

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

Usage Guidelines5/5

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

Explicitly instructs to call this before any flight/hotel search if a connection is suspected missing. This provides clear when-to-use guidance and implicitly routes away from connect_integration/disconnect_integration for checking status.

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

list_lounge_visitsA
Read-only
Inspect

List the airport lounge visits you've logged to your portfolio.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already cover the read-only, non-destructive nature. The description adds useful scope context by saying the visits are logged to the user's portfolio, but it does not describe output format, pagination, or other behavioral traits.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundancy. Every word earns its place.

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

Completeness4/5

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

For a no-parameter read-only list tool, the description is mostly complete: it names the resource and ownership scope. It could be slightly stronger by addressing how this differs from the similar lounge_get_my_visits sibling or by hinting at the return shape.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing the description needs to explain beyond what the schema already shows. The baseline of 4 applies because no parameter documentation burden exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('airport lounge visits') and adds an ownership scope ('you've logged to your portfolio'). However, it does not differentiate this tool from the sibling lounge_get_my_visits, which appears to serve the same purpose.

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

Usage Guidelines3/5

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

The phrasing implies this is for retrieving lounge visits the user has already logged, as opposed to logging new visits (log_lounge_visit), but it never explicitly states when to use this tool versus alternatives. No exclusions or alternative routing are provided.

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

list_loyalty_statusesA
Read-only
Inspect

List the user's tracked elite/loyalty statuses across airlines and hotels.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds useful scope context—tracked statuses across airlines and hotels—but does not mention ordering, freshness, or whether prior setup is required. With annotation coverage, this is adequate but not rich.

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

Conciseness5/5

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

The description is one concise, front-loaded sentence that states the action and resource without any filler. Every word earns its place.

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

Completeness5/5

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

For a zero-parameter read-only list tool with no output schema, the description is complete enough. It clearly tells an agent what the tool returns—the user's tracked statuses across airlines and hotels—and nothing essential is missing.

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

Parameters4/5

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

The tool accepts zero parameters, so the description has no parameter semantics to explain. Per the 0-parameter baseline, a score of 4 is appropriate; nothing is missing in this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and names the resource ('the user's tracked elite/loyalty statuses') with added scope ('across airlines and hotels'). This distinguishes it from write tools like set_loyalty_status and from related read tools like get_status_progress or get_status_matches.

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

Usage Guidelines3/5

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

The intended use is implied by the verb 'List' and the resource, but the description does not explicitly say when to choose this tool over siblings such as set_loyalty_status or delete_loyalty_status. No alternatives or exclusion criteria are stated, so usage guidance is only implicit.

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

list_my_vouchersA
Read-only
Inspect

List the companion/upgrade vouchers the user holds, including which booking each is applied to. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish that this is read-only and non-destructive. The description adds value beyond that by flagging this as a paid feature and by clarifying that the response includes applied-booking details. There is no contradiction with the annotations.

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

Conciseness5/5

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

The description is two short sentences with the core action front-loaded. The paid-feature warning is the only extra sentence and it provides meaningful operational context, so no sentence is wasted.

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

Completeness5/5

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

For a zero-parameter, read-only list tool with no output schema, the description covers what is listed, whose vouchers are listed, the key included detail (applied booking), and a significant cost/entitlement caveat. Nothing essential appears to be missing.

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

Parameters4/5

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

The tool takes zero parameters, so the schema already fully defines the interface and the description has no parameter-specific burden. The mention of user-held vouchers and applied bookings adds contextual meaning, but no parameter semantics are needed beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific action verb 'List' and names the resource: 'companion/upgrade vouchers the user holds.' It also specifies that output includes which booking each voucher is applied to, and the 'my' scope distinguishes this from catalog-style siblings like list_voucher_types.

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

Usage Guidelines3/5

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

No explicit when-to-use guidance or alternative routing is given. The intended use is inferable from the description, but it does not tell the agent how this relates to siblings such as list_voucher_types, add_voucher, or apply_voucher_to_booking.

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

list_points_balancesA
Read-only
Inspect

List all your loyalty program points/miles balances.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'all your' and 'points/miles' context but does not describe output format, data source, or whether pending/expired balances are included. This is acceptable given the annotations but not especially rich.

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

Conciseness5/5

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

A single, front-loaded sentence contains all necessary information with no filler. Every word contributes to defining the action and scope.

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

Completeness5/5

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

For a zero-parameter, read-only list tool, the description is fully sufficient. It names the resource, indicates the scope ('all your'), and aligns with the annotations. No output schema exists, but 'List all your ... balances' adequately implies a list of balances.

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

Parameters4/5

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

The tool has zero parameters and schema description coverage is 100%, so there is no parameter information missing. The baseline for zero-parameter tools is 4, and the description adds no unnecessary parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('your loyalty program points/miles balances'), clearly indicating the operation. The phrase 'all your' establishes scope and differentiates this from single-balance queries or mutations like update_points_balance and delete_points_balance.

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

Usage Guidelines4/5

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

The description clearly conveys the context: use this when you need a complete view of the user's loyalty points/miles balances. It does not explicitly mention alternatives or exclusions, but for a zero-parameter list tool the intended usage is unambiguous.

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

list_route_monitorsA
Read-only
Inspect

List the user's saved route monitors with their last-checked time and current status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-indexed). Defaults to 1.
statusNo
per_pageNoItems per page (default 20, max 100).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the output details (last-checked time and current status) beyond the annotations, but doesn't discuss pagination, filtering, or any other behavioral aspects. It provides minimal extra context, consistent with the annotation coverage.

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

Conciseness5/5

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

A single, front-loaded sentence that captures the core purpose and output. Every word earns its place; no fluff or redundant phrasing.

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

Completeness3/5

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

Given the absence of an output schema, the description partially covers return details (last-checked time and status) but omits pagination and the status filter, which are available as parameters. For a simple list tool with optional filters, this is adequate but not fully complete.

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

Parameters2/5

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

Schema description coverage is 67% (page and per_page have descriptions, status does not). The tool description does not mention parameters at all, leaving the status parameter's meaning solely to its enum values. Since the coverage is moderate, the description should compensate for the missing status description but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (the user's saved route monitors), and includes what it returns (last-checked time and current status). It clearly distinguishes from sibling tools like create_route_monitor, cancel_route_monitor, and update_route_monitor by describing the read-only listing behavior.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you want to view route monitors) but does not explicitly mention alternatives or conditions. It lacks exclusions or guidance on when to prefer this over other list tools or route monitor management tools, though the purpose is self-evident for a simple list operation.

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

list_skillsA
Read-only
Inspect

List the reference skills available — institutional knowledge the agent can pull in on demand. Each skill explains a sub-domain (sweet spots, hold rules, cabin codes, etc). Free, no auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as read-only, open-world, and non-destructive. The description adds useful behavioral context by stating that the tool is free and requires no authentication, and by describing the nature of the returned skills. No contradiction with annotations.

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

Conciseness5/5

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

Two compact sentences front-load the core purpose ('List the reference skills available') and then add only meaningful elaboration about what skills are and the access constraints. There is no redundant or filler content.

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

Completeness5/5

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

For a zero-parameter, read-only listing tool, the description fully explains what will be listed, what kinds of knowledge are covered, and that no auth is required. No additional details about output schema or return format are necessary for correct invocation.

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

Parameters4/5

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

The tool has zero parameters dened in the schema, so there is nothing for the description to clarify. The description still provides enough context about what the returned data represents, earning the baseline score for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('List') and a specific resource ('reference skills available'), and goes further to explain what a skill is (institutional knowledge covering sub-domains like sweet spots, hold rules, cabin codes). This is unambiguous and distinguishable from sibling tools like get_skill or search_knowledge_base.

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

Usage Guidelines4/5

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

It clearly indicates this is for discovering reference skills that can be pulled in on demand, and notes that it is free and requires no auth. It does not explicitly name alternative tools for retrieving skill details, but the context is clear enough for a simple listing operation.

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

list_standing_ordersA
Read-only
Inspect

List the user's standing orders — the recurring instructions ATF runs unattended — with their schedule, next run time, and the result of the last run.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_inactiveNoInclude cancelled/paused orders. Defaults to false.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false, so a safe read operation is implied. The description adds value beyond annotations by specifying the kind of data returned (schedule, next run time, last run result) and clarifying that orders are 'run unattended', which explains the tool's purpose. No contradiction with annotations.

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

Conciseness5/5

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

A single, information-dense sentence that front-loads the core verb and resource, then attaches exactly the clarifying details needed. No filler, no repetition of schema data.

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

Completeness5/5

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

For a read-only list operation with one optional boolean parameter, the description covers what the list contains and what fields are returned. There is no output schema, so the description adequately fills that gap. No prerequisites, pagination, or complex behaviors need explanation.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter (include_inactive) is fully described in the schema itself with a default. The description does not need to add parameter-level detail. This meets the baseline for fully self-documenting parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('the user's standing orders'), and further clarifies the domain with parenthetical context ('recurring instructions ATF runs unattended'). The mention of returned fields ('schedule, next run time, and the result of the last run') distinguishes it from other list-related siblings like list_route_monitors and list_trips. It is unmistakable what this tool does.

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

Usage Guidelines2/5

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

The description gives clear context about what is being listed but provides no guidance on when to choose this tool over alternatives. It neither mentions sibling tools nor states exclusions (e.g., when to use list_route_monitors instead). The user must infer from the resource name alone. This is a notable gap.

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

list_supported_airlinesA
Read-only
Inspect

List the airlines ATF can search for award seats, with their LIVE status: which returned real award data in the last 72h, which are degraded (source down, blocked, or behind a member login) and which are idle. search_all_airlines only fans out to live sources, so call this before promising coverage or when a search comes back thin. Public, no sign-in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'List' and 'no sign-in.' It adds rich behavioral context beyond annotations: status granularity (live in last 72h, degraded because down/blocked/login, idle), and how search_all_airlines consumes this ('only fans out to live sources'). No contradiction with annotations.

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

Conciseness5/5

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

Three purposeful sentences with no filler. Purpose is front-loaded, the usage trigger follows, and auth/posture closes it. Every sentence adds value.

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

Completeness5/5

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

For a parameterless, read-only list tool with no output schema, the description sufficiently specifies the returned concept (airlines with LIVE status categories), the time window (last 72h), possible degraded states, and the related search_all_airlines behavior. No missing information an agent needs to call it correctly.

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

Parameters4/5

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

The input schema has zero parameters, and schema description coverage is 100%, so there is no parameter meaning to add. Baseline 4 is appropriate; the description correctly focuses on behavior rather than arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'List the airlines ATF can search for award seats' – a specific verb, resource, and scope – and clarifies the output includes LIVE status categories. It also distinguishes from sibling 'search_all_airlines' by noting it only fans out to live sources, so an agent can tell them apart without opening schemas.

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

Usage Guidelines5/5

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

Explicitly instructs when to call: 'call this before promising coverage or when a search comes back thin.' It contrasts with search_all_airlines and notes 'Public, no sign-in,' giving clear context and no exclusions.

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

list_tripsA
Read-only
Inspect

List the signed-in user's trips (their trip-as-project workspaces) with destination, dates, status, and itinerary section count.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (default: all)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. It adds slight context by scoping to the signed-in user and clarifying trip-as-project workspaces, but it does not disclose additional behavioral traits such as pagination, ordering, or result-size limits. No contradiction with annotations.

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

Conciseness5/5

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

A single sentence with no filler; the verb is front-loaded and every clause adds useful information. The parenthetical clarification is compact and avoids ambiguity about what counts as a trip.

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

Completeness4/5

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

For a simple list tool with one optional, fully documented parameter and read-only annotations, the description is nearly complete. It even lists the returned fields, compensating for the absence of an output schema. Minor omissions like pagination or sorting do not materially hurt correct invocation.

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

Parameters3/5

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

The input schema already documents the only parameter 'status' with an enum and default value, giving 100% schema coverage. The description does not add parameter-level semantics beyond mentioning status as part of the returned data, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List the signed-in user's trips') and enumerates the returned fields (destination, dates, status, itinerary section count). The parenthetical 'trip-as-project workspaces' clarifies the exact entity type, distinguishing this from generic trip searches and sibling tools like get_trip_briefing or plan_trip.

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

Usage Guidelines3/5

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

The description implies the use case: when you need to list the signed-in user's trips, this is the tool. However, it does not explicitly state when to prefer this over related tools such as get_trip_briefing or list_flight_bookings, nor does it mention any exclusions or alternatives.

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

list_voucher_typesA
Read-only
Inspect

Browse the catalogue of companion & upgrade voucher types (UK + US): BA Amex companion (Travel Together), Barclaycard/Lloyds Avios upgrade vouchers, Virgin Atlantic companion, Delta/American/Alaska companion certificates, Southwest Companion Pass, United PlusPoints. Optionally filter by region (UK/US) or category. Free reference data.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoFilter by issuer region.
categoryNoFilter by voucher category.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, openWorldHint, and destructiveHint=false, so the description adds only 'free reference data' and catalogue framing. This is useful but does not disclose return shape or data-source behavior beyond what annotations already cover.

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

Conciseness4/5

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

The description is front-loaded with the action and resource, followed by helpful examples and filter options. The long enumeration of voucher types is borderline but informative, and there is no redundant filler.

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

Completeness4/5

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

Given only two optional enum parameters, no required fields, no nested objects, and annotations covering side effects, the description is adequately complete. It could mention the returned list shape, but 'Browse the catalogue' sufficiently implies a list of voucher types.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have descriptions and enums. The description's mention of optional region/category filters simply restates the schema rather than adding new semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Browse' and names the resource: 'the catalogue of companion & upgrade voucher types' with explicit UK/US scope and concrete examples. It is clearly distinguishable from user-specific voucher tools like list_my_vouchers.

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

Usage Guidelines4/5

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

It clearly states optional region/category filtering and labels the data as 'free reference data', implying a read-only catalogue rather than user-owned vouchers. However, it does not explicitly contrast it with sibling tools like list_my_vouchers.

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

log_lounge_visitAInspect

Log an airport lounge visit to your portfolio: which lounge, airport, date, how you got in (Priority Pass, card, status, ticket), an optional 1-5 rating, and notes. Use with the lounge_* lookup tools to confirm the lounge name first. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional notes
ratingNoOptional 1-5 rating
visit_dateYesDate of the visit (YYYY-MM-DD)
lounge_nameYesLounge name, e.g. Qantas First Lounge
airport_codeYesAirport IATA code, e.g. LHR
access_methodNoHow you got in, e.g. Priority Pass, Amex Platinum, business ticket

TDQS

A3.8/5.0
Behavior3/5

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

The description adds useful context beyond the annotations by disclosing that this is a paid feature and by recommending a lookup before logging. It does not, however, describe duplicate handling, whether existing entries are overwritten, or what the tool returns after logging. Given the minimal annotations, the description only partially carries the behavioral disclosure burden.

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

Conciseness5/5

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

The description is compact, front-loaded with the primary purpose, and contains no filler. Each sentence earns its place: the action and fields, the recommended lookup workflow, and the payment constraint.

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

Completeness4/5

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

The description covers the essential invocation context: what is logged, which fields matter, how to confirm the lounge name, and the paid-feature requirement. It is slightly incomplete in not addressing how this relates to lounge_mark_lounge_visited or what happens if the lounge name is invalid, but the schema fills in the remaining parameter details.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the parameter list and adds example access methods, but it does not meaningfully extend the schema's parameter documentation or clarify relationships between parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Log an airport lounge visit to your portfolio') and enumerates the core fields captured. It is specific and actionable, but it does not explicitly differentiate itself from the very similar sibling lounge_mark_lounge_visited.

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

Usage Guidelines4/5

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

The instruction to 'Use with the lounge_* lookup tools to confirm the lounge name first' provides clear prerequisite context for when to call this tool. It also flags the paid-feature constraint. However, it does not explicitly state when NOT to use it, such as when a visit already exists and should be updated instead.

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

lookup_flightA
Read-only
Inspect

Identify the airline behind a pasted flight code (e.g. 'BA117', 'AA 1234'). Returns carrier name, country, and — when ATF supports the airline — the slug and loyalty program so the assistant can pre-fill an add_flight_booking call. Use this any time a user pastes or types a raw flight code without context.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_codeYesA flight code like 'BA117', 'AA 1234', or 'EK521'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false), and the description adds non-redundant behavioral detail: return fields (carrier name, country, slug, loyalty program) and the conditional 'when ATF supports the airline.' It clearly implies a read-only lookup with no mutation.

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

Conciseness5/5

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

Three compact sentences, each load-bearing: what the tool does, what it returns, and when to use it. No filler or repeated annotation information.

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

Completeness5/5

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

For a one-parameter, read-only lookup with no output schema, the description gives the return shape and a precise invocation trigger. Minor omissions like unexpanded 'ATF' or invalid-code behavior are not needed to select or call the tool correctly.

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

Parameters3/5

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

Schema coverage for the single parameter is 100% and already provides examples ('BA117', 'AA 1234'). The description restates the same raw-flight-code concept but does not add meaning beyond the schema, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names a specific verb and resource: 'Identify the airline behind a pasted flight code,' and reinforces it with concrete examples. It also ties the tool to a distinct downstream task ('pre-fill an add_flight_booking call'), which separates it from generic airline-search siblings like search_all_airlines.

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

Usage Guidelines4/5

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

Gives an explicit trigger: 'Use this any time a user pastes or types a raw flight code without context.' It does not name when-not-to-use alternatives, but the cue is specific enough that an agent can decide correctly.

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

lounge_add_to_wishlistA
Idempotent
Inspect

Add a lounge to your wishlist. Idempotent — adding a lounge already on your wishlist is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault
lounge_slugYesLounge slug (from search results)

TDQS

A3.9/5.0
Behavior2/5

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

The idempotency statement repeats what the idempotentHint annotation already provides, adding no behavioral information beyond the structured metadata. No side effects, authentication needs, or failure modes are disclosed, though the tool is a simple add operation.

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

Conciseness5/5

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

Two short sentences, both purposeful. The primary action is front-loaded and the idempotency clarification is concise.

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

Completeness5/5

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

For a simple one-parameter, no-output-schema mutation tool, the description and schema together fully cover what the agent needs to invoke it correctly.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter lounge_slug is fully documented in the schema with 'Lounge slug (from search results)', so the description does not need to add parameter details. It adds no extra semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Add a lounge to your wishlist.' This directly identifies the operation and distinguishes it from sibling tools like lounge_remove_from_wishlist and lounge_get_my_wishlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use obvious: when a user wants to save a lounge to their wishlist. It does not explicitly name alternatives or exclusions, but the context is clear enough to guide selection among the lounge siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_delete_reviewA
DestructiveIdempotent
Inspect

Delete your review of a lounge. Identify it by lounge_slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
lounge_slugYesLounge slug of the review to delete

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds a useful scope detail—the review must be 'your review'—and identifies lounge_slug as the target, but does not provide deeper behavioral context such as not-found handling or irreversibility beyond what the annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The purpose is front-loaded and the parameter guidance is clearly separated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter delete operation with annotations covering destructiveness and idempotency, the description is largely complete. It does not describe expected response or error behavior, and there is no output schema, but the tool is simple enough that this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the single parameter with a clear description. 'Identify it by lounge_slug' essentially restates the schema rather than adding new semantic meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete), the object (your review of a lounge), and the key identifier (lounge_slug). This distinguishes it from sibling tools like lounge_delete_visit, which deletes a visit, and lounge_update_review, which modifies a review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this when the user wants to delete their own review of a lounge, identified by lounge_slug. It does not explicitly name alternatives or exclusions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_delete_visitA
DestructiveIdempotent
Inspect

Delete one of your logged lounge visits. Identify it by lounge_slug; pass visited_at to pick a specific date if you have multiple visits to the same lounge.

ParametersJSON Schema
NameRequiredDescriptionDefault
visited_atNoVisit date (YYYY-MM-DD) — needed only to disambiguate multiple visits
lounge_slugYesLounge slug of the visit to delete

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the deletion behavior is covered. The description adds useful context: the visits are user-specific ('your logged visits') and visited_at is a disambiguation mechanism for multiple visits. It does not contradict annotations, though it leaves unspecified what happens if visited_at is omitted when multiple visits exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. The action is front-loaded, and the disambiguation guidance is directly attached to the parameter it relates to. No wasted words or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with two parameters and no output schema, the description covers what the tool does, how to identify the target, and when the optional parameter is needed. A minor gap is the lack of clarity about behavior when visited_at is omitted and multiple visits exist, but it is not a critical omission given the annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that lounge_slug is the primary identifier and visited_at is used specifically to disambiguate multiple visits. This helps an agent understand the role of each parameter more effectively than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete one of your logged lounge visits.' It explains identification via lounge_slug and optional visited_at for disambiguation. However, it does not distinguish this tool from the sibling 'delete_lounge_visit', which appears to be a near-identical operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the optional visited_at parameter: when you have multiple visits to the same lounge. It implies the tool is for deleting logged visits, but it does not explicitly contrast with alternatives like lounge_update_visit or lounge_mark_lounge_visited. Overall, usage context is clear with no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_discover_more_flight_toolsA
Read-onlyIdempotent
Inspect

Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights/points redemptions, aircraft seatmaps, and airport delays/wait times — with one-line install URLs. Call this when the user asks about points/miles, seat selection, airport delays/security waits, or 'what other flight tools are there?'

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds a behavioral detail about 'one-line install URLs' but does not elaborate on output format or side effects beyond that. It is consistent with annotations, and while it doesn't contradict, it adds limited extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, efficiently front-loading the core purpose and then providing explicit usage guidance. There is no fluff or redundancy; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, no output schema, and a straightforward discovery behavior, the description fully covers what the tool does and when to use it. It doesn't leave an agent guessing about invocation context or expected results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline for parameter semantics is 4. The description doesn't need to elaborate on parameters, and it correctly doesn't mention any. It adds no unnecessary param information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool discovers other flight & travel MCP servers and specifies the content categories (award flights, seatmaps, delays) and includes install URLs. It is specific about the resource and action, and although it doesn't explicitly differentiate from similar siblings like discover_more_flight_tools, the listed topics make its scope clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call the tool: 'Call this when the user asks about points/miles, seat selection, airport delays/security waits, or 'what other flight tools are there?'' This provides direct, unambiguous usage triggers, making it easy for an agent to decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_find_lounges_by_accessA
Read-onlyIdempotent
Inspect

Find all airport lounges accessible with a specific credit card, membership program, airline club, alliance status, or ticket class. For example, find all lounges you can access with your Amex Platinum or Priority Pass membership.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_methodYesAccess method slug (e.g. amex-platinum, priority-pass, chase-sapphire-reserve, business-class, star-alliance-gold)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe lookup. The description adds the notion of 'all' accessible lounges and the access-method scoping, which is useful but not a deep behavioral disclosure. It does not describe return format, pagination, or other runtime traits, but with strong annotations 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary purpose is front-loaded and the example reinforces the access_method parameter without redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup tool with annotations covering safety, the description is nearly complete: it states what is found, by what criterion, and gives a concrete usage example. It does not specify the return structure, but there is no output schema and the tool's scope is simple enough that the agent can reasonably infer a list of lounge results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, including an enum and an explanatory slug description, so the baseline is 3. The tool description adds useful grouping of access-method categories and examples, but it does not meaningfully compensate for any schema gap because none exists. The added value is marginal beyond what the schema already communicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: find all airport lounges accessible via a specified access method. It names concrete categories (credit card, membership program, airline club, alliance status, ticket class) and gives a practical example. However, it does not explicitly distinguish itself from sibling lounge tools like lounge_search_lounges or lounge_get_airport_lounges, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The example with Amex Platinum and Priority Pass implies when an agent should use this tool: when the user wants lounges accessible by a known access method. It does not mention alternatives or provide exclusions, so there is no explicit guidance about when not to use it or when to prefer a sibling lounge tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_airport_loungesA
Read-onlyIdempotent
Inspect

Get all airport lounges at a specific airport by IATA code. Returns every lounge at the airport with terminal location, amenities, access methods, and ratings.

ParametersJSON Schema
NameRequiredDescriptionDefault
iataYesAirport IATA code (e.g. LHR, JFK, SIN)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by promising complete coverage ('every lounge') and enumerating the returned attributes (terminal location, amenities, access methods, ratings), giving the agent a clear picture of the output beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The primary action and scope are front-loaded, and the second sentence efficiently lists the return fields. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup tool with no output schema, the description is sufficiently complete: it states the trigger condition, the scope, and the return fields. Minor omissions like pagination or error handling are acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already defines 'iata' as an airport code with a pattern and examples. The description's 'by IATA code' adds no new meaning, so the baseline of 3 for well-documented schema parameters applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and a clear resource ('all airport lounges at a specific airport by IATA code'), making the tool's function immediately obvious. It also distinguishes itself from sibling lounge tools by emphasizing airport-scoped completeness, not just any lounge search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when this tool should be used: when the agent has an IATA airport code and needs the full list of lounges at that airport. It does not explicitly mention alternatives or when not to use it, which prevents a 5, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_lounge_detailsA
Read-onlyIdempotent
Inspect

Get detailed information about a specific airport lounge by its slug. Returns full description, amenities, access methods, opening hours, capacity, ratings, and reviews count.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesLounge slug (from search results or airport lounges)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds concrete behavior by enumerating return fields (description, amenities, access methods, opening hours, capacity, ratings, reviews count), giving the agent a clear picture of what the response contains. No contradiction exists with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that names the resource, the action, and the key output categories. Every sentence earns its place, and the list of returned fields is compact yet informative. No filler or repetition of annotations/schema is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one fully-documented parameter and no output schema, the description is sufficiently complete: it states what is returned and how the slug is sourced. The only minor gap is not explicitly directing users to sibling search tools when the slug is unavailable, but the schema note covers this implicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for the only parameter, slug, including its source ('from search results or airport lounges'). The description merely repeats the slug parameter without adding new semantics beyond the schema, so the baseline of 3 applies and no bonus is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('detailed information about a specific airport lounge by its slug'), which clearly differentiates it from sibling list/search tools like lounge_get_airport_lounges or lounge_search_lounges. The phrase 'by its slug' precisely identifies the input dimension, making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving details for a lounge whose slug is already known ('by its slug'), and the schema adds that slugs come from search results or airport lounges. However, it does not explicitly state when to use this tool instead of lounge_search_lounges or lounge_get_airport_lounges, nor does it exclude cases where the slug is unknown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_my_passportA
Read-onlyIdempotent
Inspect

Get your lounge passport — stats (lounges visited, airports, countries, reviews), country stamps, full visit history, and your reviews. Includes a shareable passport URL when your profile is public.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, so the description does not need to restate safety. It adds useful behavioral context beyond the annotations: the return payload includes stats, stamps, visit history, reviews, and the shareable URL appears only when the profile is public. This is meaningful transparency about output contents and conditional behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the core purpose and quickly enumerates the key payload contents. Every clause adds information: what the passport containschers and the conditional shareable URL. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a zero-parameter read-only tool, the description covers the main things an agent needs to know: what it returns and the one conditional behavior (URL only when public). It does not describe formatting or exact response structure, but no output schema exists and the enumerated contents make the return shape reasonably predictable; a minimal gap remains around pagination or ordering of visit history.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters blade, the schema is just an empty object. Baseline for 0-param tools is 4 even without param-specific detailscarsen. The description compensates by explaining what data will be returned, which is the relevant semantics when there is nothing to configure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly names the resource ('lounge passport') and enumerates its contents: stats, country stamps, full visit history, reviews, and a shareable URL. This clearly distinguishes it from sibling tools like lounge_get_my_profile, lounge_get_my_visits, and lounge_get_my_reviews by framing it as an aggregate passport view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is for retrieving a user's own aggregate passport data, which implies it is the go-to tool for a holistic lounge summary. It doesn't explicitly mention when to prefer siblings instead (e.g., when only reviews or visits are needed), but the resource naming ('my passport') and contents imply that distinction. The public-profile URL condition gives a concrete context signal without being a full routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_my_profileA
Read-onlyIdempotent
Inspect

Get your Airport Lounge List profile — username, stats (reviews, visits, wishlisted lounges), and recent activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds scope context by emphasizing the user's own profile and the types of data returned, but it does not disclose additional behavioral traits such as authentication requirements, rate limits, or whether output is time-sensitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence that front-loads the purpose and then lists the returned content. Every word contributes meaning, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only profile retrieval tool, the description is mostly complete. It identifies the subject, the owner, and the main content areas, although 'stats' and 'recent activity' are slightly vague. Without an output schema, a bit more detail on what 'recent activity' covers would make it fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parametersaine; the empty schema covers everything. A baseline of 4 applies here because the description does not need to compensate for undocumented parameters, and there are none to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the user's own Airport Lounge List profile and enumerates its contents: username, stats, and recent activity. This makes its purpose obvious and distinct from sibling tools like lounge_get_my_reviews or lounge_get_my_wishlist, which focus on individual components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to prefer this aggregate profile tool over the more specific sibling tools such as lounge_get_my_passport, lounge_get_my_reviews, lounge_get_my_visits, or lounge_get_my_wishlist. The intended usage is implied but not stated, and no exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_my_reviewsA
Read-onlyIdempotent
Inspect

Get your lounge reviews, including pending ones. Returns rating, content, approval status, and lounge info.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax reviews to return (default 20, max 50)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavior beyond that: it explicitly includes pending reviews and specifies the response contents (rating, content, approval status, lounge info). This gives an agent useful expectations that structured fields do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler or repetition. It front-loads the action and resource, then adds the most important behavioral detail (pending reviews) and return fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with one optional parameter, the description is complete. It states what is returned, including the approval status and lounge info, and the annotations already cover the safety profile. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, limit, is fully documented in the input schema with default and maximum values, giving 100% schema coverage. The description adds nothing about limit, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get your lounge reviews.' It also clarifies scope by mentioning pending ones and listing the returned fields, making it clearly distinct from sibling tools like lounge_get_my_visits or lounge_get_my_wishlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is directly stated: retrieve the calling user's lounge reviews, including pending ones. It does not name sibling alternatives like lounge_write_review or lounge_update_review, but those are clearly different operations, so there is no real ambiguity about when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_my_visitsB
Read-onlyIdempotent
Inspect

Get your visited lounges list with dates and notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax visits to return (default 20, max 50)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is known. The description adds that the result contains dates and notes, which is modest extra context but does not reveal pagination, ordering, or other behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler. It states the core action and output content immediately and does not repeat the tool name or schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read-only tool with one optional parameter, the description and schema together cover the essential information. The main gap is the lack of differentiation from the similarly named list_lounge_visits, but the tool is otherwise sufficiently specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the limit parameter fully documented including default and maximum. The description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (your visited lounges list) and the verb (get), and mentions the returned fields (dates and notes). It does not differentiate from the similar sibling list_lounge_visits, but the resource scope is specific enough to be understood.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as list_lounge_visits or lounge_get_my_passport. The description implies a personal-visits context but gives no exclusions, prerequisites, or conditions for choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_my_wishlistA
Read-onlyIdempotent
Inspect

Get your lounge wishlist — lounges you want to visit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description needs only to add context beyond safety. It adds the semantic clarification that the wishlist contains 'lounges you want to visit,' but it does not disclose any additional behavioral traits such as response shape, empty-list behavior, or authentication scoping beyond 'your.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that defines both the action and the resource with no filler. Every word earns its place, and the em-dash clarification adds meaningful semantic value without bloating the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list retrieval tool with rich safety annotations and a self-explanatory name, the description is complete. It tells the agent exactly what the tool returns and who it belongs to, which is sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters)Skip, so there is nothing for the description to elaborate. The baseline for a parameterless tool is 4, and the description appropriately contains no invented parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('your lounge wishlist'), then clarifies the exact domain meaning: 'lounges you want to visit.' This distinguishes it from siblings like lounge_get_my_visits (past visits) and lounge_get_my_reviews without needing to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'your lounge wishlist — lounges you want to visit' implies this is the read-only retrieval tool for saved desired lounges, as opposed to add/remove wishlist tools or visit-history tools. However, it does not explicitly say 'use lounge_add_to_wishlist to modify' or name any alternatives, so the guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_get_network_loungesA
Read-onlyIdempotent
Inspect

Get all lounges in a specific lounge network. Returns every lounge that accepts a particular network membership (e.g. all Priority Pass lounges worldwide).

ParametersJSON Schema
NameRequiredDescriptionDefault
networkYesNetwork slug (priority-pass, loungekey, dragonpass, plaza-premium, amex-centurion)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a meaningful behavioral detail: it returns the full set of lounges in the network, not a filtered or paginated view. No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the primary action front-loaded locked to the resource. The example parenthetical reinforces meaning without bloat. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only retrieval tool, the description is nearly complete: it states the resource, scope, and expected result. It could mention pagination or ordering, but given the simplicity of the tool and the absence of an output schema, the existing description suffices for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the only parameter, network, already has a detailed enum and description. The description merely repeats the example network name without adding format details, alternatives, or edge cases, so it adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get all lounges in a specific lounge network.' It further clarifies scope with 'Returns every lounge that accepts a particular network membership' and gives a concrete example (Priority Pass worldwide), effectively distinguishing this from airport-level or search-based lounge tools like lounge_get_airport_lounges and lounge_search_lounges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: use this when you need all lounges under a single network membership. However, it does not explicitly mention when to prefer this over siblings (e.g., airport lounges vs. network lounges) or provide any exclusions. The guidance is clear but not explicit about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_list_access_methodsA
Read-onlyIdempotent
Inspect

List all available lounge access methods including credit cards (Amex Platinum, Chase Sapphire Reserve, etc.), membership programs (Priority Pass, LoungeKey, etc.), airline clubs, alliance status levels, and ticket classes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds content scope ('all available') but does not describe output format, pagination, or any further behavioral nuances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-structured sentence that front-loads the action and resource, then packs the relevant categories into a clear list. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless, read-only catalog tool, the description fully explains what the agent will get. The categories listed align with the tool name and the no-parameter schema carries no additional requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameterschers, so there is no parameter documentation burden. The description adds meaningful context about what the returned list covers, which is sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' targeting the clear resource 'lounge access methods' and enumerates the exact categories included. This makes the tool immediately distinguishable from sibling lounge-searching and lounge-visit tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: an agent should call this when it needs a categorical catalog of lounge access methods. However, there is no explicit when-to-use guidance or mention of alternatives such as lounge_find_lounges_by_access or lounge_get_network_lounges.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_list_networksA
Read-onlyIdempotent
Inspect

List all lounge networks (Priority Pass, LoungeKey, DragonPass, Plaza Premium, Amex Centurion) with their descriptions and total lounge counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds value by specifying the exact networks and the output fields (descriptions and total lounge counts), which is particularly helpful given there is no output schema. It goes beyond the annotations by detailing what the result contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the verb and resource, and lists the specific networks without any fluff. Every word earns its place; it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no parameters, the description is complete: it states the purpose, the scope, and the return contents. Annotations cover the safety profile, and no output schema exists, so the description's mention of descriptions and counts is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly makes no parameter claims, and since there are no parameters, no further semantic addition is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' with a specific resource 'lounge networks' and enumerates the exact networks (Priority Pass, LoungeKey, etc.) plus what is returned (descriptions and total lounge counts). This distinguishes it from sibling tools like lounge_get_network_lounges, which list lounges within a network, not the networks themselves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: an agent can infer to use this tool when it needs a list of lounge networks and their counts. However, there is no explicit guidance on when not to use it or alternatives (e.g., lounge_get_network_lounges for lounges in a network). The context is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_mark_lounge_visitedBInspect

Log a lounge visit (check in). Identify the lounge by its slug OR by lounge_name + airport_iata. Optionally add a 1-5 rating and notes. Idempotent: logging the same lounge on the same date updates the existing visit's rating/notes instead of creating a duplicate.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional notes about your visit
ratingNoYour rating, 1 (poor) to 5 (excellent)
visited_atYesDate of visit (YYYY-MM-DD)
lounge_nameNoLounge name — use with airport_iata if you don't have the slug.
lounge_slugNoLounge slug (from search results). Preferred if known.
airport_iataNo3-letter airport IATA code — use with lounge_name.

TDQS

B3.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims the tool is idempotent ('Idempotent: logging the same lounge on the same date updates the existing visit...'), which directly contradicts the idempotentHint annotation set to false. This is a clear annotation contradiction, and per the rubric behavioral transparency must be scored 1.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no redundant content. It front-loads the main purpose ('Log a lounge visit'), then supplies identification options and the idempotent behavior, all in a compact and readable structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no output schema, the description covers the key operational aspects: identification options, optional rating/notes, and update behavior. However, it does not describe the return value or confirmation of the operation, which would be valuable given the absence of an output schema. Minor gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds critical relational semantics by explaining that the lounge can be identified by slug OR lounge_name+airport_iata, which is not expressed in the schema's flat property list. It also clarifies the optionality of rating and notes, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Log a lounge visit (check in)' with specific verb and resource. It also specifies how to identify the lounge (slug or lounge_name + airport_iata) and optional rating/notescott. However, it does not explicitly distinguish itself from the near-identical sibling 'log_lounge_visit', so it misses the highest rating for sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended use case (logging a visit) and provides parameter-level guidance (identify via slug OR name+IATA, optional rating/notes). But it does not mention when not to use this tool or name alternatives like 'lounge_update_visit' for existing visits. The usage context is clear but lacks exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_remove_from_wishlistA
DestructiveIdempotent
Inspect

Remove a lounge from your wishlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
lounge_slugYesLounge slug (from search results)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and idempotentHint=true, so the description is not required to repeat those. The description adds a value beyond annotations by specifying the operation's target (wishlist removal), which is clear from the verb. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, succinct sentence that clearly states the action. There is no unnecessary content, and it is front-loaded with the core verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with one parameter, no output schema, and annotations covering safety/idempotency, the description is nearly complete. Minor gap: it does not indicate what happens if the lounge is not in the wishlist or how to find the slug, but the schema covers the slug's origin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the parameter 'lounge_slug' with a reference to search results, achieving 100% schema description coverage. The description does not add further semantic detail, but the baseline of 3 applies given high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'remove' with the resource 'lounge' and the target 'wishlist', clearly indicating the action. However, it does not explicitly differentiate from the sibling 'lounge_add_to_wishlist' or 'lounge_get_my_wishlist', though the verb is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives or exclusions. The existence of 'lounge_add_to_wishlist' and 'lounge_get_my_wishlist' implies the usage context, but the description does not state it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_search_loungesA
Read-onlyIdempotent
Inspect

Search airport lounges worldwide by name, airport name, IATA code, city, or country. Returns matching lounges with amenities, access methods, and ratings. Use this to find specific lounges or discover lounges in a location.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (lounge name, airport name, IATA code, city, or country)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds useful details about return content (amenities, access methods, ratings), but does not disclose deeper behavior such as pagination, result limits, or match semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two efficient sentences with no wasted words. The main action and scope are front-loaded, and the return payload is summarized concisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only search tool with no output schema, the description is largely complete: it tells the agent what to search by and what results will contain. It does not mention pagination or empty-result behavior, but these are minor for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains 'query' as 'Search query (lounge name, airport name, IATA code, city, or country).' The description mostly repeats this information without adding new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Search airport lounges worldwide by name, airport name, IATA code, city, or country.' It also states what is returned, and the wording differentiates it from sibling tools like lounge_get_airport_lounges or lounge_find_lounges_by_access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'Use this to find specific lounges or discover lounges in a location.' This tells the agent when the tool is appropriate, though it does not explicitly name alternatives or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_update_reviewA
DestructiveIdempotent
Inspect

Update your review of a lounge — change the rating and/or the text. Identify the review by lounge_slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
ratingNoNew rating, 1-5
contentNoNew review text (minimum 10 characters)
lounge_slugYesLounge slug of the review to update

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description openly says it changes an existing review and is consistent with the destructiveHint annotation. It adds useful specifics about which fields can be changed, though it does not describe overwrite behavior or what happens if the review does not exist. With annotations already carrying the destructive signal, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and resource, specifies the mutable fields, and states how to identify the target review. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter update with full schema coverage and safety-relevant annotations, the description is nearly complete. The only gap is not explicitly stating that the review must already exist and belong to the user, though 'your review' implies this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents lounge_slug, rating, and content. The description reinforces lounge_slug as the review identifier and the optionality of the other fields, but adds no format or behavior details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Update') and resource ('your review'), and names the changeable contents (rating and/or text) plus the identifier (lounge_slug). This makes it clearly distinct from sibling tools like lounge_write_review and lounge_delete_review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: modify an existing review rather than create or delete one. However, the description does not explicitly state when to prefer this over lounge_write_review or any preconditions such as requiring the user to already own a review.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_update_visitA
DestructiveIdempotent
Inspect

Update one of your logged lounge visits — change the rating, notes, or date. Identify the visit by lounge_slug; if you have multiple visits to the same lounge, pass visited_at to pick the one to update.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNew notes
ratingNoNew rating, 1-5
visited_atNoExisting visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits
lounge_slugYesLounge slug of the visit to update
new_visited_atNoChange the visit date to this (YYYY-MM-DD)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the mutation risk is conveyed. The description adds that only rating, notes, or date can change, but does not disclose consequences like overwriting existing values or requiring ownership. This does not contradict annotations, but adds only modest behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The primary purpose is front-loaded, followed immediately by the key identification rule. Every sentence carries operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, no output schema, and annotations that already cover mutability and destructiveness. The description explains how to identify the visit and what fields are updatable, which covers the main invocation decisions. It does not mention error handling or return behavior, but those are not required given the absence of an output schema and the simplicity of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all 5 parameters with 100% coverage, including the purpose of visited_at for disambiguation. The description reinforces the disambiguation rule but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, resource, and scope: "Update one of your logged lounge visits — change the rating, notes, or date." This clearly distinguishes it from delete/log operations even without naming sibling tools. It would score 5 with an explicit alternative mentioned, so 4 fits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context for identifying the visit: "Identify the visit by lounge_slug; if you have multiple visits to the same lounge, pass visited_at to pick the one to update." However, it does not explicitly state when to use this tool versus alternatives like logging a new visit or deleting a visit, so guidance is implied rather than direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lounge_write_reviewBInspect

Write a review for a lounge. Requires the lounge slug, a rating (1-5), and review text (min 10 characters).

ParametersJSON Schema
NameRequiredDescriptionDefault
ratingYesRating from 1 (poor) to 5 (excellent)
contentYesReview text (minimum 10 characters)
lounge_slugYesLounge slug (from search results)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=false, so the description's 'Write' action adds no new behavioral information. It does not disclose whether submitting a review for a lounge the user already reviewed will replace, reject, or duplicate the existing review. No contradiction exists between the description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the requirements are listed compactly. Every sentence contributes necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create-style tool with three fully described parameters and no output schema, the description covers the essential call requirements: what to do and what fields are needed. It could be more complete by clarifying that this is specifically for creating a new review, especially given the presence of lounge_update_review, but it is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description restates lounge slug, rating, and review text but adds no meaning beyond what the schema provides. The phrase 'from search results' already appears in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Write a review for a lounge.' It clearly identifies the target action and the required inputs, and the action 'write' reasonably implies creating rather than updating or deleting. However, it does not explicitly name or distinguish itself from the sibling tools lounge_update_review and lounge_delete_review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention that this tool creates a review while lounge_update_review modifies an existing one or lounge_delete_review removes one. The usage context is only implied by the verb 'write'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

monitor_hotel_priceAInspect

Start monitoring a hotel points booking for price drops. Checks daily and sends email alerts when the points rate decreases. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
rate_planYes
room_typeYes
hotel_codeYesHotel code or numeric id from search_hotels
check_in_dateYes
check_out_dateYes
original_pointsYesTOTAL points cost (per-night rate x nights)
confirmation_numberNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only, and the description adds useful behavioral details: it checks daily, sends email alerts, and is a paid feature. This goes beyond the annotations by explaining recurring side effects and monetization, though it does not disclose how payment is handled or how monitoring can be canceled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two crisp, front-loaded sentences. The primary action and target are stated immediately, and the recurring behavior and paid nature are added without unnecessary filler. Every clause contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a solid high-level picture and the schema provides some key field details, but there is no output schema and low parameter coverage. The agent is left uncertain about what the tool returns, how the paid feature is charged, and how to stop monitoring. This is adequate but has clear gaps for a tool with eight parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description needed to compensate by explaining parameters. It does not. The description adds no guidance about how to calculate original_points, what room_type and rate_plan should contain, or when confirmation_number is needed, leaving key invocation details unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Start monitoring'), names the resource ('hotel points booking'), and clearly states the purpose ('price drops'). It is easily distinguishable from sibling tools like create_route_monitor or fs_create_seat_alert because it specifically targets hotel points bookings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use it: when the user wants ongoing price-drop monitoring for a hotel points booking. It does not explicitly name alternatives or state when not to use it, but the 'hotel points booking' scope and 'paid feature' note provide sufficient context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_tripA
Read-only
Inspect

Plan an end-to-end award trip in one call. Searches all airlines, ranks options against the user's balances + active transfer bonuses, and surfaces the best route — including transfer paths if the user is short on points. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNo
originYes
passengersNo
destinationYes
flexibility_daysNoOptional ± days flexibility — if set, also probes adjacent dates

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and non-destructive behavior. The description adds useful behavior beyond annotations: it consults user balances and active transfer bonuses, ranks options, and dynamically includes transfer paths when the user is short on points, plus a 'Premium tier' entitlement signal. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense, front-loaded sentences with no fluff. The ranking, balance-aware, and transfer-path behaviors each add distinct value, and 'Premium tier' is compact context rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives solid orientation and annotations cover mutability, but this is a complex 6-parameter planner with no output schema. It does not describe how the resulting plan is returned or how cabin, passengers, and flexibility_days affect ranking/output. Still, the core invocation intent is clear enough to proceed with required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (flexibility_days), and the description gives no parameter-level guidance for origin, destination, date, cabin, or passengers. It implies trip context, but it does not compensate for the mostly undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair: 'Plan an end-to-end award trip in one call.' It then distinguishes the tool from siblings by describing end-to-end, balance-aware ranking across all airlines and transfer-path suggestions, which separates it from raw search tools like search_all_airlines and search_availability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The first sentence establishes a clear use case: call this when the user wants a complete award trip plan, not just availability. However, it does not explicitly name alternatives or say when to prefer a simpler search tool, so the agent must infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_redemptionA
Read-only
Inspect

Recommend the optimal points strategy for a specific trip given the user's known points balances. Combines active award availability + transfer bonuses + the user's portfolio. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNo
originYes
passengersNo
destinationYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a safe, read-only, open-world operation, and the description adds useful behavior beyond that: it is a composite recommendation combining dynamic award availability, transfer bonuses, and portfolio state. 'Active award availability' implies real-time data, and 'Premium tier' signals a possible access gate. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The main action is front-loaded, and each clause adds distinct information: trip specificity, portfolio context, the three combined data sources, and the premium-tier qualification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a relatively complex recommendation tool with five parameters, no output schema, and no schema-level parameter descriptions, but the description does not explain what the returned recommendation looks like, how optional parameters affect it, or what 'Premium tier' means in practice. An agent would still be guessing about the result format and edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate, but it barely does. 'Specific trip' loosely implies origin, destination, and date, and 'points balances' hints at user context, but cabin and passengers are entirely unaddressed. There is no guidance on formats, defaults, or how parameters shape the recommendation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Recommend'), a clear resource ('optimal points strategy for a specific trip'), and a governing context ('user's known points balances'). It also distinguishes itself from siblings like recommend_status_path and compare_transfer_options by stating it combines active award availability, transfer bonuses, and the user's portfolio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys when this tool is relevant: for a specific trip, using known balances, live award availability, and transfer bonuses. It does not explicitly exclude alternatives or name competing tools, but the 'specific trip' and 'user's known points balances' framing gives clear context. The 'Premium tier' note adds an access-related condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_status_pathA
Read-only
Inspect

Recommend the cheapest path to an elite tier — EARN it through planned flying, RUN for it (a tier-point run), or MATCH/challenge into it from a status the user already holds. Uses the user's tracked statuses, booked flights, and the status-match graph. Answers 'what's the easiest way to get Qatar Gold?'. Premium. Pass the target program slug (e.g. 'qatar-privilege-club') and optionally a target tier; defaults to the next tier up from what they hold, else the top tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_tierNoOptional target tier (e.g. 'Gold'). Defaults to the next tier above the user's current one, or the top tier.
target_programYesProgram slug to reach status with — e.g. 'qatar-privilege-club', 'british-airways-executive-club'.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat safety. It adds useful behavioral context: it uses 'user's tracked statuses, booked flights, and the status-match graph' and notes it's 'Premium'. This gives the agent a sense of data dependencies and cost implications beyond the schema. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence earns its place: first sentence states purpose and strategies, second adds data context and premium flag, third explains parameters and defaults. The core purpose is front-loaded. Slightly verbose with the example question, but that aids clarity rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only recommendation tool with no output schema, the description covers invocation needs: required/optional parameters, default behavior, data sources, and premium gating. It does not specify the output format (e.g., whether it returns a plan, steps, or cost breakdown), which is a minor gap for an agent setting expectations, but the lack of an output schema lessens the burden. Overall, it's complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters already have descriptions. The description goes further by explaining the default logic for target_tier ('next tier up... else top tier') and provides concrete slug examples. This adds meaningful semantic guidance that helps an agent construct valid calls, exceeding what the schema alone offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Recommend the cheapest path to an elite tier' with explicit strategies (EARN, RUN, MATCH/challenge). It also gives an example question ('what's the easiest way to get Qatar Gold?') which anchors the tool's purpose. It distinguishes from sibling tools like get_status_matches and get_status_progress by focusing on path recommendation rather than raw data retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (when a user asks how to reach a tier) and describes the three strategies. It mentions 'Premium' as a gating condition and gives parameter guidance (target_program required, target_tier optional with default behavior). It does not explicitly list when not to use it or name alternative tools, but the context is clear enough for an agent to route appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_uiA
Read-only
Inspect

Render a visual card in the chat instead of writing a markdown table or a long list of numbers. Use it for comparisons, cost breakdowns, transfer paths, plans, rankings, and any answer with more than ~3 numbers in it. Compose the card from blocks; every block is optional and you can repeat kinds.

Block kinds:

  • stats — headline numbers. items: [{label, value, sub}]

  • table — columns: ["Program","Points"], rows: [["Aeroplan","60,000"]]

  • bars — visual comparison. unit: "pts", items: [{label, value (number), note}]

  • steps — an ordered path or plan. items: [{label, detail}]

  • list — rows with an optional right-hand value and link. items: [{title, subtitle, meta, value, url}]

  • note — a callout. tone: info|warn|success|danger, text

Plain text only in every field — no markdown, no HTML. Keep your written reply to a sentence or two; the card carries the detail, so do not restate it. Do NOT call this after a search/hotel/transfer tool that already returned its own card.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoCard heading, e.g. "SFO → NRT in business".
blocksYesBlocks to render, in order. Max 10.
subtitleNoOne-line context under the heading.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description goes beyond this by specifying important behavioral constraints: plain-text-only fields, no markdown/HTML, keeping the written reply to a sentence or two, and avoiding redundant cards after other tools. These are useful behavioral traits not encoded 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly organized: first a clear purpose and use cases, then a compact enumeration of block kinds with concrete field patterns, and finally formatting constraints. Every sentence carries useful information, and the structure makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a rendering tool with a well-documented schema and safety annotations, the description is complete. It covers when to use it, the main data structures, output format constraints, and an explicit exclusion condition. No output schema is needed for a UI renderer, and the absence is not a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value by detailing the structure of items for each block kind (stats, bars, steps, list) beyond the generic schema, making parameter construction much clearer. It stops short of fully specifying every optional field, but it substantially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Render a visual card in the chat instead of writing a markdown table or a long list of numbers.' It plainly states what the tool produces and explicitly distinguishes it from typical data-returning sibling tools by warning not to call it after a tool that already returned its own card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is explicit: use it for comparisons, cost breakdowns, transfer paths, plans, rankings, and answers with more than ~3 numbers. The exclusion is also stated: do NOT call after a search/hotel/transfer tool that already returned its own card. This gives an agent clear decision rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_all_airlinesA
Read-only
Inspect

Search award flight availability across every airline currently LIVE for a route and date, in parallel. The live list is measured from real searches in the last 72h (see list_supported_airlines); airlines whose source is down, blocked or login-walled are not fanned out to, and the response's coverage field says how many were. Any catalogued airline can still be requested by name with search_availability. Returns combined results grouped by airline. This is the recommended starting point — use single-airline search only if you need a specific airline. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesTravel date (YYYY-MM-DD)
cabinNoCabin to unlock and rank by (default: economy). Results list EVERY bookable cabin the airline returned, not just this one — free accounts may only request economy.
flex_daysNoAlso search this many days either side of the date. Only widens the seats.aero results (all 24 programmes); the per-airline search stays on the exact date.
arrival_codeYesArrival airport IATA code (e.g. JFK)
departure_codeYesDeparture airport IATA code (e.g. LHR)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, the description discloses a sign-in requirement, free versus Premium daily search quotas, parallel fan-out behavior, the coverage field, and the fact that unavailable airlines are omitted from the fan-out. This gives an agent a realistic model of what happens at call time without repeating annotation data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences each earn their place: the core action, the live-list caveat, the alternative tool routing, and account/auth constraints. The description is front-loaded with the most important information and avoids filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex parallel search tool with no output schema, the description covers sign-in, quotas, airline-source caveats, the coverage field, and the grouped-by-airline response shape. The main remaining gap is that the full result item structure is not specified, but the description still gives an agent enough to invoke and interpret the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all parameters (100% coverage), so the baseline is 3. The description adds account-tier behavior relevant to the cabin parameter ('Free accounts get 3 economy searches/day; Premium ... gets unlimited searches across every cabin') and frames the required parameters as a route-and-date parallel search, which slightly enriches the schema without replacing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: 'Search award flight availability across every airline currently LIVE for a route and date, in parallel.' It also distinguishes itself from the single-airline sibling by naming search_availability and identifying itself as the recommended starting point, so no agent confusion remains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is present: 'This is the recommended starting point — use single-airline search only if you need a specific airline.' It further clarifies when airlines are skipped (source down, blocked, or login-walled) and points to list_supported_airlines and search_availability as supporting alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_availabilityA
Read-only
Inspect

Search live award availability for a specific airline, route, and date. 30 airlines can be requested, but only those list_supported_airlines reports as live are returning seats right now — when a source is down, blocked, or needs a member login the result says so explicitly instead of reporting zero seats, so never read an unsearchable source as 'no availability'. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNoCabin to unlock and rank by (default: economy). Results list EVERY bookable cabin the airline returned, not just this one — free accounts may only request economy.
airlineYes
arrival_codeYesIATA code (SIN), or a city or airport name
departure_codeYesIATA code (LHR), or a city or airport name (Heathrow, Tokyo)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the call read-only and non-destructive; the description adds a crucial behavior that can't be inferred: a down/blocked/login-required source reports 'unsearchable' rather than zero availability. It also discloses authentication and per-plan quota behavior, which is substantive context beyond readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two information-dense sentences with the purpose front-loaded and no filler. The caveats (source liveness, error semantics, auth, quota) are packed logically after the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Invocation-critical context is present: prerequisite tool, error semantics, auth, and quota. However, there is no output schema and the description does not describe the shape of a successful availability result (e.g., what fields/options are returned), which is a meaningful gap for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 60% schema coverage, the schema documents cabin, departure_code, and arrival_code, but airline and date have no descriptions. The description compensates by explaining that only airlines in list_supported_airlines are currently returning seats and that plan tier constrains searchable cabins. It doesn't add date-format details, but the pattern already covers that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Search live award availability') and scopes it to a specific airline, route, and date, distinguishing it from cash-flight and all-airline search siblings. The word 'award' plus 'specific airline' is enough for an agent to pick this over search_cash_flights or search_all_airlines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear contextual guidance: consult list_supported_airlines first, treat unsearchable sources as explicit failures rather than zero seats, and respect sign-in/plan quotas. It does not explicitly name alternative tools for multi-airline or multi-date searches, so it stops short of full when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cash_flightsA
Read-only
Inspect

Real cash flight prices via Duffel (GDS) and Ignav (REST). Use to compare cash vs award redemptions or to surface the cheapest cash option for a route. Returns price + airline + flight number + cabin per option. Hosted keys — no per-user setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNo
originYes
sourceNoDefault 'auto' tries Duffel, then Ignav, then AirTRFX. Force one with 'duffel', 'ignav' or 'airtrfx'.
airlineNoAirline slug for the 'airtrfx' source (e.g. 'american', 'klm'). AirTRFX is per-airline, so this is required to use it.
passengersNo
destinationYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint; the description adds valuable context beyond that: data sources (Duffel GDS, Ignav REST), return contents, and 'Hosted keys — no per-user setup', which clarifies access requirements. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four short sentences with no fluff. It front-loads the core function first, then use cases, return format, and access details. Each sentence earns its place and reads clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description covers the output format, use cases, and setup requirements, which is strong. It does not mention required parameters or the source fallback behavior, though those are partially captured in the schema. Given the 7-parameter complexity, a bit more parameter context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, and the description provides essentially no parameter-level guidance. Origin, destination, date, cabin, and passengers lack semantic explanation in both the schema and description, leaving the agent to infer meaning from names and patterns alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'search cash flight prices'. It explicitly distinguishes from award redemptions with 'compare cash vs award redemptions', and lists data sources (Duffel, Ignav) plus return fields (price, airline, flight number, cabin), making the tool's identity clear among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: 'to compare cash vs award redemptions or to surface the cheapest cash option for a route'. It does not explicitly name alternatives or exclusion criteria, but the use cases are specific enough to guide correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_hotelsA
Read-only
Inspect

Search for hotels by name, city, or brand. Returns hotel codes needed for availability checks and price monitoring. Supports Marriott, Hilton, IHG, and Hyatt. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandNo
limitNo
queryYesHotel name or city

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the paid nature and the exact supported brand set, which are behavioral/selection traits not present in annotations. It doesn't describe pagination or sorting, but those are minor given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler. The core action is front-loaded, the output purpose follows immediately, and the final sentence packs brand support and paid status. Every sentence contributes distinct useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter search tool with no output schema, the description covers the necessary essence: what to search by, what you get back (hotel codes), why you'd use them, which brands are supported, and that it's paid. Missing details like result fields or pagination are secondary for a search-tool call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% with only 'query' documented. The description repeats that query can be a hotel name or city and mentions brand support, but the brand enum and limit min/max are already in the schema. It doesn't clarify the effect of the limit parameter; the description only partially compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource ('Search for hotels by name, city, or brand') and explicitly states the output's purpose ('hotel codes needed for availability checks and price monitoring'). Names four supported brands, positioning it distinctly from generic hotel search or availability-check tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: use it to obtain hotel codes for downstream availability and price checks, and the supported brand list narrows when it applies. The 'Paid feature' note adds a cost consideration. It doesn't explicitly contrast with siblings like find_premium_hotels, but the context is sufficient to infer primary usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_hybridA
Read-only
Inspect

Find the cheapest way to fly by combining cash tickets with award redemptions into one split-ticket journey. Searches cash fares (Google Flights) and award availability across airlines, then combines the best cash leg with the best award leg via connecting hubs. Best for premium cabins (business/first) on long-haul routes. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNoTarget cabin class (default: business)
originYes
destinationYes
points_value_centsNoHow you value points in cents/pence per point (default: 1.5)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond annotations by noting it is a 'Paid feature' and that it searches Google Flights, implying external data usage. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no fluff. It front-loads the core purpose, then explains mechanics, then gives usage context. Every sentence earns its place, making it efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with no output schema, the description provides enough context: it explains what it does, what inputs are needed (implicitly via schema), and the best-use scenario. It does not mention return format or limitations, but given the tool's simplicity and the annotations covering safety, this is adequate. Slight gap on expected output, hence 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 40% (only cabin and points_value_cents have descriptions). The description adds meaning for these two: 'premium cabins' maps to the cabin enum, and 'award redemptions' implies points_value_cents is used to value points. However, it does not explain origin, destination, or date beyond their obvious purpose, so it only partially compensates for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds the cheapest way to fly by combining cash and award tickets into a split-ticket journey, with specific verbs and resources (searches cash fares and award availability, combines via hubs). It distinguishes itself from siblings like search_cash_flights and search_availability by explicitly naming the hybrid nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear best-use scenario: 'Best for premium cabins (business/first) on long-haul routes.' It implies this is not for economy or short-haul, but does not explicitly name alternatives or exclusions. Since it gives a concrete context, it earns a 4 rather than 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_knowledge_baseA
Read-only
Inspect

Search the Miles & Points Daily + Smart With Points editorial archive for explainers and strategy. Use when the user asks 'how does X work', 'should I transfer to Y', 'best way to redeem Z', credit-card or transfer-bonus strategy questions, or anything that benefits from authoritative context. Returns ranked article excerpts with URLs to cite.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many excerpts to return (default 5)
queryYesNatural-language question or topic, e.g. 'best Avios redemption sweet spots from London'
sourceNoRestrict to one publication. Omit to search both.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this read-only, open-world, and non-destructive. The description adds value by disclosing the output shape: ranked article excerpts with URLs to cite. It does not detail ranking order or excerpt formatting, but for a search tool this is sufficient additional behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: what the tool searches, when to use it, and what it returns. The most important facts are front-loaded, and there is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, usage triggers, and return format (ranked excerpts with URLs), which is essential given there is no output schema. Combined with 100% parameter coverage in the schema, an agent has everything needed to decide and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces query semantics with natural-language examples but adds little beyond the schema for 'limit' or 'source'. It does not introduce any parameter meaning not already present in the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Search'), a concrete resource ('Miles & Points Daily + Smart With Points editorial archive'), and a clear content scope ('explainers and strategy'). It is immediately distinguishable from the many flight/hotel/search siblings because it is the only tool targeting this editorial knowledge base.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit trigger examples ('how does X work', 'should I transfer to Y', 'best way to redeem Z') and general condition ('anything that benefits from authoritative context'). It lacks an explicit when-not-to-use or alternative-tool pointer, so it stops just short of a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_merchant_multipliersA
Read-only
Inspect

Search a community-verified database of merchant bonus-category multipliers (e.g. 'which merchants earn 4x?', 'does Whole Foods earn a bonus on Amex Gold?'). Every entry is backed by a screenshot of the cardholder's statement as proof. Filter by merchant/card/category and a minimum multiplier. Returns verified entries with the earn rate, card, category, and a link to the proof. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardNoFilter to a specific card by name (e.g. 'Amex Gold'). Optional.
limitNoMax entries to return (default 20).
queryNoMerchant, card, or category to search for (e.g. 'Whole Foods', 'Amex Gold', 'Dining'). Optional.
countryNoTwo-letter country code to filter by (e.g. 'US', 'UK'). Optional.
categoryNoFilter to a bonus category (e.g. 'Groceries', 'Dining'). Optional.
min_multiplierNoOnly return entries earning at least this multiplier (e.g. 4 for 4x and up). Optional.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful extras: it mentions the database is community-verified, every entry is backed by a screenshot proof, and the tool is free. These contextual details go beyond annotations, but it does not disclose any rate limits, pagination behavior, or request/response specifics. Given annotations cover the essential safety aspects, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized but every sentence carries value. It front-loads the primary purpose and includes two illustrative example queries that help an agent understand the expected input format. The sentence about proof-backing and 'Free' adds trust and cost context without unnecessary verbosity. It could be slightly trimmed but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple search with all-optional parameters and no output schema. The description explains what results look like (verified entries with earn rate, card, category, and a proof link), provides example queries, and mentions filtering dimensions (merchant/card/category, minimum multiplier). This covers everything an agent needs to invoke it correctly; the only minor gap is the lack of mention of pagination, but the 'limit' parameter already exists in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (card, limit, query, country, category, min_multiplier) already has a clear description in the schema. The tool description adds no additional parameter semantics beyond what the schema provides, only reiterating the general filtering capability. Per the rubric, with high coverage, a baseline score of 3 is standard; the description does not improve it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching a community-verified database of merchant bonus multipliers. It provides concrete example queries ('which merchants earn 4x?', 'does Whole Foods earn a bonus on Amex Gold?') and explicitly lists what it returns (earn rate, card, category, proof link). This is a specific verb (search) + resource (merchant multipliers database) and the context distinguishes it from sibling search tools (e.g., search_availability, search_hotels) which target entirely different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool through its examples and domain, but does not explicitly mention alternatives or conditions for when not to use it. It gives clear context of what kind of queries it answers, but no exclusionary guidance. Since there are no sibling tools covering merchant multipliers, the need for explicit exclusions is low, but the lack of any 'use this instead' note prevents a higher score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_monthly_availabilityA
Read-only
Inspect

Search award flight availability for an entire month. Returns day-by-day availability with points costs. Renders as an interactive rate calendar. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesMonth to search (YYYY-MM or YYYY-MM-DD)
airlineYes
arrival_codeYes
departure_codeYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a read-only, non-destructive operation. The description adds value beyond those annotations by disclosing the output shape (day-by-day availability, points costs), the interactive calendar rendering, and the paid-feature requirement. It does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded sentences, each carrying distinct information: purpose, output format, rendering behavior, and cost/access requirement. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for a read-only search tool: it states what it searches, what it returns, how it renders, and that it is paid. Since there is no output schema, the return-value description is especially valuable. It could be more complete by clarifying that a month value is expected and by pointing to alternative tools for date-specific searches, but these are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description needed to explain the parameters, but it only reinforces the month/date aspect and mentions points costs. It does not clarify airline values or the departure/arrival airport codes beyond what their names and schema patterns already imply. The description adds very little semantic value over the schema for three of the four parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Search award flight availability for an entire month.' It further differentiates itself from siblings like search_availability and search_cash_flights by its month-wide scope, day-by-day output, and points-cost focus. Even without naming alternatives, an agent can tell what this tool uniquely does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear contextual guidance: use this when you need award availability across an entire month, presented as a day-by-day calendar. It does not explicitly name alternatives or exclusions, though the 'entire month' phrasing implicitly distinguishes it from single-date searches. The 'Paid feature' note also sets expectations about when it is applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_multi_passengerA
Read-only
Inspect

Find award seats for a group — filters out single-seat phantom availability. Returns only carriers reporting seats >= the requested passenger count. Premium tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
cabinNo
passengersYes
arrival_codeYes
departure_codeYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint, destructiveHint), the description adds meaningful behavioral details: it filters out phantom single-seat availability and only returns carriers meeting the requested passenger count. The 'Premium tier' note is somewhat vague, but it provides additional context about access or scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose and behavior. The 'Premium tier' sentence is short but ambiguous, slightly reducing clarity. Overall, it is efficient and avoids redundant repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description communicates the main functional behavior and return scope (carriers with sufficient seats), but with no output schema, it does not explain the exact structure of returned results. It also lacks explicit guidance on limitations or when to use sibling search tools. Given the moderate complexity, this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description must compensate for undocumented parameters. It does clarify the meaning of 'passengers' by tying it to seat count filtering, but it does not elaborate on departure_code, arrival_code, date, or cabin. The parameter names and schema constraints are self-explanatory, so the description adds partial value but not full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific purpose: finding award seats for a group, not just any seat availability. It also differentiates from potential siblings by explicitly mentioning the filtering of single-seat phantom availability and the group passenger count requirement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: when searching for award seats for multiple passengers, and it implies this is not for single-seat searches. However, it does not explicitly name an alternative tool or provide a when-not-to-use list, so it stops short of a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_my_documentsA
Read-only
Inspect

Search the user's OWN uploaded documents (award charts, hotel folios, itineraries, statements) and return ranked excerpts. Use when the user refers to 'my document', 'the folio/itinerary/chart I uploaded', or asks a question that should be answered from their own files rather than the public editorial archive. Returns matched excerpts with similarity scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many excerpts to return (default 5).
queryYesNatural-language question or topic to find in the user's documents.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context beyond those hints: it returns ranked excerpts and similarity scores, and it scopes the behavior to the user's own uploaded documents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short and front-loaded with the core action. The first sentence carries the main meaning; the last sentence somewhat repeats the return-value info from the first sentence, but the overall structure is still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately communicates what the agent receives (ranked excerpts with similarity scores), what document types are searchable, and when to use it. It is complete enough for an agent to select and invoke it correctly, though a named alternative would strengthen it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both query and limit already described in the schema. The description reinforces the natural-language nature of the query and the ranking behavior, but it does not add significant new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb (Search), a clearly scoped resource (user's OWN uploaded documents), and concrete document types (award charts, hotel folios, itineraries, statements). It also contrasts against the public editorial archive, which helps distinguish it from search_knowledge_base and other search siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit trigger phrases ('my document', 'the folio/itinerary/chart I uploaded') and clearly indicates when to use the tool (when the answer should come from the user's own files rather than the public archive). It does not name a specific alternative tool, so it falls just short of fully explicit when-not/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_loyalty_statusAInspect

Record or update the user's elite/loyalty status with an airline or hotel program (e.g. Marriott Bonvoy Titanium, BA Executive Club Gold, AA Executive Platinum). Knowing this lets the assistant flag perks like free breakfast, suite upgrades, lounge access, and free award nights when planning trips. Use exact tier names from the reference table: British Airways Executive Club → Blue/Bronze/Silver/Gold; Delta SkyMiles → Silver/Gold/Platinum/Diamond Medallion; Marriott Bonvoy → Member/Silver Elite/Gold Elite/Platinum Elite/Titanium Elite/Ambassador Elite; World of Hyatt → Member/Discoverist/Explorist/Globalist.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesExact elite tier name as used by the program — e.g. 'Gold' (BA), 'Diamond Medallion' (Delta), 'Globalist' (Hyatt), 'Titanium Elite' (Bonvoy). Case-insensitive; will be normalized to official casing.
notesNoOptional notes (free-form).
programYesLoyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy', 'world-of-hyatt', 'delta-skymiles'. Use the slug from the known programs list.
member_idNoOptional loyalty number.
expires_onNoOptional ISO date when this status expires.
target_tierNoOptional — a tier the user is chasing (must be a valid tier for the program).
qualifying_balanceNoOptional — current qualifying units this period (Tier Points / XP / Loyalty Points / MQD / PQP / nights), for status-progress tracking.
qualifying_year_endNoOptional — ISO date the qualifying/membership year ends.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-destructive operation. The description adds 'Record or update', which clarifies upsert behavior, and the exact-tier-name requirement implies input validation. It does not detail error handling or whether existing notes get overwritten, but it adds meaningful context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, immediately explains the downstream value, and then provides the necessary reference table. Every sentence earns its place, though the tier list is necessarily long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with 8 parameters, no output schema, and no enums, the description plus schema covers required inputs, valid values, and practical use. The only notable gap is that it doesn't describe what a successful response looks like, but that is a minor omission for a simple mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by providing a program-by-program reference table of valid tier names and concrete examples. This is especially valuable because no parameters use enums, so the description compensates for the lack of allowed-value definitions in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('record or update') and resource ('user's elite/loyalty status with an airline or hotel program'), with concrete examples like Marriott Bonvoy Titanium and BA Executive Club Gold. This makes the tool's function immediately clear and distinguishable from related siblings like list_loyalty_statuses and delete_loyalty_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains why the status matters ('lets the assistant flag perks... when planning trips') and insists on exact tier names, but it never explicitly says when to prefer this tool over alternatives such as set_status_progress or update_points_balance. Usage context is implied rather than stated, and no exclusions or alternative routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_status_progressAInspect

Update the user's qualifying progress toward an elite tier — their current tier-points / XP / Loyalty Points / qualifying nights, the date their qualifying year ends, and (optionally) a target tier they're chasing. Use this to answer 'how far am I from BA Gold?'. If no status is tracked for the program yet, also pass tier (the user's CURRENT tier) and it will be created. Programs use different qualifying currencies — BA/Virgin: Tier Points; Flying Blue: XP; AA: Loyalty Points; United: PQP; Delta: MQD; hotels: nights.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoOptional — the user's CURRENT tier. Required only if no status is tracked for this program yet.
programYesLoyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy'.
target_tierNoOptional tier the user is chasing — e.g. 'Gold'. Must be a valid tier for the program. Defaults the progress bar to this instead of the next tier up.
qualifying_balanceNoCurrent qualifying units earned this period (Tier Points / XP / Loyalty Points / MQD / PQP / nights).
qualifying_year_endNoISO date the current qualifying/membership year ends (e.g. BA membership years are anchored to the join date — ask the user).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only generic false annotations, the description carries the behavioral burden and does disclose the key upsert behavior: it updates existing progress or creates the status record when `tier` is provided. It also explains cross-program qualifying currencies. It omits response/auth details, but the core side effect is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and resource, with no filler. Each sentence earns its place: what is updated, when to invoke it, the creation condition, and the currency mapping across programs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an upsert tool with complete schema coverage, the description covers the trigger, creation fallback, optional target tier, and per-program units. The main gaps are not stating whether the call returns updated progress and not explicitly distinguishing itself from set_loyalty_status, both minor given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning by mapping `qualifying_balance` to program-specific currencies (Tier Points, XP, Loyalty Points, PQP, MQD, nights) and clarifying that `tier` is the current tier required for creation. This goes beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Update the user's qualifying progress toward an elite tier,' then enumerates the exact fields involved. It also includes a concrete trigger ('how far am I from BA Gold?') and clearly distinguishes itself from read-style siblings like get_status_progress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear invocation context ('Use this to answer...') and explains when to pass `tier` ('If no status is tracked... it will be created'). However, it does not explicitly name alternatives such as set_loyalty_status or get_status_progress, nor state 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.

submit_feedbackA
Destructive
Inspect

Email a user's confirmed feedback or bug report to Award Travel Finder support. Use this when the user explicitly wants to report a bug, share feedback, request an improvement, or report an incorrect AI result. Collect a concise summary and details first; for bugs, collect reproduction steps and expected/actual behaviour when possible. Only send after the user confirms the summary, or has clearly asked you to send the complete report. Never use this for ordinary travel questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesWhether this is general feedback or a bug report.
detailsYesWhat the user wants the Award Travel Finder team to know.
summaryYesA concise title for the feedback or bug.
page_urlNoThe current Award Travel Finder path or URL, when known.
confirmedYesTrue only once the user has confirmed that this report should be sent.
actual_behaviorNoFor bugs, what actually happened.
expected_behaviorNoFor bugs, what the user expected to happen.
steps_to_reproduceNoFor bugs, the steps that reproduce the problem, if known.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true, so the description doesn't need to restate those. It adds a meaningful behavioral rule: 'Only send after the user confirms the summary, or has clearly asked you to send the complete report,' and clarifies it's an email action. It doesn't detail side effects beyond that, but annotations cover the mutation/destructive profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, all valuable: purpose, use case, data-collection guidance, confirmation rule, and exclusion. It is front-loaded with the primary action and each sentence earns its place without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, no output schema, and a side-effecting annotation profile, the description covers the core invocation semantics: what it does, when to use it, how to gather required inputs, and the required confirmation gate. The only unexplored area is the return value or post-send feedback to the user, but the absence of an output schema makes that less critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so each parameter is already documented at baseline. The tool description adds context beyond the schema by guiding the agent on how to collect values: 'Collect a concise summary and details first; for bugs, collect reproduction steps and expected/actual behaviour when possible.' This links parameters to real interaction flow and the confirmed flag's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Email a user's confirmed feedback or bug report to Award Travel Finder support.' It clearly differentiates from the sibling set by focusing on feedback/bug submission and explicitly excludes ordinary travel questions. No other sibling tool serves this purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the conditions for use: 'when the user explicitly wants to report a bug, share feedback, request an improvement, or report an incorrect AI result.' Also provides negative guidance ('Never use this for ordinary travel questions') and a workflow for collecting information and confirming before sending.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_airline_wifiA
Read-only
Inspect

WiFi providers an airline uses fleet-wide, plus a fleet summary and whether WiFi is free. Use when the question is about the airline rather than one flight.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_codeYesIATA airline code, e.g. "UA" for United, "DL" for Delta

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the airline-level scope and mentions the output components, but does not disclose additional behavior such as data sourcing, freshness, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler. The first sentence states the output content, and the second gives the usage condition, which is exactly the structure an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool with no output schema, the description is mostly sufficient: it names the returned information (providers, fleet summary, free status). However, 'fleet summary' is somewhat vague and the description does not clarify the response shape or edge cases like unknown airline codes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single required parameter, airline_code, is fully documented with format and examples. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: fleet-wide WiFi providers for an airline, plus a fleet summary and free-WiFi status. It distinguishes from flight-specific tools by saying the question is about the airline rather than one flight, though it lacks an explicit verb like 'returns' and does not name the sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit condition: use when the question is about the airline rather than one flight. This provides a clear usage boundary and implicitly excludes flight-specific WiFi lookups, but it does not name the alternative tool such as sw_get_flight_wifi.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_flight_wifiA
Read-only
Inspect

Shorter WiFi lookup for a flight number: provider, confidence, airline, aircraft, and Starlink status. Use get_wifi_facts instead when you need the date, tail number, or reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_numberYesIATA flight number, e.g. "UA123" or "DL456"

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds the field list and the 'shorter' scope, providing useful context beyond the annotation. However, it does not mention any potential quirks like rate limits, response format variations, or empty results, but with read-only annotations this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both highly informative. The first front-loads the purpose and returned fields; the second immediately routes to the alternative when needed. Zero wasted words and no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only lookup, the description covers the purpose, the returned fields, and the alternative. The schema handles the parameter format, annotations cover safety, and no output schema is needed for a simple field list. The only slight omission is not describing what happens when no WiFi info exists, but that is not required for correctness in most calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single flight_number parameter, with a clear example ('UA123' or 'DL456'). The tool description does not need to add parameter syntax, and the baseline of 3 applies since the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('lookup'), a resource ('flight WiFi'), and the exact fields returned ('provider, confidence, airline, aircraft, and Starlink status'). It also explicitly differentiates from the sibling tool by naming get_wifi_facts and what it is not (no date, tail number, reasoning). This distinguishes it clearly from similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives explicit when-not-to-use guidance: 'Use get_wifi_facts instead when you need the date, tail number, or reasoning.' This directly tells the agent when to choose an alternative, leaving no ambiguity about the tool's scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_rolloutsA
Read-only
Inspect

Starlink and satellite WiFi rollout progress per aircraft type: status (complete, in_progress, planned, announced), fleet percentage, and expected completion. Omit airline_code for every tracked airline.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_codeNoOptional IATA airline code to filter rollouts, e.g. "UA"

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=true and destructiveHint=false. The description adds that omitting airline_code returns all tracked airlines, which is a behavioral nuance. However, it does not disclose return format, pagination, or any other behavioral details. Since annotations cover safety, the description adds modest value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, with the main purpose front-loaded. No fluff, every word earns its place. The parameter instruction is placed second, keeping the primary function prominent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one optional parameter and no output schema, so the description must convey return values. It lists the key fields (status with enumerated values, fleet percentage, expected completion), which is sufficient for an agent to know what to expect. It does not specify whether the result is a list or an object, but that is a minor gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the airline_code parameter with an example (UA) and marks it optional. The description reinforces that omitting it returns every tracked airline, adding a clear behavioral condition not fully explicit in the schema. This goes slightly beyond the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns Starlink and satellite WiFi rollout progress per aircraft type, with specific fields (status, fleet percentage, expected completion). It is clear what the tool does, though it does not explicitly differentiate from sibling tools like sw_get_airline_wifi or sw_get_flight_wifi.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a usage instruction: 'Omit airline_code for every tracked airline.' This clarifies behavior when the parameter is omitted, but it does not explicitly state when to use this tool versus alternative WiFi-related tools. The guidance is about parameter handling, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_speed_statsA
Read-only
Inspect

Crowd-sourced in-flight WiFi speed reports: average download/upload Mbps, latency, and a per-provider breakdown. Use for "is the WiFi fast enough" questions. Pass a flight_number or an airline_code, not both.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_codeNoIATA airline code, e.g. "UA"
flight_numberNoIATA flight number, e.g. "UA123"

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable behavioral context: it's crowd-sourced, implies aggregated data from user reports, and lists the data fields returned. It also enforces the mutual-exclusivity of the two parameters, which is a behavioral constraint not in the schema. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose, then a usage guideline, and finally a parameter instruction. Every word earns its place; no fluff or repetition. The structure leads with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the specific data returned (average download/upload Mbps, latency, per-provider breakdown), which compensates for the lack of an output schema. It also covers usage context and parameter constraints. Minor gap: latency unit (likely ms) is not stated, and no mention of pagination or data freshness, but these are not critical for a simple read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds the crucial constraint that flight_number and airline_code are mutually exclusive ('not both'), which is not expressed in the schema. It also clarifies that only one identifier is needed, adding meaning beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides crowd-sourced in-flight WiFi speed reports with specific metrics (average download/upload Mbps, latency, per-provider breakdown). It identifies the use case for 'is the WiFi fast enough' questions, making the purpose specific. However, it doesn't explicitly name sibling tools like sw_get_flight_wifi to differentiate, so it doesn't fully earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use case ('is the WiFi fast enough' questions) and a clear parameter constraint ('Pass a flight_number or an airline_code, not both'). It doesn't mention when not to use it or suggest alternatives, but the provided guidance is actionable and specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_tail_infoA
Read-only
Inspect

WiFi provider history for one aircraft by tail number, including crowd-sourced reports and fleet assignment. Use when the exact airframe is known.

ParametersJSON Schema
NameRequiredDescriptionDefault
tail_numberYesAircraft registration / tail number, e.g. "N12345"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly and non-destructive behavior, so the description only needed to add context beyond that. It usefully mentions crowd-sourced reports and fleet assignment, but does not disclose response format, freshness, or data-source caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the core purpose front-loaded and the usage condition immediately after. There is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup, the description covers purpose, scope, and usage condition, and the annotations handle safety. Some detail about what the returned history actually contains would be helpful, but the low complexity makes this nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single tail_number parameter is already documented with an example. The description reinforces that this is the exact tail number but adds no format or syntax details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: WiFi provider history for one aircraft by tail number, including crowd-sourced reports and fleet assignment. It distinguishes the tool from flight- and airline-level WiFi siblings, but does not use an explicit action verb in the description itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use when the exact airframe is known' gives a concrete condition for choosing this tool. It stops short of naming alternatives or stating when not to use it, so it earns 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_get_wifi_factsA
Read-only
Inspect

Best answer for "will this flight have WiFi". Predicts the WiFi provider for a flight number on a given date, with probability, the tail number expected to operate it, aircraft type, and the airline fleet fallback. Prefer this over get_flight_wifi.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoFlight date in YYYY-MM-DD format. Defaults to today.
flight_numberYesIATA flight number, e.g. "UA123"

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it returns a probability, uses a tail-number expectation, and includes an airline fleet fallback. It does not mention rate limits or data freshness, but the openWorldHint and read-only nature reduce the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The primary use case is front-loaded, the outputs are listed compactly, and the routing instruction is at the end. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only prediction tool with 2 parameters, 100% schema coverage, and no output schema, the description is nearly complete. It covers what the tool does, what it returns, and which sibling to prefer. The only minor gap is that it doesn't describe the shape of the probability output or any error conditions, but the annotations and schema cover the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (date format and IATA flight number example). The description adds the context that date defaults to today and that the tool predicts for a given date, but it does not add meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('predicts'), a specific resource (WiFi provider for a flight number on a given date), and the key outputs (provider, probability, tail number, aircraft type, fleet fallback). It also explicitly distinguishes itself from the sibling get_flight_wifi, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Prefer this over get_flight_wifi', giving a direct routing instruction. It also frames the use case ('Best answer for will this flight have WiFi'), which tells the agent when to select this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_list_airlinesA
Read-only
Inspect

Every airline SeatWiFi tracks, with its WiFi providers. Large response — use search_wifi or get_airline_wifi when you know which airline you want.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that the tool is read-only and non-destructive. The description adds useful behavioral context beyond the annotations by warning that the response will be large and clarifying the data content (WiFi providers per airline), which is not derivable from the empty input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences earn their place: the first defines the scope and payload, the second warns about response size and routes to alternatives. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless enumeration tool, the description covers what it returns, the scale warning, and when to choose alternatives. It does not detail the return field structure, but the absence of an output schema and the explicit content description make this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so there are no parameter semantics for the description to clarify. The baseline for a parameterless tool applies; no additional parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly conveys that the tool returns every airline SeatWiFi tracks, along with its WiFi providers, and explicitly names the sibling tools it is not (search_wifi, get_airline_wifi). This makes its scope and resource unambiguous, even without an explicit verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to choose alternatives: use search_wifi or get_airline_wifi if you already know the airline. The large-response warning also helps the agent decide whether the broad listing is worth calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sw_search_wifiA
Read-only
Inspect

Free-text search across airlines and flights when you only have a name or partial term. Use a specific tool instead when you already have a flight number, airline code, or tail number.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query, e.g. "United" or "UA123"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds the fallback nature of the search but does not disclose behavior such as matching semantics, result ordering, or limits. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the key usage condition front-loaded and the exclusion stated immediately after. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only search tool, the description covers what the input should be and when to use this tool. The lack of an explicit alternative tool name is a minor gap, and no output schema exists, but the description is sufficient for basic invocation decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds useful nuance about partial terms and free-text matching, but the schema's example 'UA123' somewhat conflicts with the instruction to prefer a specific tool when a flight number is already known.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: free-text search across airlines and flights. It also distinguishes itself from more specific lookup tools by noting when a structured identifier exists, though it does not name those sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit positive guidance ('when you only have a name or partial term') and negative guidance ('use a specific tool instead when you already have a flight number, airline code, or tail number'). The main gap is that the alternative tools are not named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_nowAInspect

Trigger an immediate refresh of the user's connected integrations (AwardWallet, Google Sheets, …) so balances/bookings are current before you answer. Use when the user asks to refresh, or when list_integrations shows stale data. Returns which connections are syncing.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoOptional — sync just this provider. Omit to sync all connected integrations.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey that this is not read-only and not idempotent. The description adds that the action is an 'immediate refresh' and that it 'returns which connections are syncing,' which is useful. However, it does not disclose timing, blocking behavior, or side effects beyond the refresh itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences cover purpose, usage trigger, and return value without filler. Every clause contributes meaning, and the most important scoping detail ('immediate refresh') appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for a low-complexity tool: one optional parameter, a clear trigger, and a stated return value. It lacks explicit error/limit guidance, but for this use case the description is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single optional 'provider' parameter fully documented by enum values and a description. The tool description does not need to repeat param syntax, so this meets the baseline for well-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Trigger an immediate refresh') with a clear resource ('user's connected integrations') and gives concrete examples. It also references list_integrations as the detection mechanism, distinguishing the tool from nearby siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'when the user asks to refresh, or when list_integrations shows stale data.' It does not explicitly list when not to use it relative to connection management tools, but the trigger conditions are concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_flight_bookingAInspect

Update a tracked flight booking. Use to correct details or add confirmation numbers. Do NOT use this to cancel a booking — use delete_flight_booking instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
notesNo
originNo
airlineNo
programNo
trip_idNo
cash_paidNo
booking_idYes
taxes_paidNo
cabin_classNo
destinationNo
return_dateNo
points_spentNo
flight_numberNo
departure_dateNo
confirmation_numberNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false), non-idempotent, and not destructive. The description aligns with these hints and adds minor context about the nature of updates (corrections and adding confirmation numbers), but it does not disclose behaviors like whether partial updates merge or replace fields, or what happens when the booking does not exist. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action and purpose are front-loaded, and the exclusion with alternative is stated in a compact, direct second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (16 parameters, no output schema, no parameter descriptions), this short description is not sufficient for an agent to invoke it correctly in varied scenarios. It does not explain which fields are relevant for typical corrections, whether updates are partial or full replacements, or what the tool returns. The usage guidance is strong, but the operational context is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate for the 16 parameters. It only mentions 'confirmation numbers,' which maps to one property, and gives no semantic guidance for the many other fields such as origin, dates, cabin_class, cash_paid, or points_spent. The schema names and patterns carry the burden, but the description adds very little parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource: 'Update a tracked flight booking.' It clarifies the intended actions ('correct details or add confirmation numbers') and explicitly distinguishes itself from delete_flight_booking, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Use to correct details or add confirmation numbers') and provides a clear exclusion with a named alternative: 'Do NOT use this to cancel a booking — use delete_flight_booking instead.' This leaves no ambiguity about routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_hotel_bookingAInspect

Update a tracked hotel booking — correct dates, room type, points, rate, confirmation number, etc. Do NOT use this to cancel a booking — use delete_hotel_booking instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
notesNo
hotel_idNo
rate_planNo
room_typeNo
booking_idYes
check_in_dateNo
check_out_dateNo
original_pointsNo
cash_rate_currencyNo
monitoring_enabledNo
confirmation_numberNo
original_pay_rate_usdNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds which fields can be updated, but it does not clarify update semantics such as whether omitted fields are preserved, whether booking_id can be changed, or whether updating triggers monitoring recalculations. This is acceptable but not rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The primary purpose is front-loaded, the scope is summarized with concrete examples, and the alternative tool is appended cleanly. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a mutation tool with 13 parameters, no output schema, and no parameter descriptions, the description is too thin. It does not explain partial-update behavior, which fields are immutable, how the booking is identified, what happens on validation failure, or what the response contains. An agent could still call it, but would be guessing on several important semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description bears the burden of explaining 13 parameters. It names a few (dates, room type, points, rate, confirmation number) that map to schema properties, but it leaves several parameters unexplained, including booking_id, kind, hotel_id, rate_plan, notes, monitoring_enabled, cash_rate_currency, and original_pay_rate_usd. This is only partial compensation for a large undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Update') and resource ('tracked hotel booking'), lists the kinds of fields that can be corrected, and explicitly distinguishes itself from cancellation. It is clear what this tool does and how it differs from delete_hotel_booking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit when-not-to-use instruction ('Do NOT use this to cancel a booking') and names the alternative (delete_hotel_booking). This gives the agent clear routing between the two most confusable sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_itineraryAInspect

Write a section onto a trip's itinerary canvas — the persistent, editable trip document the agent builds. Appends a new section, or updates an existing one when section_id is given. Returns the full updated canvas. Premium tier (itinerary canvas).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesSection body in markdown
kindNoSection kind (default: note)
headingYesSection heading, e.g. 'Outbound flight' or 'Hotel: Tokyo'
trip_idNoTarget trip. If omitted, the user's most recent active trip is used (or a new one is created).
section_idNoExisting section id to update. Omit to append a new section.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With all annotations false, the description carries the burden of behavioral disclosure. It reveals that the operation is a write to a persistent document, that it appends or updates, and that it returns the full updated canvas. It does not discuss side effects in depth, but the key behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, then the mode distinction and return value. Every sentence earns its place, and the parenthetical on premium tier provides useful context without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a moderate-complexity tool with no output schema: it explains the persistence model, the conditional behavior, and the return value. It does not explicitly connect to booking-specific sibling tools, but that is more of a usage-guideline gap than a completeness failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter-level meaning beyond the schema, mostly reinforcing that section_id selects an update and that the result is the full updated canvas. It does not compensate beyond the schema's existing parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-object pairing ('Write a section onto a trip's itinerary canvas') and immediately distinguishes append vs update behavior. It clearly separates this from siblings like add_flight_booking or get_trip_briefing by naming the itinerary canvas as the persistent trip document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys a clear use context: append a new section or update an existing section on the itinerary canvas, with section_id signaling update mode. It does not explicitly name alternatives or state when not to use it, but the core usage is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_points_balanceAInspect

Update your points/miles balance for a loyalty program. Creates the program if it doesn't exist, or updates the balance if it does. Use with Gmail to extract balance notifications and keep your portfolio current. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
balanceYes
programYesLoyalty program name

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no meaningful safety detail beyond false flags, so the description carries the behavioral burden. It usefully discloses the side effect ('Creates the program if it doesn't exist') and the cost constraint ('Paid feature'). It does not explain response behavior or auth requirements, but the disclosed details add genuine value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each earning its place: the action, the upsert behavior, a concrete use case, and the paid-feature warning. It is front-loaded with the core purpose and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description covers the operation, side effects, use context, and costs. The main minor gap is that no return value or confirmation behavior is described, and there is no output schema to fill that gap, but this does not seriously impair an agent's ability to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, with balance lacking a description. The description compensates by clarifying that balance refers to points/miles and that program is the loyalty program name which will be created if absent. This adds meaning beyond the schema, though it stops short of detailing balance units or formatting edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Update your points/miles balance') and resource ('a loyalty program'), and the upsert behavior clearly distinguishes it from sibling tools such as list_points_balances and delete_points_balances. The create-if-missing detail further clarifies exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use case: 'Use with Gmail to extract balance notifications and keep your portfolio current.' It does not enumerate alternatives or exclusions, but the context is clear enough for an agent to know when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_route_monitorAInspect

Edit a saved route monitor by ID — change the date window, cabin, airline filter, passenger count, max-points cap, or pause/resume it.

ParametersJSON Schema
NameRequiredDescriptionDefault
cabinNo
statusNoPause or resume the monitor
airlinesNoReplaces the existing airline filter; pass [] to watch all carriers
max_pointsNo
monitor_idYes
passengersNo
latest_dateNo
earliest_dateNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries the mutation disclosure. It accurately states that fields can be changed and the monitor can be paused/resumed. It does not mention whether omitted fields are preserved (partial update), error behavior, or return format, which leaves some gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-organized sentence front-loads the core purpose ('Edit a saved route monitor by ID') and then lists the editable attributes in a clean, readable sequence. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and low schema coverage, the description covers all primary editable aspects, and the schema provides constraints for dates and passenger count. It does not explicitly state partial-update semantics or return behavior, but the tool's core usage is adequately clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description compensates by mapping 'date window' to earliest/latest_date, 'cabin', 'airline filter', 'passenger count', 'max-points cap', and 'pause/resume' to status. This adds meaningful context to otherwise sparsely documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Edit') and resource ('saved route monitor by ID'), then enumerates the editable fields. This clearly distinguishes it from create_route_monitor, cancel_route_monitor, and list_route_monitors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when an existing route monitor needs modification. However, it does not explicitly name alternatives or exclusion conditions, so it stops short of the explicit guidance that earns a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

viator_get_experience_detailsB
Read-only
Inspect

Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, duration, key features, and the click-out URL.It also returns what is included and excluded in the price, high-level itinerary metadata, bookable experience options, traveler age bands and booking constraints, start/end locations and traveler pickup, additional information such as requirements and restrictions, available language guides, associated destinations, the operating time zone, the operator, every image for the experience with its available dimension variants and captions, and the cancellation policy covering the refund terms, weather and minimum-traveler cancellation conditions, and how much is refundable depending on how far in advance the booking is cancelled.The model should call this tool only when the user clearly refers to a specific experience—either by selecting it in the UI or by asking follow-up questions such as “Tell me more about…”;if multiple experiences were

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes(required) Unique identifier of the Viator experience to retrieve details for.This value must correspond to an experience previously returned by the search_experiences tool.The model must not guess or make up experience IDs; if the user request is ambiguous (e.g., multiple items shown), the model must ask which experience they mean before calling the tool.
localeNo(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en.Used to descriptions, highlights, and content where available.
currencyNo(optional) Currency code for from-price display (e.g., USD, EUR, GBP).When provided, fromPrice and fromPriceBeforeDiscount are populated.When omitted, pricing fields are not returned.Should match the currency used in the preceding search_experiences call when available.
languageNo(deprecated) This value is deprecated and should not be sent. Please only send the locale.
sessionIdYes(mandatory) A unique identifier, ideally an UUID, for the current user conversation. The same identifier should be used until the user opens a new chat.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists a broad set of returned data (pricing, cancellation policy, images, etc.), which gives insight into the tool's output behavior. Annotations already declare readOnlyHint=true, and the description does not contradict that. However, the truncation leaves the behavioral guidance incomplete, and there is no mention of potential errors, response size, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, long paragraph that enumerates numerous return elements without breaks or prioritization. It is not front-loaded with the most critical information beyond the first sentence, and it is truncated at the end, making it incomplete and structurally poor. A more concise, structured format would be far more usable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must fully describe the return values. Although it lists many elements, the truncation leaves the guidance about multiple experiences incomplete, and it omits any mention of error handling or response size. Given the tool's complexity, this description is not complete enough for an agent to anticipate all behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides detailed descriptions for all five parameters (code, locale, currency, language, sessionId), covering their purpose and constraints. The description does not add significant new meaning; it only mentions locale and currency in passing without adding details beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves enriched information for a specific Viator experience, with a list of content areas. It distinguishes from the sibling viator_search_experiences by noting it should only be called when the user refers to a specific experience. However, the description is cut off mid-sentence ('if multiple experiences were '), which slightly undermines clarity, and the long enumeration dilutes the primary purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear condition for when to use this tool (when the user selects a specific experience or asks follow-up questions), but the sentence is incomplete, leaving ambiguity about how to handle multiple experiences. It does not explicitly contrast with viator_search_experiences beyond the condition, and the schema's guidance about asking the user is not repeated in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

viator_search_experiencesB
Read-only
Inspect

Retrieves a curated list of Viator experiences based on a free-text search of what the user wants (destination, activity type, and preferences), plus trip dates and optional refiners (budget, duration, etc.). The model must supply a non-blank searchTerm as natural language describing where and what the user is looking for (e.g. "walking tours in Paris, France", "kid friendly food experiences in Rome"). Dates, prices, duration limits, and currency belong in their dedicated parameters—not inside searchTerm. The model must provide searchTerm and dates before calling this tool. The model may re-issue a refined searchExperiences call whenever the user adds, removes, or adjusts refinement criteria (e.g., kid-friendly, price range, shorter duration) to narrow or improve the results. If the tool returns zero results, the model must proactively guide the user toward a successful refinement. It should review the parameters used in the failed request and recommend the most appropriate based on the proposed logic:" If >

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo(optional) Maximum number of products to return, between 1 and 10.If omitted, defaults to 5.Not intended as a user-facing refinement mechanism; the model should not use it to alter intent.
localeNo(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en.Used to localize title, and other content where available.
endDateYes(required) The last date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).Also derived from natural-language expressions (e.g., 'this summer', 'next weekend', 'early April', 'tomorrow'); if the user gives a single day, set endDate = startDate. When resolving these expressions, use the destination timezone from searchTerm when inferable, otherwise the user's timezone. Must be >= startDate. Used to widen search results to a date range.
toPriceNo(optional) Maximum per-person price to include in search, expressed in the requested currency.Used when the user expresses a maximum budget (e.g., “under $100”)
currencyNo(optional) Currency code used for interpreting and filtering prices.The model should infer currency from context when possible (e.g., GBP if the user is in the UK; USD if the user specifies dollars).Default value: USDValid ISO currency codes include: AED, ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, DKK, EUR, FJD, GBP, HKD, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, SEK, SGD, THB, TRY, TWD, USD, VND, ZAR
durationNo(optional) User preference for maximum experience length, expressed in minutes.Used to filter results to experiences at or below this duration.
fromPriceNo(optional) Minimum per-person price to include in search, expressed in the requested currency.Used when the user specifies a lower budget boundary (e.g., “at least €50”).
sessionIdYes(mandatory) A unique identifier, ideally an UUID, for the current user conversation. The same identifier should be used until the user opens a new chat.
startDateYes(required) The first date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).The model must convert natural-language expressions (e.g., 'this summer', 'next weekend', 'early April', 'tomorrow') into a specific ISO date before calling the tool. When resolving these expressions, if searchTerm names a destination, use that location's local timezone. Otherwise, use the user's current timezone. The date must not be in the past. Must be before the endDate.
searchTermYes(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add context beyond that. It adds the 'curated list' nature, the zero-results failure scenario, and the expectation to let the model refine, but it does not disclose return format, pagination, or error behavior. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long, single block with repeated 'must' instructions and ends in a dangling, incoherent fragment: "based on the proposed logic:" If > ". Although the opening sentence is useful, the trailing malformed text and lack of structure make the description harder to trust and consume.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no output schema, the description covers key preconditions and refinement behavior, and the schema covers parameter meaning. However, it does not describe the return shape or pagination, and the truncated closing sentence leaves ambiguity about the intended zero-results recommendation logic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter richly. The description adds high-level guidance about keeping dates, prices, duration, and currency out of searchTerm, plus examples, but it does not meaningfully expand on any individual parameter's semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Retrieves a curated list of Viator experiences based on a free-text search," which clearly identifies the tool's function. The Viator domain and 'search' framing distinguish it from hotel/flight/lounge search siblings, though it does not explicitly name viator_get_experience_details as the alternative for retrieving details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit invocation guidance: the model must supply a non-blank searchTerm, provide dates before calling, keep prices/durations/currency in dedicated fields, and re-issue refined calls when criteria change. It also prescribes zero-results handling, but it never explicitly says when to use this tool instead of viator_get_experience_details or other search siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whats_on_saleA
Read-only
Inspect

List currently-active points sales: buy-points promos (airline + hotel) and transfer bonuses across credit-card and loyalty programs. No auth required. Useful as a starting point when a user asks 'what's a good deal right now?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
programNoFilter to a single program (e.g. 'Avios', 'Marriott Bonvoy')
categoryNoFilter (default: all)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and open-world, so the description does not need to restate safety. It adds value beyond annotations by stating that no authentication is required, that results are 'currently-active' sales, and by enumerating the coverage across airline, hotel, credit-card, and loyalty programs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences front-load the core behavior, then add scope, auth status, and use-case guidance. No redundant or filler content exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple filtered-list tool with fully documented optional params, read-only/open-world annotations, and no output schema, the description supplies all needed context: what is listed, what categories exist, that it requires no auth, and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the program and category parameters are already fully documented. The description does not add meaningful parameter-level detail beyond what the schema provides, yielding the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'List currently-active points sales', and goes further to enumerate the exact kinds of deals included (buy-points promos, transfer bonuses). It clearly distinguishes itself from sibling pricing and valuation tools by scoping to active promos rather than static rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case ('starting point when a user asks "what's a good deal right now?"') and notes that no auth is required. It does not explicitly name sibling alternatives or exclusion conditions, but the context is concrete enough for an agent to decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikipedia_airportsA
Read-only
Inspect

Look up airline service from a Wikipedia airport page. Use when fare/award tools say a route doesn't exist (false negative on small markets) or when you need the full destination list for an airport. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineNoOptional — filter the result to this airline name (substring match)
destinationNoOptional — filter to flights serving this destination IATA or city
airport_codeYesIATA (3-letter) or ICAO (4-letter) airport code

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the data source is Wikipedia (implying potential incompleteness or non-authoritative data) and the specific use case. However, it does not disclose any additional behaviors like pagination, return format, or rate limits. Given the annotations carry the core behavioral 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero waste. The core action is front-loaded in the first sentence, and the usage guidance is in the second. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup tool with fully documented parameters and no output schema, the description covers the essential decision points (what it does, when to use it). It does not describe the output format or error handling, but these are not critical given the tool's simplicity and the annotations. A high score is justified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – all parameters (airport_code, airline, destination) have descriptions in the schema. The tool description does not add any extra meaning beyond what the schema already provides. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('look up'), a resource ('Wikipedia airport page'), and the data ('airline service'). It clearly differentiates from sibling tools by positioning it as a fallback for false negatives on small markets and as the source for full destination lists. This is a precise, non-tautological purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use the tool: 'Use when fare/award tools say a route doesn't exist... or when you need the full destination list.' This provides clear triggers and implies a complementary role to other search tools. The 'Free, no auth' note also informs cost/access considerations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedsearch_availability4 fields changed
      • addedInput schema / properties / arrival_code / description
        Added value: +"IATA code (SIN), or a city or airport name"
      • removedInput schema / properties / arrival_code / pattern
        Removed value: -"^[A-Z]{3}$"
      • addedInput schema / properties / departure_code / description
        Added value: +"IATA code (LHR), or a city or airport name (Heathrow, Tokyo)"
      • removedInput schema / properties / departure_code / pattern
        Removed value: -"^[A-Z]{3}$"
  2. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  3. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  4. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  5. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  6. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  7. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  8. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  9. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  10. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  11. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  12. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  13. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  14. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  15. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  16. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  17. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  18. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."
  19. 1 tool update
    • Changedviator_search_experiences1 field changed
      • changedInput schema / properties / searchTerm / description
        Previous value: -"(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."New value: +"(required) Natural-language description of what the user is looking for. Must be non-blank; the tool rejects empty or whitespace-only values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.