Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
AwardTravelFinder/mcp
GitHub Stars
6

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-onlyDestructive
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
Behavior1/5

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

The description frames the operation as a read-only audit that 'returns' a finding list, but the annotations include destructiveHint=true. No destructive behavior, side effect, or required authorization is disclosed, and the description directly conflicts with the destructive hint.

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 brief sentences, each carrying distinct information: purpose, chain coverage, and output. No filler or redundancy.

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?

With no output schema and no parameter descriptions, the tool definition leaves important gaps: expected folio_text input format, how the finding list is structured, meaning of stay_type, and resolution of the conflicting destructiveHint annotation. It is not complete enough for an agent to confidently invoke the tool.

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 helps with chain (by naming supported brands) and gives minimal context for folio_text. It does not explain stay_type, status_tier, confirmation_number, or the expected format of folio_text.

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 ('Audit'), a specific resource ('hotel folio'), and a clear purpose ('commonly-disputable charges'). It also distinguishes itself from the sibling audit_marriott_folio by explicitly supporting Marriott, Hilton, Hyatt, and IHG.

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 supported chains imply the tool's coverage, but no explicit when-to-use or when-not-to-use guidance is given. It does not mention alternatives such as audit_marriott_folio or state when each should be preferred.

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-onlyDestructive
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.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and destructiveHint (which are contradictory), and the description adds context about specific charge types and the output. However, it does not disclose any side effects, authentication needs, or rate limits, and the description's 'audit' nature aligns with read-only without explicitly disclaiming 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?

The description is three short sentences with no unnecessary words, front-loaded with the primary action and then the output and tier. It is 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?

Given no output schema, the description should explain the return structure and required inputs. It only vaguely states it returns a finding list and dispute template, without detailing those structures. It also does not clarify the format for folio_text or how parameters like status_tier affect auditing. The specific charge types provide some context but not enough for full agent guidance.

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 does not explain any of the four parameters; it only hints at the relevance of stay_type by mentioning resort fees on award stays, but does not define how to use folio_text, status_tier, or confirmation_number. This leaves parameter meaning largely 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 states a specific action (Audit) and resource (Marriott Bonvoy folio) and lists specific charge types it checks (resort fee on award stays, parking double-billing, etc.), which clearly distinguishes it from the generic sibling audit_hotel_folio. It also mentions the output (finding list with dispute template), leaving no ambiguity about its function.

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

Usage Guidelines3/5

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

The description implies usage for Marriott Bonvoy folios by naming the brand, but it does not explicitly state when to prefer this tool over the generic audit_hotel_folio or any exclusions. There is no mention of alternative tools or conditions for use, so 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.

calculate_flight_earningsA
Read-onlyDestructive
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.7/5.0
Behavior1/5

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

The description frames the tool as a read-only estimation ('Estimate', 'Answers'), matching readOnlyHint, but the annotations also set destructiveHint: true. The description does not disclose any destructive behavior, and 'estimate' directly conflicts with the destructive hint, so the agent receives contradictory signals.

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 purpose, followed by examples and operational rules. It is moderately sized and each sentence adds information, though the example questions are slightly redundant with the initial purpose statement.

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 7-parameter calculator with no output schema, the description explains the return values (points plus great-circle distance), the program-specific calculation basis, and required program slugs. It does not describe the exact response shape or error conditions, but it is sufficient for 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?

Schema coverage is 100%, so the baseline is 3. The description adds real cross-parameter meaning: fare_price is only needed for revenue-based BA/AA earnings, while Flying Blue XP is segment- and cabin-based, clarifying when to supply fare_price and how segments factor in.

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 ('Estimate') with a precise resource (elite-qualifying points plus great-circle distance), names the three supported programs, and gives concrete example questions. This clearly distinguishes it from siblings like get_points_valuation or get_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 example questions ('how many tier points is LHR–JFK in business?') and program-specific earning rules imply when the tool should be used. However, it does not explicitly say when to prefer it over alternatives such as get_earning_rates 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.

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_spendingB
Read-onlyDestructive
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

B3.3/5.0
Behavior2/5

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

The description's language suggests a read-only analysis ('estimate', 'rank'), but the annotations include destructiveHint=true alongside readOnlyHint=true, creating an unresolved tension. The description does not clarify whether the tool has any side effects or what destructive behavior might exist, and it adds only output composition rather than 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?

The description is a single, compact sentence that front-loads the required input and clearly states the purpose and a key output detail. There is no filler, and 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 input shape is documented by the schema, and the description conveys that output ranks cards and includes net annual fee after benefit credits. However, there is no output schema and the description does not specify ranking order, annualization assumptions, or how region/card_type affect results, leaving meaningful gaps for an agent.

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%, so the schema already covers limit, region, and monthly_spending; the description adds no parameter-level detail. card_type remains undocumented in both the schema and the description, though its enum values are self-explanatory. This is an adequate but not compensating score.

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 operation: estimate annual rewards for each card and rank them, based on a monthly spending breakdown. It also notes the output includes net annual fee after benefit credits. It does not explicitly name sibling alternatives, so it stops short of full explicit differentiation, but 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 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 the user has a monthly spending breakdown and wants card reward estimates. It does not provide explicit when-not-to-use guidance or point to sibling tools such as cards_rank_welcome_bonuses or cards_compare_cards for different card-ranking tasks.

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

cards_compare_cardsA
Read-onlyDestructive
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.6/5.0
Behavior1/5

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

Annotations declare destructiveHint=true, which conflicts with the read-only nature of 'Compare' (a pure lookup/reporting operation). The description does not address this contradiction, and also fails to note the openWorldHint (results may not be exhaustive). This is a serious inconsistency that could mislead an agent into thinking calling it mutates 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?

One concise sentence with no filler. The purpose and the comparison dimensions are front-loaded, and the sourcing hint is appended without bloat. Every phrase 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 1-parameter tool with no output schema, the description covers what it compares and where to get the IDs. It does not specify the return format, but that is a minor gap given the low complexity. The only significant omission is the behavioral contradiction, which is already penalized in its own dimension.

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% for the single 'ids' parameter, which already explains it expects an array of card IDs with examples. The description adds the pointer to list_cards as a source of valid IDs, which is helpful but not essential—the schema already does the heavy lifting. 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 'Compare' + resource 'cards' and enumerates the comparison dimensions (annual fees, welcome bonuses, top multipliers, total benefit credits). It clearly distinguishes this from siblings like cards_list_cards (just lists) and cards_get_card (single card detail), leaving no ambiguity about what the 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 Guidelines4/5

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

The phrase 'Pass card ids from list_cards' gives a concrete source for the input and implies when to use it (comparing 2–4 cards). It does not explicitly list exclusions or alternatives, but the guidance is actionable and sufficient for an agent to select this tool over siblings.

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_categoryA
Read-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

Annotation Contradiction: The description uses read-only language ('Find', 'Returns cards sorted by multiplier descending'), but the annotations mark destructiveHint=true. The description does not acknowledge or explain any destructive behavior, creating a direct conflict between its implied behavior and the 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?

Two concise sentences convey the core purpose, examples, and output ordering with no filler. Every phrase earns its place, and key information is front-loaded in the first sentence.

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 captures the essential search intent and sort behavior, but with no output schema it omits return structure details, default limit behavior, and filtering semantics for region and card_type. The conflicting destructiveHint annotation also leaves the tool's side effects ambiguous, reducing 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 description coverage is 60%, leaving 'region' and 'card_type' without parameter-level descriptions. The description adds useful context about category examples and sorting by multiplier, but does not explain how region or card_type affect the results, so it only partially compensates for the schema gaps.

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 action ('Find cards'), a specific resource ('cards'), and a precise selection criterion ('best earning multiplier for a spend category'), with concrete examples and a defined sort order. This clearly distinguishes it from sibling card tools like cards_list_cards or cards_compare_cards.

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 communicates the intended use case: find the best card multiplier for a category like dining or groceries. It does not explicitly mention when not to use it or name alternatives, but the context is clear enough for an agent to route to it appropriately.

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_airlineA
Read-onlyDestructive
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

A3.6/5.0
Behavior3/5

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

The description says 'Find' which aligns with readOnlyHint=true, and the tool is clearly a query operation. However, it adds no behavioral context beyond the annotations, and the annotations contain an internal conflict (readOnlyHint=true and destructiveHint=true) that the description does not help resolve.

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. The primary purpose is stated first, and the optional filter is placed second. Every word contributes meaning, with 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 read-only lookup with fully documented parameters, the description conveys enough to understand the tool's purpose and basic optionality. The lack of an output schema is compensated by the natural implication that the tool returns a list of transfer programs, though a brief note about result format or comprehensiveness would have earned a 5.

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 value: 'airline or hotel' echoes the schema's partner_name example, and 'locally relevant' loosely paraphrases the region filter. It does not materially enrich parameter understanding.

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 ('Find') and identifies the resource: transferable points programs that transfer to a given airline or hotel. It is clear, but it does not explicitly differentiate from nearby siblings like cards_list_transfer_partners or find_transfer_paths, so it falls short of a fully distinguishing definition.

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: find transfer programs for a specific airline/hotel, optionally narrowed by region. However, it provides no explicit guidance about when to choose this tool over sibling alternatives such as cards_list_transfer_partners, compare_transfer_options, or get_program_partner_chart.

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

cards_get_cardB
Read-onlyDestructive
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.4/5.0
Behavior1/5

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

The description says 'Get full details' which clearly indicates a read-only, non-destructive operation, but the annotations declare destructiveHint=true. This direct contradiction between the description and annotations means the agent cannot trust the safety profile of the tool. The description does not add any behavioral context beyond the annotations, and the conflict makes this severely deficient.

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 lists the specific information returned. There is no unnecessary verbosity or filler; every word contributes to clarity.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the returned data (multipliers, benefits, welcome bonus, source URL), giving an agent a clear expectation of the response. The required parameter is fully covered in the schema. The only gap is the unresolved contradiction with the destructiveHint annotation, but that affects trust more than invocation completeness.

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

Parameters3/5

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

The schema provides 100% coverage for the single 'id' parameter, including an example ('amex-gold-us') and a directive to use list_cards to discover ids. The description adds no additional meaning beyond the schema, 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.

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: 'Get full details for a single card' with a specific resource (card) and lists the exact data points included (multipliers, benefits, welcome bonus, source URL). This distinguishes it from sibling tools like cards_list_cards (which would return a list) and cards_compare_cards (which compares multiple cards).

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 full details of a specific card are needed, but it does not explicitly state when to use it over alternatives or provide exclusions. It does not reference any sibling tools or mention scenarios where a different tool would be more appropriate.

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

cards_list_cardsA
Read-onlyDestructive
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.6/5.0
Behavior1/5

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

Annotation Contradiction: annotations declare destructiveHint=true, but the description describes a read-only listing operation. The description does not reconcile this conflict; it simply says 'List...', which contradicts the destructive hint and undermines the agent's ability to predict 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?

Three sentences, front-loaded verb and resource, and every sentence earns its place by stating scope, return shape, and the get_card alternative.

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 simple list tool: it names the output fields and tells the agent where to get full details. It lacks pagination/limit guidance and does not clarify the annotation conflict, so not a perfect 5.

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?

All three parameters have 100% schema description coverage with enum values and descriptions, so the schema carries the semantic burden. The description adds no further parameter detail, but the 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?

States a specific verb and resource: 'List credit cards in the database.' It also distinguishes itself from the sibling get_card by noting it returns compact summaries and directing to get_card for full details.

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

Usage Guidelines4/5

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

Explicitly routes to get_card when full details are needed, which is a clear alternative. It does not, however, state when this tool should not be used or mention the optional filters as selection criteria.

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

cards_list_changesA
Read-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description characterizes the tool as a read-only listing operation ('List recent card data changes'), which directly contradicts the annotation destructiveHint: true. Although it aligns with readOnlyHint: true, the conflicting destructiveHint creates an irreconcilable contradiction that the description does not resolve or acknowledge.

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 zero redundancy. The core action and resource are front-loaded, examples clarify scope, and the usage prompt is concise. Every word 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?

Given the contradictory annotations (readOnlyHint true vs destructiveHint true), the description is not fully contextually complete because it leaves the destructive annotation unaddressed, potentially confusing an agent. The description itself is clear for a simple list tool, but the surrounding annotation conflict reduces overall 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 description coverage is 100%, with each parameter (days, limit, card_id) already documented in the input schema. The description adds no parameter-level detail 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.

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 recent card data changes,' and provides concrete examples (welcome bonus updates, fee changes, multiplier edits). This clearly distinguishes it from sibling tools like cards_list_cards and cards_get_card, which focus on the cards themselves rather than their change history.

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 frames the tool's intended use case: 'Useful for "what changed recently?" queries.' This gives clear context for when to invoke it. It does not name exclusions or alternatives, but for a simple read-only listing tool, the context is sufficient.

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

cards_list_transfer_partnersC
Read-onlyDestructive
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

C2.9/5.0
Behavior1/5

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

Annotation contradiction: the annotations include both readOnlyHint=true and destructiveHint=true, while the description describes a plain listing operation. A read-only list is not destructive, so the description contradicts the destructiveHint annotation. The description also provides no extra behavioral context such as pagination, ordering, or 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 with no filler. The verb and object are front-loaded, and the region example earns its place by clarifying behavior beyond the schema.

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 covers the main function and the region filter, but it does not state default behavior when no filters are supplied, describe the return shape, or disambiguate from closely related sibling tools. Given there is no output schema and the annotations are internally inconsistent, these are meaningful 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?

The description adds useful meaning for the region parameter by explaining that region limits results to market-relevant programs and giving a concrete example. The other two parameters are already reasonably covered by the schema (region and provider have descriptions; partner_type has an enum), so the description does not need to compensate heavily.

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 a specific resource ('transferable points programs and their airline/hotel partners'), making the core purpose immediately clear. It does not explicitly differentiate from overlapping siblings such as cards_find_transfer_programs_for_airline or get_program_partner_chart, so it stops short of a full 5.

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 about when to choose this tool over the many related transfer/partner tools in the sibling list. The main usage clue it provides is parameter-level behavior for region ('Region filter shows programs relevant to that market'), which does not help with tool selection.

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

cards_rank_welcome_bonusesB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The description says 'List current welcome bonuses,' which is clearly a read-only operation, yet annotations include destructiveHint: true. This directly contradicts the description and creates agent confusion about whether the tool can destroy data. The description also adds no additional behavioral context such as data freshness 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.

Conciseness5/5

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

One tight sentence front-loads the core purpose and sort order, then adds the optional filter. 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.

Completeness3/5

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

The description plus schema covers the essential invocation details: what is returned, sort order, and optional filters are mostly understandable. However, there is no output schema and the description does not mention return fields, nor does it call out region/card_type filtering despite those being available parameters.

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

Parameters3/5

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

Schema descriptions already cover limit, min_value, and monthly_spend, and enum values make region and card_type self-explanatory. The description contributes only the 'spend achievability' framing for monthly_spend, which is mild added meaning but not essential given 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 uses a specific verb ('List') with a clear resource ('current welcome bonuses') and adds distinguishing context: sorted by point/mile value descending. This clearly separates it from sibling tools like cards_list_cards or cards_compare_cards.

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 it: when the agent needs current welcome bonuses ranked by value, with an optional spend achievability filter. However, it does not explicitly name alternatives or state when not to use this tool, leaving some routing judgment to the agent.

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

compare_transfer_optionsB
Read-onlyDestructive
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

B3.2/5.0
Behavior2/5

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

Annotations include readOnlyHint=true and destructiveHint=true, which are contradictory. The description does not address whether the tool has any side effects, but it aligns with the read-only implication ('ranks', no mutation). However, it adds no extra behavioral context and leaves the destructiveHint unresolved. Given the contradictory annotations, the description fails to clarify behavior 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 sentences, front-loaded with the core decision context and then details of what the ranking includes. It is free of fluff and efficiently communicates the tool's scope and output. The 'Premium tier' note, while extra, is info about availability, not noise.

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 ranking tool with no output schema, the description clearly states the ranking criterion (cents-per-point), the elements considered (multi-hop, bonuses, posting times), and the input context. It lacks explicit mention of how results are presented or any limitations, but given the tool's focused scope, it covers most essential aspects for an agent to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description restates the purpose ('Given a target loyalty program and how many points it costs') but does not add new syntactic or semantic details beyond what the schema already provides. It gives context but no additional parameter guidance, so baseline 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 clearly states that the tool ranks transfer routes for a specific redemption, including multi-hop routes, bonuses, and posting times. It specifies the resource (points for a redemption) and the verb (decide/rank). However, it does not explicitly differentiate from sibling tools like find_transfer_paths or recommend_redemption, though the scope ('from the user's own balances') is distinctive.

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 explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or mention that it is for comparing options when a specific redemption is planned. The usage context is only implied by the description's content, not stated.

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 12h 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.9/5.0
Behavior4/5

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

Annotations only indicate non-read-only and non-destructive behavior. The description adds useful behavioral details beyond that: checks run every 12 hours, emails are sent on fresh availability, and account tier limits apply. It does not cover every side effect, but it meaningfully discloses the most important background 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?

Three compact sentences, each earning its place: the core action, the monitoring behavior, and the account limitation. The key action is front-loaded, and there is no redundant prose.

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 the essential behavioral and limitation context but omits several practical details: what the tool returns, how a user would later update or cancel the monitor, duplicate handling, and what counts as 'fresh availability.' Given there is no output schema and no annotation detail beyond the hints, an agent might still need to infer or ask about these points.

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 only 25%, so the description carries some burden. It adds meaning by mapping the key parameters to 'route + window + cabin,' which covers origin, destination, earliest_date, latest_date, and cabin. However, it does not mention the optional airlines, max_points, or passengers parameters, leaving part of the low-coverage schema uncompensated.

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: 'Create a saved route monitor.' It then clarifies the monitor's purpose—checking award seats by route, date window, and cabin—making it clearly distinct from sibling tools like list_route_monitors, cancel_route_monitor, and fs_create_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 this tool: when the user wants ongoing monitoring of award availability rather than a one-time search. However, it does not explicitly name alternatives or state when not to use it, such as pointing users to search_availability for immediate checks or update_route_monitor for changes.

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_toolsB
Read-onlyDestructive
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

B3.2/5.0
Behavior1/5

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

The description presents the tool as purely informational ('Lists complementary remote MCPs... with one-line install URLs'), implying read-only behavior. This contradicts the provided annotation destructiveHint: true, which suggests the tool may cause destructive side effects. The description neither explains nor acknowledges this destructive potential, so it directly conflicts 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.

Conciseness4/5

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

The description is front-loaded with the main purpose, then provides scope details and concrete usage triggers. It is efficient, though the first two sentences are slightly redundant ('Discover ... MCP servers' vs 'Lists complementary remote MCPs'), preventing a perfect score.

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 zero-parameter discovery tool, the description covers what the tool lists and when to call it. However, the unresolved destructiveHint annotation and the lack of any side-effect disclosure leave important context missing; an agent cannot safely assess whether invoking this tool may alter the client or environment.

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 100% schema description coverage, so the description is not required to elaborate on parameter meaning. The baseline for zero-parameter tools is 4, and nothing here lowers that.

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 ('Discover') and a clear resource ('other flight & travel MCP servers'), and lists concrete coverage areas such as seatmaps, airport delays, and lounges. It does not explicitly differentiate itself from sibling tools like fs_discover_more_flight_tools or lounge_discover_more_flight_tools, so it falls short of 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 provides explicit trigger examples ('seat selection, airport delays/security waits, baggage rankings, lounges, or "what other flight tools are there?"'), giving clear context for when to call the tool. It does not mention when not to use it or point to alternatives, though the trigger list is strong enough for a 4.

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

find_premium_hotelsB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description says the tool only 'Find[s]' hotels, implying read-only behavior, but the annotations declare destructiveHint=true. It also fails to reconcile that with the also-present readOnlyHint=true. This is a direct contradiction between the description and structured metadata.

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-loads the action in the first sentence. The benefit details and usage trigger add useful context for intent matching without being verbose, though the benefits list is not strictly necessary.

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 two parameters are fully covered by the schema, and the tool is a simple read-style search. However, there is no output schema and the description does not clarify what the result shape is or address the contradictory destructiveHint, leaving some ambiguity.

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%; both city and program are already fully documented. The description adds no further parameter-level meaning, but does not need to given the schema's clarity, 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 opens with a clear verb and resource: 'Find Amex Fine Hotels & Resorts (FHR), Amex The Hotel Collection (THC), or Chase Edit hotels in a city.' It identifies exactly what the tool returns and differentiates it from generic hotel search siblings by naming specific premium programs.

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 trigger: 'Use when the user wants premium hotel options that maximize portal stacking.' It does not, however, specify when not to use it or mention alternatives like search_hotels, 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.

find_transfer_pathsA
Read-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description clearly frames the tool as a read-only lookup ('Find all transfer routes,' 'Surfaces,' 'computes'), but the annotations include destructiveHint: true alongside readOnlyHint: true. This is a serious contradiction that the description does not resolve, leaving an agent with conflicting signals about whether invoking the tool can mutate 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?

The description is three concise sentences with no filler: definition and example, key behavioral features, and usage condition. Important information is front-loaded and each 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?

The definition plus fully described parameters gives the agent enough to invoke the tool correctly. With no output schema, the description could do slightly more to explain the shape of the returned routes, but it does state that source points are computed and that routes can include hotel-program hops.

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 from_program, target_program, max_hops, and points_needed. The description adds meaningful context by mentioning 'applies live transfer bonuses' and 'source points needed,' but it does not add parameter-level detail 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 states a specific verb and resource: 'Find all transfer routes (direct AND multi-hop) to move points from one program to another.' It includes a concrete example and clarifies that it surfaces 'non-obvious second-hop routes,' distinguishing it from simple partner-lookup 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 an explicit usage condition: 'Use when a card/program has no direct partner with the target.' This tells the agent when to invoke it, though it does not name or contrast alternative sibling tools like compare_transfer_options or get_program_partner_chart.

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

fs_create_seat_alertB
Read-onlyDestructive
Inspect

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

B3.1/5.0
Behavior1/5

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

The description states 'Create a seat alert', which is a write operation, yet the annotation readOnlyHint=true indicates the tool is read-only. This is a direct contradiction. The description also doesn't mention that it creates a persistent record that can later be deleted, nor does it clarify the destructiveHint=true annotation. Because the description contradicts the annotations, this dimension scores the minimum.

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 three sentences and front-loads the primary action. It efficiently covers the mechanism, preferences, auth, and a prerequisite condition. There is minimal redundancy, and the structure is logical. It earns a 4 for being concise and well-ordered, though not maximally concise.

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 description omits what the tool returns after creation (no output schema) and doesn't clarify the write semantics, which is critical given the contradictory annotations. It also doesn't mention that alerts can overlap with existing ones or that deletion is possible. For a tool with conditional parameters and no output schema, the description is incomplete, especially regarding side effects.

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 descriptions for all 6 parameters (100% coverage), including conditional requirements like specific_seat and adjacent_seats_count. The description mentions example preferences (window, aisle, etc.) but adds no new semantic detail beyond what the schema already documents. At 100% schema coverage, the baseline is 3, and the description doesn't raise it.

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 (create a seat alert), the resource (seat alert for a flight), and the mechanism (email notification). It distinguishes itself from related siblings like fs_list_seat_alerts and fs_delete_seat_alert by focusing on the creation aspect, though it doesn't explicitly contrast with them. The purpose is unambiguous and specific.

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 key usage guideline: the flight must already exist in the database, and points to the alternative search_flight if not. It also notes authentication is required. However, it doesn't explicitly state when not to use this tool (e.g., when only checking current alerts, use fs_list_seat_alerts), so it's clear but lacks explicit exclusions.

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
Read-onlyDestructive
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

A3.8/5.0
Behavior1/5

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

The description says 'Delete a seat alert,' a mutating/destructive operation, while annotations declare readOnlyHint: true. This directly contradicts the annotations. Although the description also mentions authentication, the contradiction is severe and makes the behavioral contract untrustworthy.

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 core action is front-loaded, and the prerequisite and authentication note each add value without 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 single-parameter destructive tool with no output schema, the description covers what, how to find the ID, and authentication. It is mostly complete, but the annotation contradiction undermines the overall context an agent would rely on.

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 documented as 'ID of the seat alert to delete.' The description adds useful workflow context by telling the agent to use list_seat_alerts to discover that ID, going beyond the schema 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 uses a specific verb and resource: 'Delete a seat alert by its ID.' It clearly distinguishes this from sibling tools like fs_create_seat_alert and fs_list_seat_alerts by naming the exact operation and the key identifier needed.

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 instructs to use list_seat_alerts to find the alert ID, providing a clear prerequisite step. It does not explicitly state when not to use this tool or name alternative sibling tools, but for a simple delete operation this is acceptable guidance.

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_toolsB
Read-onlyDestructive
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

B3/5.0
Behavior1/5

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

The description says the tool only 'Lists' complementary MCPs, implying a read-only operation, but annotations include destructiveHint=true. This conflicts with the description and leaves the agent uncertain whether the tool can have side effects; no clarification is offered. The presence of readOnlyHint=true alongside destructiveHint=true makes the ambiguity worse.

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 redundant filler. It front-loads the core action and resource, then adds concrete category examples that make the tool's value immediately understandable.

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 no-parameter discovery tool, the description gives enough operational context, but it lacks an explicit statement of the return format or follow-up actions. More importantly, it does not resolve the destructiveHint conflict, leaving an important behavioral ambiguity unresolved.

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 an empty object with 100% coverage, so there are no parameters requiring semantic explanation. The description adds no parameter detail, but none is needed; the baseline for a zero-parameter tool 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 clearly states the tool's purpose with 'Discover' and 'Lists' plus the resource: other flight & travel MCP servers, including specific categories like award flights, delays/wait times, and lounges. However, it doesn't distinguish itself from similarly named siblings such as discover_more_flight_tools or lounge_discover_more_flight_tools.

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 on when to use this tool versus alternatives, and no sibling tool is named. Given the large sibling list containing other discovery tools, an agent receives little help selecting this one.

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

fs_find_best_seatsB
Read-onlyDestructive
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

B3.1/5.0
Behavior1/5

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

The description implies a read-only lookup ('Find'), but the annotations include destructiveHint: true, which contradicts the described behavior. This creates serious ambiguity about whether the tool might alter state. The readOnlyHint: true also conflicts with destructiveHint: true, and the description does nothing to resolve this.

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 includes concrete output details. Every sentence earns its place with no 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?

The description mentions the return type, which is helpful given no output schema. However, it omits ranking criteria, data freshness, and any clarification of the destructive annotation conflict. Given the similarity to several sibling tools and the annotation ambiguity, the description is minimally adequate but incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters and enums. The description's examples of preferences (window, aisle, etc.) add little beyond the schema, 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.

Purpose4/5

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

The description clearly states the verb ('Find'), the resource ('best available seats on a flight'), and the output ('ranked list' and 'interactive seatmap'). However, it does not explicitly differentiate from similar sibling tools like fs_interactive_seat_finder, fs_get_seatmap, or fs_search_flight, so it falls just short of full clarity.

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 should be used when a user has seat preferences and wants ranked recommendations. However, it provides no explicit guidance on when to prefer this tool over the many similar flight tools, and no alternatives or exclusions are mentioned.

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

fs_get_seat_infoC
Read-onlyDestructive
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

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 information lookup plus seatmap rendering, but the annotations include destructiveHint=true, directly contradicting the described behavior. Additionally, readOnlyHint=true conflicts with destructiveHint=true, and the description does not explain or address this destructive indication. This is an 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?

The description is two concise sentences with the core purpose front-loaded and no filler. The second sentence adds a relevant behavioral detail about rendering the interactive seatmap.

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, yet the description does not specify the return shape, units for pricing, or what 'detailed information' concretely includes beyond a vague list. More importantly, the destructiveHint=true contradiction is left unresolved, creating a significant completeness gap for a supposedly read-only 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 already documents all three parameters with descriptions and examples at 100% coverage. The description adds no parameter-level meaning beyond naming the seat and flight, so the 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 verb ('Get detailed information') and the resource ('a specific seat on a flight'), including the kinds of data returned: characteristics, cabin class, availability, and pricing. It also notes the seatmap rendering. However, it does not explicitly differentiate this from closely related sibling tools like fs_get_seatmap or fs_get_seat_reviews.

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. Given siblings such as fs_get_seatmap, fs_get_seat_reviews, and fs_find_best_seats, the description does not state any selection criteria, exclusions, or preferred use cases.

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

fs_get_seatmapB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The description's 'Get the seat map' and cached, read-only framing directly contradicts the annotation destructiveHint=true, which signals destructive side effects. It also does nothing to reconcile that conflict; an agent cannot tell whether this read-like tool may mutate 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?

Two sentences with no filler; the purpose is front-loaded and the most important qualifier (cached data) is placed before the alternative. The only slightly redundant phrase is 'from our database,' but it does not hurt clarity.

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 covers output format and staleness, and the input schema is complete, but the destructiveHint=true annotation leaves a serious behavioral ambiguity unresolved. It also refers to 'search_flight' rather than the actual sibling fs_search_flight, so the completeness of routing is imperfect.

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% for both simple parameters (flight_number, flight_date), so the structured data already documents them. The description adds no extra meaning about parameter formatting or default behavior, which is acceptable but not an enhancement.

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 names a specific resource (seat map for a flight) and a clear retrieval verb, and it spells out what is shown (all seats, cabin classes, characteristics, availability) and the output forms (text + interactive visual). It does not explicitly contrast with close siblings like fs_get_seat_info or fs_find_best_seats, so it falls just short of 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 explicitly states when to prefer the fresh-data alternative: 'Returns cached data — for fresh/updated data, use search_flight (sign in via OAuth).' This gives an agent a clear condition for choosing another tool. However, the sibling is actually named fs_search_flight, so the pointer is slightly ambiguous.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description describes a read-only 'Get' operation and mentions 'no auth required', but the annotations include destructiveHint=true, which implies potential destructive side effects. This directly contradicts the description's clear read-only nature, so the score is 1 due to the 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 compact sentences front-load the core purpose and then add useful return-field details and the no-auth note. Every sentence earns its place without redundancy.

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

Completeness4/5

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

For a simple 2-parameter read-only tool, the description covers purpose, optional filtering, returned fields, and auth requirements. It lacks pagination or result-limit details, but those are minor given the tool's simplicity; the destructive annotation contradiction reduces completeness confidence.

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 and seat_number. The description adds that filtering by seat is optional, but otherwise does not need to compensate for parameter documentation gaps.

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 user-submitted reviews for a flight', and clarifies optional filtering by seat. It also lists what the response contains, making it distinguishable from sibling tools like fs_get_seat_info and 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 Guidelines4/5

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

The description clearly conveys when to use the tool: when an agent needs user-submitted reviews for a flight, optionally for a specific seat. It provides clear context but does not explicitly mention 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.

fs_interactive_seat_finderA
Read-onlyDestructive
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

A4/5.0
Behavior3/5

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

Annotations already include readOnlyHint=true and destructiveHint=true, which is contradictory. The description adds that it 'renders an interactive seatmap,' implying a UI display but not discussing any side effects or the nature of the interactivity. It does not clarify the conflicting destructive hint, so behavioral transparency is only partially addressed.

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 function and immediately followed by the usage context. No wasted words, and the key differentiator 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 two-parameter tool with no output schema, the description is largely complete: it explains the recommendation and rendering behavior, and when to use it. It could specifiy what 'interactive' entails (e.g., does the user select a seat?) or how it differs from fs_find_best_seats, but the low complexity keeps the gap 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%, with both flight_number and flight_date having meaningful descriptions. The tool description itself adds no parameter-level detail, so it relies on the schema. Per rubric, 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 and resource: it 'recommends the best seats on a flight and renders an interactive seatmap.' It also distinguishes itself from siblings by positioning as the 'good default' when no seat preferences are specified, which separates it from fs_find_best_seats and 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 Guidelines4/5

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

The description explicitly gives a usage context: 'Good default when the user wants help finding a seat but hasn't specified preferences.' This clearly indicates when to use the tool, but it does not name alternative seat tools or provide exclusions, so it stops short of a full 5.

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-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

Annotations declare destructiveHint=true while the description describes a non-destructive list operation. Even though readOnlyHint=true aligns with listing, the destructive hint directly contradicts the description's implied no-side-effect behavior, so the behavioral profile is inconsistent.

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, each earns its place: one states scope and result content, the other flags authentication. The core action is front-loaded with 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 zero-parameter listing tool, the description covers purpose, output fields, and authentication. However, the contradictory destructiveHint annotation leaves the behavioral context ambiguous, so the overall definition is not fully coherent.

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 no parameters; the schema is an empty object with 100% coverage. The baseline for zero-parameter tools is 4, and the description correctly does not invent 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'), names the resource ('seat alerts'), and clarifies scope ('all your seat alerts (active and inactive)'). 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 Guidelines4/5

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

The description establishes a clear use case—listing all current and historical alerts—and notes an authentication prerequisite. It does not explicitly exclude alternatives, but for a zero-parameter list tool, the context is sufficient.

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

fs_search_flightA
Read-onlyDestructive
Inspect

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.2/5.0
Behavior4/5

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

Adds account/OAuth requirement, paid-tier behavior, and credit consumption beyond annotations; the credit side effect also helps explain idempotentHint=false. It does not elaborate on the destructiveHint=true signal, but the described operation is a search with a quota side effect.

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-load the purpose, then prerequisites, side effect, and return type — no filler or restatement of the 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?

Covers purpose, auth, plan gating, credit cost, and return type, while the schema covers parameters. Missing explicit guidance on sibling selection or fallback behavior, but not required 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?

The schema already documents both parameters with format and example (100% coverage), so the description adds no parameter-level detail. 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?

States a specific verb ('Search') and resource ('flight'), and differentiates by targeting 'fresh seatmap data' and noting 'new flights not yet in our database' — distinguishing it from database-lookup siblings like fs_get_seatmap or lookup_flight.

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

Usage Guidelines4/5

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

Provides explicit context: requires a signed-in account via OAuth, paid plan users can fetch not-yet-database flights, and it uses a search credit. It does not explicitly name sibling alternatives or state when to prefer fs_get_seatmap, so no 5.

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-onlyDestructive
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/5.0
Behavior3/5

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

The description adds helpful context (editorial Q&A with citable content, no account needed), and readOnlyHint already signals safety. However, the annotations also carry destructiveHint:true, which is inconsistent with the read-only get semantics, and the description provides no explicit statement of absence of side effects to resolve that ambiguity.

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 complete: it covers purpose, use case, parameter format, output nature, and access requirements with no filler. The most identifying information is front-loaded in the first sentence.

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 nearly complete: it gives programme examples, input format, output format, and auth status. It stops short of specifying response shape or handling for unknown programmes, though those are minor for editorial FAQ content.

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 defines 'program' as a slug or loose name with examples. The description repeats this in prose but adds no new semantic details such as normalization, case-sensitivity, or the full list of supported programmes.

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 ('Get') and resource ('curated award-chart FAQs, sweet spots, and booking tips') scoped to a loyalty programme. This clearly separates it from raw chart tools like get_program_partner_chart and from more general knowledge-base searches.

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 to use it to answer questions about award pricing, best redemptions, and how to book. It does not name sibling alternatives as exclusions, so an agent still has to infer when to prefer get_program_partner_chart or recommend_redemption.

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

get_award_release_windowB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description says 'Look up,' implying a purely read-only operation, but the annotations include destructiveHint: true. This is a direct contradiction: the description conveys safety while the annotation flags potentially destructive behavior. Even though readOnlyHint is also true, the conflicting annotations and description create serious ambiguity for an agent.

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 front-loaded, and the second sentence provides actionable guidance. Every word contributes 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 simple single-parameter read tool, the description conveys the purpose, the output concept (days from departure), and a concrete use case. It could be more explicit about the exact return shape, but the description is sufficient for an agent to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100%, with the only parameter 'airline' already documented with an IATA code example. The description adds no additional parameter semantics beyond implying the airline is central to the lookup, so a 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 uses a specific verb and resource: 'Look up when an airline opens award seats for booking (days from departure).' It is clear about what the tool does, but it does not differentiate itself from the sibling tool list_award_release_windows, which could be easily confused with this 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?

Provides explicit usage context: 'Use this before searching for a date >330 days out to warn the user if inventory hasn't been loaded yet.' It does not state when not to use it or name alternative tools, but the intended workflow is clear enough.

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-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

The description says 'Get flight-level detail', which is read-only in meaning and consistent with readOnlyHint=true. However, destructiveHint=true directly contradicts the described behavior, creating serious ambiguity about whether calling this tool can have side effects. Per the rubric, a description that contradicts annotations must receive a 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?

Two dense sentences with no filler. The first sentence front-loads purpose and output contents, and the second gives the single input and prerequisite. 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?

Given one required parameter, no output schema, and no nested objects, the description covers everything needed: input source, prerequisite, and a concrete list of returned flight-level fields. The only issue is the annotation contradiction, which is captured separately.

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 trip_id as 'The trip_id field from an award search result row' with 100% coverage. The description adds the brand 'seats.aero' and reinforces the provenance, but does not add substantial new 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 uses a specific verb and resource: 'Get flight-level detail for one award result', then enumerates the exact contents (flight numbers, aircraft, times, stops, booking links). It also names the upstream tools search_all_airlines and search_availability, which clearly separates it from the many sibling search/get 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 clearly indicates when to call the tool: after an award search, for a single award result, using the trip_id from a seats.aero result row. It also states the prerequisite of a connected seats.aero account. It does not explicitly list exclusions or alternatives, but the usage context is unambiguous.

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-onlyDestructive
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.4/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 behavior: it returns tiered base pricing and bonus promotions, handles the no-program case by returning all programs, and states 'Free — no account needed,' which discloses authentication requirements. It doesn't contradict the annotations, despite the annotation's internal conflict (destructiveHint true), which is not the description's responsibility.

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, each earning its place: purpose, output, usage trigger, and an optionality note plus authentication. It is front-loaded with the core function and wastes no words.

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

Completeness4/5

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

For a simple read-only tool with two optional parameters and no output schema, the description covers the core semantics: what it does, when to use it, how parameters behave, and the lack of auth requirement. It doesn't detail the exact response shape, but the statement about 'tiered base purchase pricing and any active bonus promotion' gives a reasonable expectation. Overall, an agent can 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% for both parameters (program and quantity). The description adds meaningful context for 'program' by explaining the omitted-program behavior ('returns all programs with pricing data'), which goes beyond the schema's bare definition. It doesn't specify quantity syntax, but that is already 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?

The description states a specific verb ('Get') and resource ('cost to buy points/miles for a loyalty program'), and clarifies the output ('tiered base purchase pricing and any active bonus promotion'). It also gives a concrete sample question ('how much does it cost to buy X Avios/miles/points?') that makes the tool's distinct purpose unmistakable, even among context-heavy pricing siblings like get_pricing or get_points_valuation.

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 trigger: 'Use to answer how much does it cost to buy X Avios/miles/points?' It also explains the behavioral branch (with or without a program). However, it does not name alternatives or state when not to use it, though the specific use case effectively differentiates it from siblings.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description portrays a read-only lookup: 'Get', 'Returns', and 'Free — no account needed'. However, annotations include destructiveHint=true, which directly conflicts with that read-only framing. Even though readOnlyHint=true is also present, the contradiction makes the behavioral profile untrustworthy and warrants a score of 1.

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 four sentences and front-loaded with the core purpose, followed by return contents, input flexibility, a caveat, and access requirements. It earns its length, though the airline examples appear in both the description and the schema, creating slight 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 one-parameter lookup with no output schema, the description adequately explains return values (headline fee, exemptions, source link) and flags the partner-programme exclusion. Missing details like currency or response format are minor for this low-complexity 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 only parameter, 'airline', is already fully described in the schema with examples, so the baseline is 3. The description adds 'slug or loose airline name', which provides mild flexibility, but it largely duplicates the schema's 'Airline slug or name' wording. No significant new parameter meaning is added.

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 resource — the award-ticket cancellation/redeposit fee — and clarifies it applies to an airline's OWN loyalty programme. This immediately distinguishes it from sibling tools like get_partner_award_options and get_award_chart_faq. The verb 'Get' plus the stated return content makes the purpose unambiguous.

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

Usage Guidelines4/5

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

The description explicitly states when to use it (airline's direct loyalty programme) and gives a clear when-not condition: partner-programme fees differ. It does not name a specific alternative tool, but the boundary is strong enough for an agent to route correctly.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The annotations carry readOnlyHint=true but also destructiveHint=true; the description frames the operation purely as a lookup and return, with no mention of any destructive side effect. This directly contradicts the destructiveHint annotation, and the description does not otherwise disclose rate limits, auth needs, or side-effect 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?

Three short sentences that front-load the action and outcome, then add a use case and cost note. No filler or redundant restatement of parameter schemas.

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 lookup with an output table, the description is mostly sufficient, but the destructiveHint contradiction leaves an unresolved behavioral question, and with no output schema the return shape is only vaguely described ('% of distance earned per booking class'). The 'Free' note also lacks context (free in credits? free of charge?).

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters with formats and optionality. The description adds only a light restatement of 'per booking class,' which maps to fare_class but adds no new meaning over 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 names a specific verb ('look up'), resource ('mileage earning rates'), and scope ('for crediting a partner-airline ticket to a loyalty program'), and states the concrete output ('% of distance earned per booking class'). This clearly separates it from award-chart or flight-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?

Explicitly tells the agent when to reach for this tool ('Use when deciding which program to credit a flight to'), which is actionable context. It stops short of naming alternatives or exclusion conditions (e.g., when to use calculate_flight_earnings instead), so not a 5.

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

get_flight_bookingC
Read-onlyDestructive
Inspect

Get details of a specific flight booking/redemption.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

C2.5/5.0
Behavior1/5

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

The description says 'Get details,' which implies a read-only operation and aligns with readOnlyHint=true, but the annotation destructiveHint=true directly contradicts that. This gives an agent conflicting safety signals, and the description provides no clarifying 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.

Conciseness4/5

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

The description is a single efficient sentence with no filler. It front-loads the verb and resource, though it is so brief that it leaves important behavioral gaps.

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?

With no output schema and no statement about return shape, error behavior, or booking types, an agent cannot fully predict the tool's response. The contradictory destructiveHint annotation further undermines completeness.

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 no description for booking_id, so coverage is 0%. The description only implies that booking_id identifies the booking, but does not explain expected format, scope, or how redemptions differ from paid bookings.

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?

States a specific verb and resource: 'Get details of a specific flight booking/redemption.' This clearly distinguishes it from list/update/delete siblings by emphasizing a single booking, though it does not name those alternatives.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_flight_bookings or get_award_trip_details. The usage context is only implied by the word 'specific' rather than explicitly stated.

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

get_hotel_availabilityB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The annotations declare both readOnlyHint=true and destructiveHint=true, while the description presents the operation as a simple read-only 'Get.' This is a direct contradiction: a read-only availability lookup should not be destructive or non-idempotent, and the description discloses none of the conflicting side-effect risk.

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 and front-loaded: the first sentence states what the tool does, the second gives essential sequencing context, and 'Paid feature' is a meaningful warning. No words are wasted.

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?

With no output schema, the description should clarify what the response contains, but it only vaguely implies points availability and rate_plan without specifying returned fields. The contradictory destructive annotation also leaves behavioral side effects unexplained, making the tool incomplete for safe invocation.

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%, with only hotel_code having a descriptive comment. The description adds little beyond the word 'specific dates' and does not compensate for the undocumented check_in_date and check_out_date parameters or clarify how they should be formatted beyond the schema patterns.

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: 'Get current points availability for a hotel on specific dates.' It also distinguishes itself from monitor_hotel_price by explicitly positioning this tool as a prerequisite step, so an agent can tell it apart from closely related 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?

'Use BEFORE monitor_hotel_price to find the correct rate_plan and current points rate' provides explicit sequencing and a concrete purpose. However, it does not mention when not to use this tool or name alternatives beyond monitor_hotel_price, so it stops short of full exclusion guidance.

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

get_hotel_bookingB
Read-onlyDestructive
Inspect

Get details and full price history of a monitored hotel booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYes

TDQS

B3.4/5.0
Behavior1/5

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

The description says 'Get details and full price history', which is a read-only retrieval, and readOnlyHint is true. However, destructiveHint is also true and idempotentHint is false, directly contradicting the described behavior. This is an annotation contradiction and seriously undermines an agent's ability to predict 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?

A single, front-loaded sentence with no filler. It immediately states the action and the distinguishing output, making the core purpose clear without unnecessary prose.

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 getter, the description covers the essential context: which resource is targeted and what information is returned. No output schema exists, but 'details and full price history' gives a reasonable sense of the response. The only significant gap is that the contradictory destructive annotation is not addressed, though that is more a behavioral transparency issue.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does clarify that the booking_id refers to a monitored hotel booking, but it adds no further detail about where the ID comes from, what range is valid, or how to interpret the returned price history. The single parameter is minimally documented beyond its name and 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?

The description names a specific verb ('Get'), a specific resource ('monitored hotel booking'), and a distinct output aspect ('full price history'). This distinguishes it from siblings like list_hotel_bookings, get_hotel_availability, and get_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 phrase 'monitored hotel booking' implies this tool is for bookings that are being price-monitored, and it is clearly not for flight bookings. However, it does not explicitly state when to prefer this over list_hotel_bookings or how to obtain a valid booking_id, so usage guidance remains implicit rather than explicit.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The annotation destructiveHint: true directly conflicts with readOnlyHint: true and with the description's purely informational framing ('list', 'Use this to answer', 'Free — no account needed'). The description gives useful data caveats, such as off-peak/saver estimates from published award charts, but it does not resolve the contradictory destructive annotation. This is an 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?

The description is compact and well ordered: purpose, example, intended user question, data caveat, and access constraint. No sentence is wasted, and the main function is front-loaded before the illustrative example and usage note.

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 states what will be returned: a list of loyalty programmes and point costs per cabin. It also discloses the estimate nature of the points and that no account is needed. It does not specify the exact result shape or empty-result behavior, but the task is simple enough that the description is largely 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%, and each parameter already has IATA format details and examples. The description's KE/ICN/LAX example reinforces the carrier and route semantics, but it adds no substantive parameter-level meaning beyond what the schema and examples already provide.

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: 'list which loyalty programmes can book that airline as a PARTNER and how many points it costs per cabin.' The Korean Air ICN→LAX example makes both inputs and expected output concrete. It is clearly distinguishable from sibling lookup tools like get_program_partner_chart by emphasizing partner bookings for a specific operating airline and route.

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 takeaway use case: 'Use this to answer "which of my programmes can book this flight and what's the cheapest?"' This is clear context for when the tool is appropriate. 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.

get_points_valuationA
Read-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

The description presents a pure read operation ('Get', 'Returns') and even says 'Free — no account needed', but the annotations include destructiveHint=true and idempotentHint=false, which directly contradict a safe read-only lookup. While readOnlyHint=true is also present, the destructive hint is not reconciled by the description, creating a serious safety 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, each earning its place: the core purpose, the return contents, and the input/auth requirements. It is front-loaded and free of filler.

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 unauthenticated lookup with no output schema, the description covers the input, the output shape, and the access constraints. An agent has enough to call the tool correctly and interpret the result.

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 single currency parameter at 100% coverage. The description adds real value by clarifying that a slug or loose name is acceptable and supplying concrete examples like 'chase-ultimate-rewards', 'amex points', and 'hyatt'. This goes beyond the schema's baseline.

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

Purpose5/5

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

The description names a specific verb and resource: 'Get the cents-per-point valuation' for a 'credit-card points/miles currency or hotel program'. It answers a concrete user question and is clearly distinct from sibling get_* tools like get_pricing or get_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 Guidelines3/5

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

The description implies when to use it — whenever a points/miles valuation is needed — and even explains the input forms ('slug' or 'loose name'). However, it does not explicitly contrast this tool with alternatives such as get_pricing, get_earning_rates, or get_program_rates, so an 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.

get_portfolioA
Read-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

The description presents this as a read-only summary ('Get a complete summary'), which aligns with readOnlyHint=true but directly contradicts destructiveHint=true. The description adds useful snapshot and refresh context but never acknowledges or reconciles the destructive annotation, making the tool's safety profile ambiguous.

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: the first states what the tool does and its contents, the second explains the snapshot relationship and when to call it. No filler or 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?

For a zero-parameter tool, the description covers the data contents and the refresh trigger well. However, the contradictory destructiveHint remains unresolved, and there is no output schema or mention of return shape, so an agent still has an important behavioral unknown.

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 already provides complete parameter information; the baseline of 4 applies. The description adds no parameter-level detail, but none is needed.

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

Purpose5/5

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

The description uses a specific verb and resource ('Get a complete summary of your travel rewards portfolio') and enumerates the contents: points balances, spend, trips, destinations, and trends. This clearly distinguishes it from the many list_* and get_* 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?

Explicitly states when to call: after the user adds bookings or balances in-session when a refresh is needed, and reveals that it uses the same snapshot as the server-loaded preamble. It does not explicitly contrast itself with alternative list/get siblings 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_pricingB
Read-onlyDestructive
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.3/5.0
Behavior1/5

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

Annotation Contradiction: destructiveHint=true conflicts with the read-only 'Get the award pricing chart' semantics, while readOnlyHint=true marks it as read-only. The description adds 'Paid feature' and 'No date needed,' but the contradictory annotations make the tool's behavioral profile unreliable.

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, using four short sentences that each add value: purpose, output content, no-date caveat, and paid-feature warning. There is no filler or redundant repetition.

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 3-parameter lookup, the description covers the purpose and basic return content, and the schema covers constraints. However, the 'Paid feature' warning lacks billing/auth implications, and with no output schema, the exact return format is only generally described.

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 coverage, the description partially compensates: 'specific airline route' implies departure_code and arrival_code, and 'No date needed' clarifies that no date parameter exists. However, it does not explain IATA code format or the supported airline list beyond what the schema's enum and patterns already provide.

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 the award pricing chart for a specific airline route, and it clarifies what the result contains (points per cabin class, off-peak/peak). This clearly differentiates it from siblings like date-based award release windows or point-purchase pricing 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 description provides useful context—route-specific, no date needed, paid feature—but it does not explicitly say when to use this tool over similar siblings such as get_partner_award_options or get_program_partner_chart. The usage guidance is implied rather than explicitly stated.

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-onlyDestructive
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

A3.8/5.0
Behavior1/5

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

Annotation Contradiction: annotations declare destructiveHint=true, while the description is clearly read-only ('Get ... award chart', 'Free — no account needed'). This is a serious inconsistency that undermines an agent's trust in choosing and invoking the tool. Even though the description adds useful caveats about trip_basis and confidence fields, the contradiction forces the lowest score.

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?

Four dense sentences front-load the core resource and then provide essential caveats. Minor redundancy exists because the supported programme list echoes the enum, but the airline-name clarifications justify keeping it. No filler words or vague promises.

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 tool with no output schema, the description is unusually complete: it explains output form, how to match rows, which returned fields to read, one-way vs round-trip semantics, partner-only applicability, and the free/no-account condition. Nothing essential is missing for a correct call.

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 only parameter is fully covered by the schema's enum and description, so the baseline is 3. The description adds value by mapping slugs to airline names (aeroplan=Air Canada), marking cathay-asia-miles as distance-based, and noting ANA's round-trip behavior. This goes beyond simple repetition of 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 names a specific resource ('PARTNER airline award chart'), defines its form (region-pair or distance-band table), and delimits scope to partner-operated flights. It is clearly distinguishable from sibling tools by describing the output as a table with sources, confidence, and caveats.

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 these charts apply to PARTNER-operated flights and not to a programme's own dynamically-priced flights, giving an agent a clear boundary. It does not name alternative sibling tools or state positive 'use this instead of X' conditions, so it stops short of full guidance.

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

get_program_ratesB
Read-onlyDestructive
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

B3.2/5.0
Behavior3/5

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

The description adds 'Free — no account needed', which is useful behavioral information beyond the annotations. However, it does not address the contradictory annotations (readOnlyHint=true but destructiveHint=true), leaving ambiguity about potential side effects. With annotations present, the bar is lower but the description still doesn't clarify this inconsistency.

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 two sentences, front-loaded with the purpose, then the return details, and finally a note about cost/account. It is concise with no wasted words and maintains clear structure.

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 one parameter, the description is fairly complete: it states the full chart scope, all destinations, and free access. However, it doesn't mention potential limits like pagination or large responses, and it doesn't clarify the conflicting annotations or differentiate from similar siblings, leaving some 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?

The schema has 100% coverage of the single parameter (program), and the description adds no extra information beyond saying 'specific loyalty program', which is redundant. Baseline 3 is appropriate where the schema already fully documents the parameter.

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 'Get' and resource 'award chart rates for a specific loyalty program', and clearly describes what it returns: all destinations with points per cabin class including off-peak/peak pricing. It is distinct from siblings like get_earning_rates and get_pricing, though it doesn't explicitly name them.

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 on when to use this tool versus alternatives. It describes what it does but doesn't explain the context or situations that would select it over the many similar award-related tools among siblings.

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

get_skillA
Read-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description presents a read-only fetch operation, but the annotations declare destructiveHint: true and idempotentHint: false. This directly contradicts the described behavior of simply retrieving markdown content, creating serious 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?

Two tightly written sentences. The primary action and key scoping come first, and the usage guidance is one clear clause with 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 single-parameter tool, the description covers what is fetched, how it is identified, and when it should be used. The only meaningful gap is the unresolved contradiction with destructiveHint, which is already penalized under behavioral transparency.

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?

There is only one parameter and the schema fully describes it as a skill key from list_skills. The description adds no further semantic detail, but with 100% schema coverage the parameter burden is already satisfied.

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 ('Fetch') and resource ('full markdown body of a reference skill'), and clarifies the lookup mechanism is by key. It clearly distinguishes from list_skills, which would list skills rather than retrieve a body.

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 use case: 'Use when planning multi-step workflows where the skill's rules matter.' It does not name when not to use it or mention alternatives, but the stated context is 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.

get_status_matchesB
Read-onlyDestructive
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

B3/5.0
Behavior1/5

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

The description contradicts the annotations: it describes a read-only operation ('Get') with no side effects, while the annotations set destructiveHint to true. This is a clear contradiction, so the score is 1.

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

Conciseness3/5

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

The description is a bit verbose, containing multiple sentences and a URL. While it is structured and includes useful details like direct apply links and FAQ pages, it could be more concise. It is not poorly structured but would benefit from trimming.

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 provides sufficient information for an agent to understand the tool's purpose, the nature of the results, and the fact that no account is needed. It also includes a link for more details. However, it does not mention any potential limitations or when to avoid using it, but given its simplicity, it is almost 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 schema fully describes the only parameter 'alliance' with its enum values and a clear description ('Filter by airline alliance'). The tool description does not add any additional meaning or context for the parameter, 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.

Purpose5/5

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

The description clearly states that the tool gets current airline status match offers, specifies that it returns active promotions, and includes direct apply links. It also provides a link to FAQ pages. This is specific and distinguishes it from other tools 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 Guidelines2/5

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

The description does not explicitly state when to use this tool versus alternatives. It mentions 'Free — no account needed' which gives some context, but there is no guidance on when this tool is preferred over other lookup tools. Usage conditions are vague.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description explicitly says 'Read-only' and describes only an information-display operation, but the annotations include destructiveHint=true, which indicates the tool may cause destructive side effects. This is a direct contradiction between the description and the annotations, so the rubric requires a score of 1 and an annotation-contradiction flag.

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 action and scope, packs the output fields into one efficient sentence, and adds two clarifying question-phrasings plus a one-word safety note. Every clause earns its place and 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?

Because there is no output schema, the description does the necessary work of explaining exactly what will be returned: current tier, qualifying balance, next-tier threshold, what it unlocks, distance to it, and requalification date. It is complete for a simple read-only list operation, though it does not address edge cases like no tracked programs or invalid slugs, and the destructiveHint contradiction slightly undermines overall completeness.

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

Parameters3/5

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

The only parameter, 'program', is fully described in the schema with 'Optional — limit to a single program slug. Omit to return all tracked statuses.', so schema description coverage is 100%. The tool description reinforces the 'all tracked programs' behavior but adds no parameter-level meaning beyond what the schema already provides, 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 states a specific verb ('Show') and resource ('the user's progress toward elite status across all their tracked loyalty programs'), then enumerates the exact returned fields. This level of detail makes it easy to distinguish from related siblings like set_status_progress and get_status_matches without opening the schema.

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 includes explicit user-question triggers: 'how close am I to my next tier?' and 'what would the next tier get me?', which tell an agent when to invoke the tool. It also clarifies the optional program-filter behavior, but it does not name alternatives or state explicit cases where this tool should not be used.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The annotations are internally contradictory: readOnlyHint=true while destructiveHint=true, and the description characterizes the tool as a read-only data-combining briefing operation. The description never warns about any destructive effect, directly contradicting the destructiveHint annotation. It provides no side-effect, freshness, or error context, which is a serious transparency 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 short sentences with no filler. The core action and output categories are front-loaded before the usage cue, and each sentence adds independent value.

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 provides a high-level return concept and a usage trigger, which is mostly sufficient given the well-documented schema. However, there is no output schema and the annotations conflict over destructiveness, leaving an agent uncertain about response structure and possible side effects. This prevents the description from being 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 description coverage is 100%: all four properties have descriptions including patterns for IATA codes, date format, and flight_number. The description adds no parameter-specific guidance, such as why origin/destination/date are optional or how they help disambiguate the briefing. Therefore the schema carries the semantic burden and the description does not improve on 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 names a specific verb ('Combine') and resource ('FlightSeatmap and FlightQueue data'), then enumerates the concrete output content: seatmap availability, airport delay, and security-wait snapshots. This clearly distinguishes it from single-source siblings like fs_get_seatmap or lookup_flight. No tautology.

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 second sentence gives an explicit trigger: 'Use when a user asks how to prepare for a flight or wants one live flight brief.' This is clear usage context, but it does not name alternatives or explicitly state when not to use this tool, so it falls short of a full routing rule.

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-onlyDestructive
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
Behavior1/5

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

The description presents a read-only list operation, but the annotations mark destructiveHint=true, directly contradicting the behavior described. This conflict undermines agent trust; no further behavioral context is added.

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 the core operation front-loaded and the usage cue in the second sentence. No redundant or filler content.

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 zero-parameter list tool, the description covers the essential scope and trigger, and no output schema exists to detail return fields. However, the conflicting destructive annotation and lack of any mention of response contents leave some ambiguity 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?

There are no parameters, so the schema leaves nothing undocumented and the description has no obligation to explain inputs. Baseline 4 for zero-parameter tools 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?

States a specific verb and resource ('List all known per-airline award booking windows') and clearly distinguishes from the singular sibling get_award_release_window by plural scope. The trigger phrase ties it to a user intent.

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 a clear usage trigger ('when do award seats open?' generally) and the qualifier 'generally' implies this is the broad list rather than a per-program lookup. It does not explicitly name alternatives or say 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.

list_flight_bookingsA
Read-onlyDestructive
Inspect

List all tracked flight award bookings/redemptions. Shows airlines, routes, points spent, and cabin classes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

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

The description says 'List,' which is a read-only operation, but the annotations include destructiveHint: true. This directly contradicts the stated behavior. Even though readOnlyHint is also true, the conflicting destructiveHint creates an unsafe ambiguity, so this dimension scores 1 due to the 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 short sentences with no filler: the first states the action and scope, the second lists the returned fields. Every word earns its place and the main purpose 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 parameterless list tool, the description adequately states what the agent will get back: airlines, routes, points spent, and cabin classes. However, the conflicting destructiveHint annotation is not addressed or clarified, which prevents this from being fully complete from a safety and context standpoint.

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 a completely covered empty schema, so there is nothing for the description to add about parameter meaning. Per the baseline for 0-parameter tools, a score of 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 clear verb and resource: 'List all tracked flight award bookings/redemptions.' It also distinguishes this from sibling tools like get_flight_booking, add_flight_booking, and delete_flight_booking by indicating an aggregate list rather than a single-booking operation.

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 'List all tracked' implies this is the bulk-listing tool for flight award bookings, but it does not explicitly state when to use it over get_flight_booking for a single booking or list_hotel_bookings for hotel bookings. Usage is implied rather than clearly specified.

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-onlyDestructive
Inspect

List all hotel bookings being monitored for price drops. Shows current vs. original points rates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

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

The description frames this as a read-only listing, consistent with readOnlyHint=true, but the annotations also contain destructiveHint=true, which directly contradicts that framing. The description adds useful context about current vs. original points rates, but the contradictory annotation makes the tool's behavior ambiguous and misleading.

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 core action is front-loaded, and the output detail is provided in the second sentence without 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 zero-parameter list operation, the description covers the resource, the filtering concept (price-drop monitoring), and the return value's key fields. It does not mention pagination or result ordering, but the low complexity and lack of output schema make those omissions minor.

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

Parameters4/5

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

The input schema has zero parameters, so the description cannot add parameter-level meaning. The baseline of 4 applies here because there are no parameters to document, and the description instead clarifies what the returned data will contain.

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 ('List all hotel bookings being monitored for price drops') and even states what the output shows. This makes it easy to distinguish from list_flight_bookings and get_hotel_booking without inspecting 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 use case is implied by the description, but there is no explicit when-to-use guidance or mention of alternatives. An agent is not told when to prefer get_hotel_booking for a single booking or list_flight_bookings for flights.

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

list_integrationsA
Read-onlyDestructive
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

A3.8/5.0
Behavior1/5

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

Annotation Contradiction: the description clearly describes a read-only listing operation, but annotations declare destructiveHint=true. This directly contradicts the stated behavior and undermines an agent's ability to trust the safety profile. readOnlyHint=true reinforces the conflict.

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 efficient sentence followed by a clear usage directive. It is front-loaded with the operation and includes no 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 list tool, the description provides enough context: what is listed, example services, and when to call it. The contradictory destructive annotation prevents a perfect score because it introduces ambiguity about the operation's side effects.

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 no properties, so this is a zero-parameter tool. Per rubric baseline, a score of 4 is appropriate; there are no parameter semantics that the description would need to add.

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') with a clear resource ('external services the user can connect') and the information returned ('current connection status'). It is easily distinguishable from sibling tools like connect_integration and disconnect_integration.

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 call the tool ('before any flight/hotel search if you suspect a connection is missing'). It does not state exclusions or explicitly compare with alternatives, so it falls just short of full guidance.

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

list_lounge_visitsB
Read-onlyDestructive
Inspect

List the airport lounge visits you've logged to your portfolio.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior1/5

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

The description says 'List', which indicates a read-only operation, but the annotations declare destructiveHint: true and idempotentHint: false. This directly contradicts the non-destructive nature of listing and creates serious ambiguity about whether the tool may mutate state. Per the rubric, a description that contradicts annotations must score 1 and be flagged.

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 delivers the core meaning with no filler. It is appropriately concise for a parameterless listing tool.

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 parameterless list tool, the description is nearly sufficient, but the annotation contradiction leaves the safety profile unclear and the overlap with 'lounge_get_my_visits' is unresolved. With no output schema, the description also doesn't clarify what the returned visit objects contain, though listing tools generally carry a modest burden here.

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 input schema already fully describes the calling contract. The description doesn't need to explain parameters, making the baseline 4 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 uses a specific verb ('List') and resource ('airport lounge visits'), with a clear scope ('you've logged to your portfolio'). It is unambiguous on its own, but it does not differentiate itself from the sibling tool '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 Guidelines2/5

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

No guidance is given about when to choose this tool over related siblings such as 'log_lounge_visit', 'delete_lounge_visit', or especially 'lounge_get_my_visits'. There is no stated context, exclusions, or alternative routing.

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-onlyDestructive
Inspect

List the user's tracked elite/loyalty statuses across airlines and hotels.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior1/5

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

The description describes a read-only list, which is consistent with readOnlyHint=true but directly conflicts with destructiveHint=true and idempotentHint=false in the annotations. Because the annotation block profiles the operation as destructive and non-idempotent while the description says it merely lists, the agent receives contradictory behavioral signals. This is an 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?

The description is a single sentence with a front-loaded verb and resource, and no filler. Every word adds scope: 'tracked', 'elite/loyalty', 'across airlines and hotels'.

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 tells the agent what is listed and at what scope. The main remaining friction is the contradictory destructive annotation, not the description itself; the absence of an output schema is acceptable at this low complexity but a brief note on returned fields would improve completeness.

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 input schema's coverage is effectively 100% with empty properties. The description needs no parameter detail and, by naming the scope, it clarifies what the no-argument call returns.

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 resource ('user's tracked elite/loyalty statuses'), and states the domain scope ('across airlines and hotels'). This clearly separates it from sibling operations like set_loyalty_status, delete_loyalty_status, and 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 Guidelines4/5

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

The description establishes a clear query context: listing the user's tracked statuses across airline and hotel loyalty programs. It does not explicitly name alternatives or exclusions, so an agent must infer when to choose it over get_status_progress or get_status_matches, but the read-only listing intent is clear.

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-onlyDestructive
Inspect

List the companion/upgrade vouchers the user holds, including which booking each is applied to. Paid feature.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

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

The description presents the tool as a read-only listing operation, which aligns with readOnlyHint=true but directly contradicts destructiveHint=true and idempotentHint=false. Calling it a 'Paid feature' adds useful cost context, but the contradictory annotations make the behavioral profile unclear and unreliable for an agent.

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 first sentence states the primary function and output detail, and the second adds an important paid-feature warning. Both sentences earn their 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 listing tool with no output schema, the description provides sufficient scope: it says what is listed and highlights the paid-feature caveat. It could add more detail about return fields or prerequisites, but nothing essential appears to be missing for a simple list operation.

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 is empty, so the description carries no parameter burden. It appropriately explains what the tool returns—the user's vouchers and the booking each is applied to—which supplies the semantic meaning beyond the empty 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 ('List') and resource ('companion/upgrade vouchers the user holds'), and distinguishes this from likely siblings such as list_voucher_types by focusing on vouchers the user holds and their applied bookings. It clearly identifies what the tool returns without ambiguity.

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 'the user holds' implies that this is for the user's own vouchers rather than a catalog of voucher types, which gives some context for when to use it. However, it does not explicitly name alternatives like list_voucher_types or state when not to use this tool, so routing guidance is only implied, not explicit.

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

list_points_balancesB
Read-onlyDestructive
Inspect

List all your loyalty program points/miles balances.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior1/5

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

The description frames this as a read-only enumeration ('List all...'), which conflicts with the annotations destructiveHint=true and openWorldHint=true. The word 'all' also clashes with openWorldHint's implication that results may not be exhaustive. Because the description contradicts the annotations and provides no clarifying context, this scores 1 and is flagged as an 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?

A single, front-loaded sentence with no filler, redundancy, or unnecessary detail. Every word contributes to identifying the action, resource, and scope.

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 parameterless list tool, the one-line description is nearly sufficient and the return value is inferable from the name. However, the conflicting annotations are not resolved, and with no output schema the description does not fully clarify whether results are exhaustive or whether the operation has side effects.

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

Parameters4/5

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

The schema has zero parameters with 100% coverage, so there is no parameter documentation burden. The description's 'all your loyalty program points/miles balances' adds useful scope information that the empty schema cannot convey.

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 ('List') and resource ('loyalty program points/miles balances') with a clear scope ('all your'). This makes it easy to distinguish from sibling tools like update_points_balance, delete_points_balance, and get_points_valuation 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 Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as get_points_valuation, list_loyalty_statuses, or get_portfolio. There are no prerequisites, exclusions, or contextual cues beyond what the tool name and one-line purpose already imply.

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

list_route_monitorsC
Read-onlyDestructive
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

C2.9/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, but the annotations include destructiveHint=true while also declaring readOnlyHint=true. The description does not reconcile or clarify this contradiction. Because the annotation set is internally inconsistent and the description does nothing to resolve the destructive implication, this is an 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?

One crisp, front-loaded sentence, zero superfluous words. Every element in the description contributes meaning.

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, and the description names only two return fields without addressing pagination semantics, ordering, or empty results. More importantly, the destructiveHint=true annotation is left unresolved, leaving a serious behavioral ambiguity for an otherwise simple list 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?

The schema covers page and per_page, but the status parameter has no description. The tool description only mentions 'current status' as an output field, not as a filter parameter, so an agent gets little help understanding how to use the status enum to filter results.

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' with a clear resource: 'the user's saved route monitors.' It also identifies the return fields ('last-checked time and current status'), making it instantly distinguishable from sibling list tools such as list_standing_orders or list_flight_bookings.

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 about when to choose this over alternatives like create_route_monitor, update_route_monitor, or cancel_route_monitor is provided. The phrase 'user's saved' gives mild context, but there are no prerequisites, exclusions, or decision rules.

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

list_skillsA
Read-onlyDestructive
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

A3.8/5.0
Behavior1/5

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

Description presents this as a passive listing operation ('List... available', 'Free, no auth required'), but annotations flag destructiveHint: true. This is a direct contradiction: the description implies no data-changing behavior while the annotation warns of potentially destructive effects. ReadOnlyHint: true and destructiveHint: true also conflict with each other, and the description does nothing 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 efficient sentences; the first names the action and resource, the second gives examples and access requirements. No filler or repetition.

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-oriented list tool, the essentials are present: what is listed, what kinds of content are included, and access constraints. Lacks a note about response shape, which is somewhat expected since there is no output schema, but this is 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 are no parameter semantics for the description to add beyond the empty schema. Baseline for zero-parameter tools is 4; the description adds access context (free, no auth) that is useful.

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 a distinct resource ('reference skills available'), with concrete examples of sub-domains (sweet spots, hold rules, cabin codes) that separate it from generic listing tools. The resource is unique among siblings such as get_skill, so intent 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?

Provides clear context for when to pull institutional knowledge on demand and lists example sub-domains. Stops short of explicitly naming alternatives (e.g., get_skill) or excluding cases, so it lacks full routing guidance.

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

list_standing_ordersB
Read-onlyDestructive
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

B3.4/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, and readOnlyHint=true reinforces that, but destructiveHint=true directly contradicts this by signaling a destructive effect. Because the annotation set is internally inconsistent and the description does not explicitly clarify that no standing orders are modified, the behavioral profile is dangerously ambiguous. The added return-field context is useful, but it cannot offset the 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?

The description is a single sentence with no filler, front-loading the verb and resource before delivering the useful output details. 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 simple list tool with one optional parameter, the description names the resource and the salient returned fields (schedule, next run time, last run result). The main shortfall is not in the description's coverage but in the contradictory destructiveHint annotation, which muddies the safety context despite readOnlyHint=true.

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 documented with its default and meaning. The description adds no extra meaning for the parameter, so the 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 names a specific verb ('List'), a specific resource ('the user's standing orders'), and clarifies what standing orders are ('recurring instructions ATF runs unattended'). It also states the returned content: schedule, next run time, and last run result. This clearly separates it from mutating siblings like create_standing_order and cancel_standing_order.

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—whenever the user needs to see their standing orders—but it does not explicitly discuss alternatives or exclusions. It does not differentiate this from related listing/mutation tools like list_route_monitors, cancel_standing_order, or update_route_monitor.

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-onlyDestructive
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/5.0
Behavior1/5

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

The description correctly conveys a harmless, read-only list operation, but annotations include destructiveHint=true, which directly contradicts the described behavior. The description does not resolve this conflict by explicitly stating it has no side effects, and readOnlyHint=true vs destructiveHint=true is an unresolved 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, all information-bearing: what is listed, what the live/degraded/idle statuses mean, when to call it, and auth requirement. Front-loaded with the verb and resource; 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 public list tool with no output schema, the description covers the status semantics and the calling context well. It loses one point because it does not explicitly counter the annotation's destructiveHint, leaving an agent that trusts annotations uncertain about side effects.

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 and 100% schema description coverage, so there is nothing for the description to add about parameter syntax. The baseline for a zero-parameter tool is 4, and the description appropriately focuses on output semantics instead.

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 specific resource ('airlines ATF can search for award seats') and defines the output's LIVE status categories. It clearly distinguishes this from search_all_airlines, so an agent can tell it apart from siblings 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?

It explicitly states when to call: 'before promising coverage or when a search comes back thin,' and explains why by noting search_all_airlines only fans out to live sources. It also tells the agent no sign-in is needed, removing auth-related uncertainty.

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

list_tripsA
Read-onlyDestructive
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.6/5.0
Behavior1/5

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

The description says 'List', which is a read-only operation, but the annotations include destructiveHint: true. This is a direct contradiction. The description also does nothing to reconcile the conflicting safety 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?

One dense sentence that front-loads the core action, scopes the resource, and lists the returned fields. 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 covers the key return fields and the schema covers the filter. It is slightly incomplete because it does not mention pagination, limits, or ordering, and the absence of an output schema makes those details more valuable. Still, for a simple list operation, it is largely 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 optional status parameter is fully documented in the schema, including its enum and default value. The description adds no parameter-specific guidance, but 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.

Purpose5/5

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

The description states a specific verb ('List'), a clearly scoped resource (the signed-in user's trips), and clarifies the unusual domain model ('trip-as-project workspaces'). It also names the returned fields, making the purpose unmistakable and distinguishing it from other list_* 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 clearly conveys this is for retrieving the signed-in user's own trips, which is useful context. However, it does not explicitly mention when not to use it or point to alternatives such as get_trip_briefing or create_trip.

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

list_voucher_typesB
Read-onlyDestructive
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

B3.1/5.0
Behavior1/5

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

The annotation destructiveHint is true, yet the description implies a pure read operation ('Browse', 'Free reference data'). This directly contradicts the annotation, creating confusion about whether the tool has side effects. No additional behavioral details are given.

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 three sentences, with the core purpose front-loaded and a concise list of examples. It is efficient and avoids redundancy, though slightly long due to the enumeration.

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, and the description does not mention what fields or format the catalogue data will be in. Combined with contradictory annotations, agents cannot fully predict the tool's behavior or return values.

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 both parameters described and enumerated. The description only repeats that filtering is possible without adding extra syntax or value beyond the schema's definitions.

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 browses a catalogue of voucher types, listing specific examples like BA Amex companion and United PlusPoints. This differentiates it from siblings like list_my_vouchers, which focus on user-specific vouchers.

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 context that it is reference data and offers optional filters, but it does not explicitly state when to use this tool versus list_my_vouchers or other catalogues. No explicit exclusions or alternative selection criteria are provided.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description depicts a pure lookup: 'Identify' and 'Returns', with no suggestion of side effects. However, the annotations declare destructiveHint=true and idempotentHint=false, directly contradicting the implied read-only behavior of a lookup. This is an annotation contradiction, so the description actively conflicts with the structured signals the agent also receives.

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?

Two sentences, front-loaded with the core identification behavior and examples before the output and use-case details. It is compact and every clause earns its place, though the second sentence is a bit dense with multiple clauses.

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 lookup with no output schema, the description covers input format, output fields, conditional availability ('when ATF supports the airline'), and the downstream purpose. The only completeness gap is the misleading annotation set, but the description itself gives the agent enough 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?

Schema coverage is 100%: flight_code is already described with the same examples ('BA117', 'AA 1234', 'EK521'). The description adds the framing of a 'raw flight code without context' but does not provide new format, validation, or normalization rules beyond what the schema already states.

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 precise verb and object: 'Identify the airline behind a pasted flight code', with concrete examples like 'BA117' and 'AA 1234'. It also names the returned data (carrier, country, slug, loyalty program) and ties the output to a downstream add_flight_booking call, which clearly distinguishes it from 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 final sentence gives an explicit trigger: 'Use this any time a user pastes or types a raw flight code without context.' This is clear when-to-use guidance, though it does not name exclusions or alternatives such as using search_all_airlines when the user provides an airline name instead of a code.

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

lounge_add_to_wishlistB
Read-onlyDestructive
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

B3/5.0
Behavior1/5

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

The description explicitly claims idempotency ('adding a lounge already on your wishlist is a no-op'), but annotations set idempotentHint=false. Also, 'Add' is a state-changing action while readOnlyHint=true, and destructiveHint=true conflicts with the benign nature of adding to a wishlist. 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?

The description is two short sentences with no filler. The idempotency clarification is valuable and earns its place, and the main action is front-loaded.

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 one-parameter tool with no output schema, the description plus schema is nearly sufficient on its own. However, the annotations directly contradict the description on idempotency and mutability, leaving the agent with an unreliable context for deciding how to call and interpret the tool.

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

Parameters3/5

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

The single parameter lounge_slug is fully described in the schema as 'Lounge slug (from search results)', so schema coverage is 100%. The description adds no additional parameter meaning, 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 states the exact operation — adding a lounge to a wishlist — with a specific verb and resource. The sibling lounge_remove_from_wishlist makes the direction unambiguous, and the idempotency note reinforces the intended behavior.

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 about when to use this tool versus alternatives like lounge_get_my_wishlist or lounge_remove_from_wishlist. There are no prerequisites, exclusions, or mention of how to obtain the lounge_slug beyond what the schema already says.

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

lounge_delete_reviewB
Read-onlyDestructive
Inspect

Delete your review of a lounge. Identify it by lounge_slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
lounge_slugYesLounge slug of the review to delete

TDQS

B3.1/5.0
Behavior1/5

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

The annotations include readOnlyHint=true, yet the description says this tool deletes a review, which is a mutating and destructive operation. This directly contradicts the readOnlyHint annotation, creating a serious safety ambiguity for an agent considering whether state changes occur. The destructiveHint=true annotation actually aligns with the description, but the readOnlyHint conflict warrants a flag.

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 operation is front-loaded in the first sentence, and the required identifier is stated clearly in the second.

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 single-parameter delete tool, the invocation information is minimally sufficient. However, the readOnlyHint contradiction, lack of any statement about permanence or result, and absence of ownership/error context leave important behavioral gaps for an agent.

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 100% coverage with 'Lounge slug of the review to delete.' The description only restates that the slug identifies the review, adding minimal 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 specific verb and resource: 'Delete your review of a lounge.' It also names the required identifier, lounge_slug, and the word 'review' clearly distinguishes this from sibling tools like lounge_delete_visit and lounge_write_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?

There is no explicit guidance about when to use this tool versus lounge_update_review or lounge_write_review, and no mention of prerequisites or constraints beyond the slug. The action itself implies the use case, but an agent receives no routing help among the closely related review tools.

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

lounge_delete_visitB
Read-onlyDestructive
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

B3.2/5.0
Behavior1/5

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

The description states this tool deletes a visit, a mutating operation, while annotations set `readOnlyHint: true`. This is a direct contradiction with the description, so no behavioral transparency credit can be given. The `destructiveHint: true` annotation confirms destructiveness, but does not resolve the 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 short sentences with the core action front-loaded, followed by just enough parameter guidance. 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.

Completeness4/5

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

For a two-parameter delete operation, the description covers ownership, target identifier, and optional disambiguation, and no return value needs to be explained because there is no output schema. The unresolved readOnlyHint contradiction is a serious annotation problem, but the description itself is essentially complete for invoking the 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?

Input schema coverage is 100%, with both parameters already described. The description adds only a slight conditional framing for `visited_at` (use it when multiple visits exist), which does not materially go beyond the schema's own disambiguation note.

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 names the action ('Delete') and resource ('one of your logged lounge visits'), and specifies identification via lounge_slug plus visited_at for disambiguation. However, it does not distinguish itself from the near-identical sibling `delete_lounge_visit`, so full sibling differentiation is absent.

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 implies when to use the tool — when a user wants to remove a logged lounge visit — and explains the conditional need for visited_at. It gives no explicit when-not-to-use guidance or a pointer to the alternate `delete_lounge_visit` / update path, leaving some selection ambiguity.

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-onlyDestructive
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

A3.6/5.0
Behavior2/5

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

The annotations are internally contradictory: readOnlyHint=true but destructiveHint=true. The description only says 'Discovers' and 'Lists', which implies a read-only operation, and it does nothing to explain the destructive flag or any side effects of presenting install URLs. With conflicting safety signals, the description needed to clarify actual behavior and did not.

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 front-loads the action and scope, and the second provides concrete trigger phrases for when an agent should call the tool.

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 parameterless discovery tool, the description covers the main use cases well. However, with multiple sibling tools named discover_more_flight_tools and fs_discover_more_flight_tools, it does not explain how this lounge-named variant differs, leaving tool-selection ambiguity.

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 are no inputs for the description to explain. A baseline of 4 is appropriate for a parameterless tool.

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 names a specific action ('Discover other flight & travel MCP servers'), a concrete resource (remote MCP servers), and the content categories it covers (award flights, seatmaps, delays/waits). It is not a tautology, but it does not distinguish this tool from sibling discovery tools like discover_more_flight_tools or fs_discover_more_flight_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 final sentence gives explicit triggering conditions: 'points/miles, seat selection, airport delays/security waits, or "what other flight tools are there?"'. This is clear actionable guidance, though it does not explicitly say when not to use this tool or name a preferred alternative among the sibling discovery tools.

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-onlyDestructive
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.5/5.0
Behavior1/5

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

The description presents a read-only lookup ('Find all airport lounges...'), which is consistent with readOnlyHint=true but directly inconsistent with destructiveHint=true. Because the description fails to clarify why the annotations mark this as destructive, and contradicts that annotation, the behavioral transparency is severely compromised.

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 fluff. The core functionality is front-loaded, and the example is genuinely illustrative 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 simple one-parameter read-only lookup, the description is sufficient to select and invoke the tool. There is no output schema, so return values are not detailed, but the tool name and description make the expected result clear. The annotation contradiction lowers completeness slightly.

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 already documents access_method with an enum and examples. The description adds useful conceptual meaning by grouping access methods into credit cards, membership programs, airline clubs, alliance statuses, and ticket classes, which goes slightly beyond the schema's literal list.

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 tool's purpose: finding airport lounges accessible by a specific access method, such as a credit card or membership. It uses a specific verb ('Find all') and names the resource ('airport lounges'), but it does not explicitly differentiate from sibling tools like lounge_search_lounges or lounge_get_airport_lounges.

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 usage context: find lounges accessible with a given credit card, membership, or status, with an explicit example (Amex Platinum or Priority Pass). It does not mention alternatives or exclusions, but the example makes the intended use apparent.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description presents a read-only retrieval operation, saying 'Get all airport lounges' and 'Returns every lounge', but the annotations include destructiveHint=true. This is a direct annotation contradiction, and the description does nothing to resolve or explain the side-effect implication. readOnlyHint=true makes the metadata inconsistent but does not remove the 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?

A single, front-loaded sentence states the operation, scope, and return content without 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?

For a one-parameter lookup the description is nearly sufficient, covering the required input and the return fields. However, the conflicting destructiveHint and readOnlyHint annotations leave an important ambiguity about side effects that the description should address, so it is 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?

The schema already documents the only parameter (iata) with 100% coverage, including a pattern and examples. The description adds only 'by IATA code,' which is baseline value and does not compensate for anything 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 names a specific verb and resource: get all airport lounges at a specific airport by IATA code. It also enumerates the returned attributes, which helps an agent distinguish this from sibling tools like lounge_search_lounges and lounge_get_lounge_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?

It gives a clear use case: when the agent needs every lounge at one airport and only has the IATA code. It doesn't explicitly contrast with alternatives or say when not to use this tool, 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_get_lounge_detailsA
Read-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description strongly implies a read-only lookup ('Get detailed information'), and readOnlyHint=true supports that. However, destructiveHint=true directly contradicts the read-only semantics, creating an annotation contradiction that an agent cannot safely reconcile from the description.

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

Conciseness5/5

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

One concise sentence front-loads the action, resource, and identifier, then lists the return fields. 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 one-parameter read-only lookup with no output schema, the description enumerates the key return categories and the schema supplies the slug source. It omits edge-case behavior for unknown slugs, but an agent generally has enough to invoke the tool successfully.

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 slug parameter is already described in the schema ('Lounge slug (from search results or airport lounges)'). The description adds no parameter-level detail beyond the schema, so it meets the baseline but does not exceed 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 uses a specific verb ('Get'), names the resource ('detailed information about a specific airport lounge'), and identifies the unique key ('by its slug'). It also enumerates the returned content (description, amenities, access methods, opening hours, capacity, ratings, reviews count), which distinguishes it from list/search 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 slug description explains that slugs come 'from search results or airport lounges', giving the agent the prerequisite source for this tool. It does not explicitly name alternatives or state when not to use it, but the lookup-by-slug context is clear enough for selection.

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-onlyDestructive
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

A3.9/5.0
Behavior4/5

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

ReadOnlyHint and openWorldHint already signal a safe read operation, and the description adds a useful conditional: the shareable URL is only included when the profile is public. The internally conflicting destructiveHint=true is an annotation issue, not a description contradiction; the description itself clearly describes a read-only getter.

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

Conciseness5/5

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

One dense sentence front-loads the core purpose ('Get your lounge passport') and then lists exactly what the caller receives. Every element earns its place; no filler or repetition.

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

Completeness4/5

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

With zero params and no output schema, the description adequately covers what the tool returns: stats, stamps, visit history, reviews, and the conditional shareable URL. It does not describe the exact data structure, but for a zero-input getter with read-only annotations, this 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 takes zero parameters and the schema coverage is effectively 100%, so there is no parameter burden for the description to carry. The baseline of 4 for zero-parameter tools 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?

Description uses a specific verb and resource ('Get your lounge passport') and enumerates the contained data: stats, country stamps, full visit history, reviews, and shareable URL. It is clear but does not explicitly distinguish itself from sibling tools like lounge_get_my_visits or lounge_get_my_profile, so it stops short of 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 Guidelines3/5

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

No explicit when-to-use or alternative-routing guidance is given. However, the description's emphasis on 'passport' as an aggregate of stats, history, and reviews implies it is the consolidated overview tool, so usage context is inferable rather than stated.

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-onlyDestructive
Inspect

Get your Airport Lounge List profile — username, stats (reviews, visits, wishlisted lounges), and recent activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

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

The description describes a read operation ('Get'), but the annotations declare destructiveHint: true, which directly contradicts the read-only nature. This is a serious inconsistency that could mislead an agent about side effects. Additionally, idempotentHint: false for a get operation is unusual but not as directly 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?

A single, efficient sentence that front-loads the key information (profile retrieval) and enumerates the content. No wasted words.

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

Completeness4/5

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

For a parameterless get operation, the description provides the key return fields. However, it does not mention the response format or that it is read-only (though annotations cover that). More detail on the recent activity structure could be helpful, but it's sufficient for a simple profile fetch.

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

Parameters4/5

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

No parameters exist, so the description has no burden. The schema is empty and the description adds no parameter info, but that's acceptable since there are none. Baseline 4.

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

Purpose5/5

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

The description clearly states the tool retrieves the user's profile with specific data fields (username, stats, recent activity). It distinguishes from more specific siblings like lounge_get_my_reviews by offering an aggregate view. Strong verb+resource.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs the more specific lounge_*_get tools. It's implied that this is a top-level profile overview, but the description doesn't mention alternatives or exclusion criteria.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description accurately conveys a read-only 'Get' operation, but the annotations include destructiveHint=true, which directly contradicts the described behavior and readOnlyHint=true. This is a serious inconsistency that could mislead an agent into expecting 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 concise sentences front-load the core purpose and then enumerate the returned fields. There is no filler, and every sentence adds value.

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

Completeness4/5

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

For a simple read-only listing tool with one optional parameter and no output schema, the description covers the key return fields and the notable 'including pending ones' distinction. However, the destructiveHint contradiction undermines overall confidence in the tool's behavioral context.

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 schema with its default and max. The description adds nothing about parameters, but schema coverage is 100%, so the 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 uses a specific verb ('Get') and resource ('your lounge reviews'), and explicitly notes it includes pending reviews. This clearly distinguishes it from sibling review tools like lounge_write_review, 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 Guidelines4/5

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

The phrase 'your lounge reviews' gives clear context that this is for retrieving the current user's own reviews, not those of others. It doesn't explicitly name alternatives or exclusions, but the read-vs-write/delete distinction from siblings is evident.

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

lounge_get_my_visitsC
Read-onlyDestructive
Inspect

Get your visited lounges list with dates and notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax visits to return (default 20, max 50)

TDQS

C2.9/5.0
Behavior1/5

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

The description presents this as a simple 'Get' operation, but the annotations include `destructiveHint: true` while also including `readOnlyHint: true`. The description does not address or reconcile this contradiction, and a get-list operation being flagged as potentially destructive is highly misleading. This is an 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?

The description is a single concise sentence that front-loads the operation and resource, then adds one useful detail about the returned fields. There is no redundancy, filler, 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 tool with one optional parameter and no output schema, the description adequately conveys what the result contains: visited lounges with dates and notes. However, it does not clarify how it differs from the similarly named sibling `list_lounge_visits`, and the contradictory destructive annotation is left unresolved.

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 its default and maximum values. The description itself does not mention the parameter, but because schema description coverage is 100%, the schema carries the explanatory burden and 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 uses a clear verb and resource: 'Get your visited lounges list' and further specifies the returned content ('with dates and notes'). It is unambiguous as a read operation, but it does not differentiate itself from the closely named sibling tool `list_lounge_visits`, which appears to serve a similar purpose.

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 such as `list_lounge_visits`, `lounge_mark_lounge_visited`, or `lounge_get_my_passport`. There are no explicit conditions, exclusions, or alternative tool references.

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-onlyDestructive
Inspect

Get your lounge wishlist — lounges you want to visit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

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

The description says 'Get' which implies a read-only operation, but the annotations include destructiveHint: true, which contradicts that. While readOnlyHint is also true, the conflicting destructive hint creates ambiguity. The description does not address this or explain any potential side effects, and the annotations themselves are inconsistent. 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?

The description is a single, concise sentence with no wasted words. It states the action, the target, and a clarifying phrase. The dash-separated clarification adds value without bloat, making it highly efficient and 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 parameterless read tool, the description covers the essential information: what it returns (your wishlist) and the context (lounges you want to visit). There is no output schema, so return format is not a concern. However, the conflicting annotation about destructiveness means the overall tool definition is not fully coherent, though the description itself is sufficient for an agent to know how to invoke it (no input needed).

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 description does not need to explain any parameter semantics. With no input schema fields, the description is complete in this regard. The baseline of 4 for zero parameters is appropriate, and the description adds no unnecessary parameter info.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'your lounge wishlist', with the clarification 'lounges you want to visit'. This distinguishes it from sibling getters like lounge_get_my_visits (visited lounges) and lounge_get_my_reviews (reviews), so an agent can immediately tell 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 Guidelines3/5

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

The description gives the purpose but does not explicitly mention when to use it versus alternatives such as lounge_add_to_wishlist, lounge_remove_from_wishlist, or lounge_get_my_visits. The name and description imply usage, but there is no explicit when/when-not guidance, and no mention of alternatives or exclusions.

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

lounge_get_network_loungesB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description clearly presents a read-only retrieval operation, and readOnlyHint is true. However, annotations also include destructiveHint: true, which directly conflicts with the described behavior. This contradiction makes the tool's actual behavior ambiguous and could mislead an agent.

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. The core action and scope are front-loaded, and the example illustrates the intended use effectively.

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 tool with a fully described enum, the description gives enough to call it correctly and explains the return semantics. There is no output schema, so return fields are not specified, and pagination is not mentioned, but these are minor gaps for this simple retrieval 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 provides 100% coverage of the sole parameter, including an enum and description. The description adds only an example and the notion of 'network membership,' which is helpful but does not substantially go 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 uses a specific verb and resource: 'Get all lounges in a specific lounge network.' It clarifies scope by stating it returns every lounge accepting a network membership and gives a concrete example (Priority Pass worldwide). This naturally distinguishes it from siblings 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 Guidelines3/5

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

Usage is implied rather than explicit. The description tells what the tool does and the network membership concept, but it does not state when to prefer this over lounge_get_airport_lounges, lounge_find_lounges_by_access, or lounge_search_lounges, nor does it mention any exclusions.

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

lounge_list_access_methodsB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The description's 'List all...' frames the tool as read-only, but the annotations include destructiveHint: true, which directly contradicts that framing. The description also does not resolve the conflict between readOnlyHint: true and destructiveHint: true, leaving the agent with inconsistent behavioral 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?

The description is a single sentence that front-loads the action and resource before adding concrete examples. There is no filler, repetition, or unnecessary detail.

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 zero-parameter list tool, the invocation is clear, but there is no output schema and no description of the return shape or format. The conflicting destructiveHint annotation also leaves unresolved context about the tool's actual side effects, making the description minimally adequate but incomplete.

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

Parameters4/5

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

With zero parameters, the schema leaves nothing to document, so the baseline is 4. The description adds useful categorical context (credit cards, membership programs, etc.), though no parameter-specific semantics are 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 opens with the verb 'List' and a specific resource, 'all available lounge access methods,' which clearly distinguishes it from sibling tools like lounge_list_networks and lounge_find_lounges_by_access. The explicit examples further disambiguate the exact scope of the tool.

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 for when to use this tool instead of related sibling tools such as lounge_find_lounges_by_access or lounge_get_my_profile. The usage context must be inferred entirely from the tool name and the description's examples.

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

lounge_list_networksB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description says 'List all lounge networks,' a read-only operation, but the annotations include destructiveHint: true, which contradicts the stated behavior. This is an Annotation Contradiction. The annotation set is also internally inconsistent by pairing readOnlyHint: true 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?

A single, front-loaded sentence expresses the action, scope, and return contents with no filler. 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 no-input listing tool, the description is largely complete: it names the output fields (descriptions and total lounge counts) and the domain (five named lounge networks). The destructiveHint contradiction introduces avoidable ambiguity, but the description itself provides the essential invocation and response context.

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, which sets a baseline of 4. There are no parameter gaps for the description to fill, and the description appropriately focuses on what the call returns.

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 all lounge networks') and names the exact networks covered, with their descriptions and counts. This clearly distinguishes it from sibling tools like lounge_get_network_lounges that operate on lounges within a network rather than the network catalog itself.

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 offers no explicit when-to-use guidance and names no alternatives or exclusions. While 'List all' implies a broad catalog query, there is no contrast with lounge_get_network_lounges, lounge_find_lounges_by_access, or lounge_list_access_methods.

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

lounge_mark_lounge_visitedB
Read-onlyDestructive
Inspect

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.2/5.0
Behavior1/5

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

The description says the tool logs an entry and updates an existing visit, which is a write operation, and explicitly calls it 'Idempotent.' This contradicts the annotations readOnlyHint=true and idempotentHint=false, and the destructiveHint=true also conflicts with the described upsert behavior. The description directly contradicts the structured metadata, so this is an 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 front-load the action and carry no filler. The identification alternatives are stated compactly, idempotency behavior is explained in one clause, and every sentence contributes to correct invocation.

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 covers identification, optional parameters, and upsert semantics, but leaves gaps: it doesn't say what happens when neither slug nor lounge_name+airport_iata is provided, doesn't describe return/error behavior (no output schema exists), and doesn't disambiguate from the similarly named log_lounge_visit sibling. It is adequate but not 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 meaningful parameter relationships: slug is preferred, lounge_name must pair with airport_iata, and idempotency is keyed to same lounge + same date. This goes beyond the individual property descriptions.

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 ('Log a lounge visit (check in)') and names the resource (lounge visit), and it clarifies how to identify the lounge (slug OR lounge_name + airport_iata). It doesn't explicitly distinguish itself from the sibling tool log_lounge_visit, so it misses the top 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 description states the identification methods and the idempotent upsert behavior, which implies when to use it. However, it does not explicitly say when to prefer this tool over alternatives such as log_lounge_visit or lounge_update_visit, nor does it state any exclusions or prerequisites.

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

lounge_remove_from_wishlistB
Read-onlyDestructive
Inspect

Remove a lounge from your wishlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
lounge_slugYesLounge slug (from search results)

TDQS

B3.1/5.0
Behavior1/5

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

The description states 'Remove', a destructive mutation, but annotations declare readOnlyHint: true, which typically indicates a read-only operation. This directly contradicts the description and annotations conflict with each other (readOnlyHint true vs destructiveHint true). The agent cannot trust whether this modifies 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?

The description is a single, concise, front-loaded sentence with no filler. Every word is necessary and clear.

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 one-parameter tool without an output schema, the description is mostly sufficient. However, the contradictory annotations leave the agent uncertain about whether the operation is read-only or destructive, creating a meaningful gap in understanding the tool's behavior.

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 lounge_slug already documented as 'Lounge slug (from search results)'. The description adds no further parameter explanation, but since the schema fully covers it, 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 uses a specific verb ('Remove') and resource ('lounge from your wishlist'), clearly distinguishing this tool from sibling tools like lounge_add_to_wishlist and lounge_get_my_wishlist. The action and object are unambiguous.

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 explicit when-to-use or when-not-to-use guidance, and does not mention alternatives. It is a simple operation, but the instructions ask for guidance beyond the obvious; none is provided.

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

lounge_search_loungesB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The description describes a read-only search operation, but annotations include destructiveHint=true, which directly contradicts the stated behavior. This is a serious inconsistency and the description does not reconcile or disclose any 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 efficient sentences with no filler. The action and scope are front-loaded, followed by return value summary and usage guidance. 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?

For a single-parameter search tool with no output schema, the description covers scope, queryable fields, and return content reasonably well. However, the destructiveHint annotation contradicts the described behavior, leaving the tool's actual safety profile unclear and undermining 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 description coverage is 100%, and the schema already explains the query parameter. The description repeats the query fields but adds little beyond the schema; it does mention returned attributes (amenities, access methods, ratings), though that is output context rather than parameter semantics.

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 airport lounges worldwide') and resource, listing searchable fields (name, airport name, IATA code, city, country). It is clear, though it does not explicitly differentiate from sibling tools like lounge_find_lounges_by_access or lounge_get_airport_lounges.

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 clear context for when to use the tool: 'Use this to find specific lounges or discover lounges in a location.' It does not mention exclusions or alternatives, but the guidance is sufficient for a simple search tool.

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

lounge_update_reviewC
Read-onlyDestructive
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

C2.7/5.0
Behavior1/5

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

The description says 'Update your review' and 'change the rating and/or the text', which describes a mutating operation. However, the annotations declare readOnlyHint=true, directly contradicting the described behavior. This is a serious inconsistency that leaves the agent unsure whether state changes are actually made.

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 core operation is front-loaded, and the identification requirement is stated succinctly. Every word contributes useful information.

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 input schema provides complete parameter details for a small tool, but the description fails to cover essential context: whether an existing review must exist, what happens to the previous review text/rating, and especially why the readOnlyHint contradicts the update operation. The agent cannot form a safe, accurate mental model of the tool's effect.

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 lounge_slug, rating, and content. The description adds only the identification role of lounge_slug and the optionality of rating/text, which is minor; it does not materially improve on 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 uses a specific verb and resource: 'Update your review of a lounge' and states the modifiable fields ('rating and/or the text'). It is clear that this tool modifies an existing review rather than listing or deleting it, but it does not explicitly name the sibling tools that create or delete reviews, so differentiation relies on inference.

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 such as lounge_write_review or lounge_delete_review. It implies the review already exists but never states prerequisites, nor does it mention that lounge_write_review should be used for new reviews.

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

lounge_update_visitA
Read-onlyDestructive
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.7/5.0
Behavior1/5

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

The description clearly describes a mutating operation ('update', 'change'), yet annotations declare readOnlyHint: true. This is a direct contradiction. The description also adds no detail about whether changes are reversible, what gets overwritten, or what the response contains, but the annotation contradiction alone forces the lowest score.

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 with no fluff. The core action is front-loaded, followed by the identification rule and the multi-visit edge case. 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?

For a simple update tool, the description covers target identification and editable fields. There is no output schema, so the return value is not explained, but that is a minor gap. The main completeness issue is the contradictory readOnlyHint annotation, which makes the behavioral context unreliable.

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 useful disambiguation semantics for visited_at ('needed only to disambiguate multiple visits') and clarifies lounge_slug as the identifier, going slightly beyond the 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 states a specific action (update one of your logged lounge visits) and the specific mutable fields (rating, notes, date). This clearly distinguishes it from siblings like delete_lounge_visit, log_lounge_visit, and lounge_update_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 selection logic: identify by lounge_slug, and pass visited_at when multiple visits exist. It does not explicitly say when to prefer this over related tools like log_lounge_visit or delete_lounge_visit, but the update semantics and disambiguation rule are strong contextual guidance.

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

lounge_write_reviewB
Read-onlyDestructive
Inspect

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/5.0
Behavior1/5

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

Description contradicts annotations: 'Write a review' is a write/mutation, while annotations declare readOnlyHint=true. Also destructiveHint=true is inaccurate for submitting a review. No additional behavioral context is provided, leaving the agent with conflicting signals 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?

A single, tightly worded sentence that front-loads the action and then lists the three necessary inputs. There is no filler or redundancy, though it sacrifices some behavioral nuance that would require extra sentences.

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 description is insufficient given the contradictory annotations and lack of output schema. It does not clarify that this creates a new review, what happens on success, or how it interacts with existing reviews (e.g., duplicate handling). The agent cannot fully predict the tool's behavior from the provided context.

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

Parameters3/5

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

Schema coverage is 100%, with all three parameters already documented in the input schema. The description merely repeats the same constraints (rating 1-5, content min 10 chars) and adds no further semantic detail such as format, origin, or relationships.

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 ('Write') and resource ('a review for a lounge'), making the operation unambiguous. It includes the key inputs, and the tool name plus sibling names (lounge_update_review, lounge_delete_review) make the distinction clear even without explicit naming in the description.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention lounge_update_review or lounge_delete_review, nor any conditions such as 'only for new reviews' or 'requires the lounge to be in the user's visited list.' The requirements listed are about parameters, not usage context.

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 every 12 hours 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

A3.8/5.0
Behavior4/5

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

The description discloses key behaviors: it checks every 12 hours, sends email alerts, and references a 'points rate' decrease. It also reveals it's a paid feature, which is not captured in annotations. However, it doesn't mention what the tool returns after setup or how the monitoring can be stopped, leaving some behavioral aspects implicit.

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 extremely concise—only two sentences—yet it conveys the core action, interval, and alert mechanism. There is no redundant information or unnecessary elaboration, making it highly 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?

Given the tool has no output schema and relies on vague parameters, the description lacks details on return values, success/failure indicators, or how to manage the monitoring after creation. It also doesn't clarify whether the monitoring requires an existing booking or if confirmation_number is optional despite being in the schema. This incompleteness hinders full understanding.

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 description does not elaborate on any of the 8 parameters. The schema provides descriptions for only 2 of them (hotel_code and original_points), leaving room_type, rate_plan, dates, and confirmation_number vague. Since the tool description itself adds no parameter clarity, users must infer meanings from names and context, which is insufficient.

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 ('Start monitoring'), the resource (hotel booking), and the goal (price drops). It also specifies the trigger (points rate decreases) and the notification method (email alerts), making the purpose unambiguous. This distinguishes it from other hotel-related tools that focus on booking or searching.

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

Usage Guidelines3/5

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

The description indicates when to use (when you want to monitor price drops) and notes it's a paid feature, but it does not explicitly contrast with alternatives such as search_hotels or get_hotel_booking. The absence of explicit selection criteria leaves some ambiguity about when this tool is preferred over manual checking.

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

plan_tripB
Read-onlyDestructive
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

B3/5.0
Behavior1/5

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

The description presents a read-only planning workflow—'searches,' 'ranks,' 'surfaces'—but annotations include destructiveHint: true, implying destructive side effects. This direct mismatch is a contradiction; the description should clarify whether the tool modifies state, books award flights, or consumes points.

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?

Two sentences with the core action front-loaded. The 'Premium tier' note is slightly extraneous, but the primary behavior and differentiators are conveyed without padding.

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 complex orchestration tool with no output schema, yet the description does not explain what result shape to expect, how balances are supplied, what 'Premium tier' means for invocation, or how required parameters like origin and destination factor in. The description is too thin for reliable one-shot use.

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 17%, so the description must compensate for undocumented parameters, but it does not describe origin, destination, date, cabin, passengers, or flexibility_days. It only adds context about balances and transfer bonuses, which are not parameters, leaving the agent without needed guidance for most 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 opens with a specific verb and resource: 'Plan an end-to-end award trip in one call.' It then names concrete behaviors—'searches all airlines, ranks options against balances + transfer bonuses, surfaces the best route'—which clearly differentiates it from siblings like search_all_airlines or recommend_redemption.

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 a usage context: the agent should call this when the user wants a complete award trip plan, not just a flight search. However, it gives no explicit when-to-use, when-not-to-use, or alternative routing to sibling tools such as search_all_airlines or search_availability.

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

recommend_redemptionC
Read-onlyDestructive
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

C2.7/5.0
Behavior1/5

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

The description describes a non-destructive recommendation action, but annotations include destructiveHint=true, which directly contradicts the tool's apparent behavior. Additionally, readOnlyHint=true conflicts with destructiveHint=true, creating ambiguous safety semantics. The description does not clarify side effects or what gets modified, if anything.

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 verb and scope. The second sentence adds useful algorithmic context, and 'Premium tier' is short. Every sentence contributes, though the premium-tier note is slightly underspecified.

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?

With no output schema, the description should explain what the recommendation contains and whether it is purely advisory. It does not describe return format, booking behavior, eligibility constraints, or how the recommendation is presented. The contradictory annotations further weaken the context.

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 compensate by explaining how origin, destination, date, cabin, and passengers relate to the recommendation. It only refers abstractly to 'specific trip' and 'points balances' without mapping to the defined parameters. The parameter names are self-explanatory, but the description adds minimal parameter-level value.

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 ('Recommend') and the resource ('optimal points strategy for a specific trip') and lists the inputs it combines (award availability, transfer bonuses, portfolio). It does not explicitly differentiate from sibling tools like recommend_status_path or compare_transfer_options, so it stops short of 5.

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 planning a specific trip with known points balances) but provides no explicit when-not-to-use guidance, exclusions, or named alternatives. The agent must infer the selection among many recommendation-style sibling tools.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description presents a read-only recommendation operation, but the annotations include destructiveHint=true and idempotentHint=false, directly contradicting that. The description adds useful data-source context, but the annotation contradiction dominates and would confuse an agent 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.

Conciseness4/5

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

Front-loads the core purpose, then gives data sources, a concrete example question, and parameter guidance. Slightly wordy with the em-dash list, but every sentence contributes to selecting and invoking the tool.

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 two-parameter tool with no output schema, it explains inputs, defaults, data sources, and gives an example. It does not describe the response shape, but the stated purpose ('answers ...') makes the expected outcome reasonably clear.

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?

Input schema coverage is 100%, so the schema already documents both parameters. The description reinforces with program slug examples and default-tier behavior, adding helpful semantic color without fundamentally changing the schema's 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?

Clearly names the operation ('Recommend') and the resource ('the cheapest path to an elite tier'), enumerating EARN/RUN/MATCH strategies. This distinguishes it from sibling status/earnings tools by focusing on the cheapest route recommendation.

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 concrete usage context: it answers 'what's the easiest way to get Qatar Gold?', requires a target program slug, and supports an optional target tier. It does not explicitly name sibling alternatives or when not to use them, so exclusion guidance is missing.

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

render_uiA
Read-onlyDestructive
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

A5/5.0
Behavior5/5

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

The description richly discloses behavior beyond annotations: card composition from block kinds, repeatability and optionality of blocks, max block count of 10, plain-text-only constraints, no markdown/HTML, keeping the written reply short, and avoiding duplication after card-returning tools. It gives the agent a clear mental model of what rendering entails without contradicting 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?

The description is front-loaded with the core purpose, then organizes block types and usage rules into scannable sections. Despite its length, nearly every sentence contributes necessary operational detail for a tool with this much formatting flexibility.

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 UI-rendering tool with nested block structures and no output schema, the description is complete: it covers when to use it, what the card can contain, how individual blocks behave, formatting constraints, and explicit exclusions. An agent has enough guidance to invoke it correctly and compose appropriate cards.

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?

Although the schema already describes parameters at 100% coverage, the description adds substantial semantic value by detailing each block kind, showing concrete examples for table columns/rows and bars, and specifying field meanings like tone, unit, and items. This goes far beyond the schema's generic object 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 states a specific action (render a visual card) and resource (chat), and clearly distinguishes it from writing markdown tables or long numeric lists. It enumerates concrete use cases like comparisons, cost breakdowns, transfer paths, plans, and rankings, making the tool's role unmistakable.

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 gives explicit when-to-use guidance with concrete trigger conditions (e.g., any answer with more than ~3 numbers) and equally explicit when-not-to-use guidance (do not call after search/hotel/transfer tools that already returned a card). This effectively routes an agent to the right choice without ambiguity.

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-onlyDestructive
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/5.0
Behavior1/5

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

The description consistently portrays a read-only search operation, which aligns with readOnlyHint=true but directly conflicts with destructiveHint=true. An agent receiving destructiveHint=true may incorrectly assume the tool can change or destroy state, even though the description describes only searching. This internal contradiction undermines behavioral transparency despite the rich added context about quotas, sign-in, and coverage. Per rubric, a direct contradiction with an annotation yields score 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 front-loaded with the primary purpose and parallel behavior. Every subsequent sentence earns its place: live-list measurement, coverage reporting, single-airline alternative, recommended usage, sign-in requirement, and free/premium limits. There is no redundant filler, and the logical order flows from what the tool does to when and how to use it.

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 there is no output schema, the description reasonably explains the return shape by mentioning response grouped by airline and a coverage field, and it covers auth requirements, rate limits, and alternative routing. The only notable gap is that it doesn't specify the detailed structure of the returned award availability entries beyond grouping, but the provided context is probably sufficient for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, with each of the ive parameters already documented in the input schema. The description adds meaningful operational caveats beyond the schema: free accounts are restricted to economy, cabin default behavior is clarified, flex_days only affects seats.aero results, and the response includes a coverage field. These nuances make the definition more actionable, though the description doesn't systematically enumerate each 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 opens with a clear, specific statement: 'Search award flight availability across every airline currently LIVE for a route and date, in parallel.' It identifies the resource (award flight availability), scope (every airline currently live), and mode (parallel). It also differentiates the tool from alternatives by emphasizing that any catalogued airline can be requested individually via 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 Guidelines5/5

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

The description is explicit: 'This is the recommended starting point — use single-airline search only if you need a specific airline.' It also names search_availability as the alternative and points to list_supported_airlines for understanding the live list. It clearly explains when the broader fan-out search is appropriate and when it is not.

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

search_availabilityA
Read-onlyDestructive
Inspect

Search live award availability for a specific airline, route, and date. 28 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_codeYes
departure_codeYes

TDQS

A3.8/5.0
Behavior1/5

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

The description correctly explains error semantics ('when a source is down, blocked, or needs a member login the result says so explicitly instead of reporting zero seats'), authentication, and quota behavior. However, it directly contradicts the annotation destructiveHint: true by presenting the tool as a read-only search, with no destructive behavior disclosed. This is an 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?

Three sentences: purpose, source-status caveat, and access/quota constraints. Every sentence adds a necessary behavioral fact, and the most distinguishing scope 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 complex tool with no output schema, the description covers prerequisites, quota limits, cabin behavior, and the critical 'unsearchable vs zero-seat' distinction. It stops short of describing the response shape or how availability results are ranked, which would make it fully self-contained.

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 only 20%, so the description carries most of the parameter-meaning load. It clarifies that airline is the key param requiring live-source verification, that route means departure/arrival airports, and that cabin selection is constrained by account tier. It could add date/airport-code format guidance, but those are already encoded as schema patterns.

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 first sentence states a specific verb and resource: 'Search live award availability for a specific airline, route, and date.' This clearly distinguishes it from broader search siblings like search_all_airlines and search_monthly_availability, and the airline scope is reinforced by the 28-airline enum.

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 use: it names list_supported_airlines as the source of truth for live carriers, and specifies sign-in, daily quota, and cabin restrictions. It does not explicitly list exclusions or name alternative search tools such as search_all_airlines or search_monthly_availability, 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.

search_cash_flightsA
Read-onlyDestructive
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

A3.5/5.0
Behavior3/5

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

The description adds useful behavioral context beyond the annotations: the backend providers (Duffel GDS, Ignav REST) and the hosted-keys/no-setup detail. However, it does not disclose rate limits, caching, or failure behavior. The annotation set is internally inconsistent (readOnlyHint true alongside destructiveHint true), though the description itself does not directly contradict either 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?

The description is four short sentences with no filler. The core claim is front-loaded, and each sentence contributes a distinct fact: data source, use case, returned fields, and authentication setup.

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 7 parameters, the description gives a high-level but incomplete picture. It lists the returned fields (price, airline, flight number, cabin) but does not mention result count, currency, per-passenger semantics, or behavior when no flights exist. It is adequate as a starting point 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 only 29%, and the description does not compensate for this gap. It does not explain origin/destination/date formats, cabin, passengers, or how source selection works beyond naming the providers. The schema documents source and airline, but the remaining parameters are left unexplained, and the description adds no parameter-level meaning.

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 tool as providing real cash flight prices via Duffel and Ignav and states its intended use: comparing cash vs award redemptions or surfacing the cheapest cash option. This distinguishes it from award-oriented siblings like search_availability and get_partner_award_options. The action verb is largely carried by the tool name, but the resource and use case are 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 explicitly says when to use the tool: when cash pricing is needed for comparison against award redemptions or when the cheapest cash option for a route is desired. It does not name sibling alternatives or exclusions, but this use-case framing is clear enough to guide selection among the large sibling list.

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

search_hotelsA
Read-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description describes a read-only search operation, but the annotations declare destructiveHint=true and idempotentHint=false, implying state-changing or destructive behavior. No such behavior is disclosed, and the description directly contradicts the destructive hint.

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 compact sentences with no filler. The primary action and search dimensions are front-loaded, followed by the return value, supported brands, and the paid-feature caveat.

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 search tool with no output schema, the description provides the essential return-value context (hotel codes) and input dimensions. It lacks detail on output shape and the 'limit' parameter, but is largely adequate for 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 only documents the 'query' parameter (33% coverage). The description adds meaning by stating search can be by name, city, or brand and lists the supported brands, but it does not clarify the 'limit' parameter beyond its schema min/max. Partial compensation for 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?

The description clearly states the action ('Search for hotels') and the resource, with explicit search dimensions (name, city, brand). It also differentiates the tool by noting it returns hotel codes needed for downstream availability and price monitoring, and names the supported hotel chains.

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: this tool should be used to obtain hotel codes before availability checks and price monitoring. It does not explicitly name alternative sibling tools 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.

search_hybridB
Read-onlyDestructive
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

B3.3/5.0
Behavior1/5

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

The description presents a read-only search operation ('Searches cash fares', 'combines the best cash leg...'), yet the annotations set both readOnlyHint=true and destructiveHint=true. This is a direct contradiction with the described search-only semantics, and the description does nothing to clarify potential side effects, charges, or 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.

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 core purpose, followed by supporting detail, target use case, and the paid-feature warning. Every sentence earns its place, though the second sentence slightly restates the first.

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 complex hybrid search with no output schema and conflicting destructive/read-only annotations. The description explains the algorithm well, but it does not clarify return format, invocation side effects, or how the paid feature is charged, leaving significant ambiguity for an agent deciding whether to call 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 40%; only cabin and points_value_cents have descriptions. The description adds useful algorithmic context for how these parameters matter ('cash leg with the best award leg', 'premium cabins'), but it does not explain non-schema-covered parameters beyond what their names and patterns imply. It partially compensates for the low coverage but leaves some meaning implicit.

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: 'Find the cheapest way to fly by combining cash tickets with award redemptions into one split-ticket journey.' It also specifies data sources (Google Flights, award availability) and the target use case (premium cabins, long-haul), which clearly separates it from siblings like search_cash_flights 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 description gives clear context for when to use it: 'Best for premium cabins (business/first) on long-haul routes' and warns that it is a 'Paid feature.' It does not explicitly state when not to use it or name alternative tools, so it stops short of full when/when-not guidance.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description semantically describes a read-only search operation ('Search', 'Returns ranked article excerpts'), but the annotations include destructiveHint=true, which implies destructive side effects. This directly contradicts the description's read-only semantics, making it an annotation contradiction. Per rubric, the score is 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 two dense, front-loaded sentences covering action, resource, usage triggers, and return information. No wasted words; 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 straightforward search tool with no output schema, the description adequately explains the return shape ('ranked article excerpts with URLs to cite') and the two searched publications. The only notable issue is the conflicting destructiveHint annotation, which is handled separately; the description itself is otherwise 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%—all three parameters (query, limit, source) have descriptions in the JSON schema, so the baseline is 3. The description adds an example query format but does not add further semantics for limit or source beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb ('Search') and names the exact resource ('Miles & Points Daily + Smart With Points editorial archive') along with its purpose ('explainers and strategy'). It clearly distinguishes this from the many flight/hotel search siblings by identifying the 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 user-intent triggers with quoted examples ('how does X work', 'should I transfer to Y') and a strong catch-all ('anything that benefits from authoritative context'). It does not name alternatives or exclusions, but the conditions for use are clearly stated.

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-onlyDestructive
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.6/5.0
Behavior1/5

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

The description clearly presents a read-only search operation that 'Returns verified entries,' but the annotations include both readOnlyHint=true and destructiveHint=true. The destructiveHint contradicts the described behavior and the readOnlyHint, making the operational safety profile unreliable. This is an 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?

The description is concise and front-loaded with purpose, followed by proof verification, filter capabilities, return contents, and cost. Every sentence contributes useful information, and 'Free.' is an efficient way to convey pricing.

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 purpose, filtering behavior, proof requirement, returned fields, and cost, which is strong for a read-only search tool with no output schema. The only notable gap is the contradictory destructiveHint annotation that leaves the tool's safety context muddled.

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 each parameter already has a meaningful description. The tool description adds 'minus multiplier' phrasing and examples but does not materially enhance understanding 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 and resource: 'Search a community-verified database of merchant bonus-category multipliers.' It also includes concrete example queries and names the returned fields (earn rate, card, category, proof link), which clearly distinguishes it from generic search and card 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?

Example questions like 'which merchants earn 4x?' and 'does Whole Foods earn a bonus on Amex Gold?' provide clear context for when to use the tool. However, it does not explicitly name alternatives or state when not to use it, though the intended use case is evident.

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

search_monthly_availabilityB
Read-onlyDestructive
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

B3.1/5.0
Behavior1/5

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

The description clearly presents a read-only operation ('Search', 'Returns', 'Renders'), while annotations include destructiveHint=true. This is a direct contradiction between the described behavior and the structured hint, which is a serious inconsistency that could mislead an agent into expecting 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?

Three short sentences deliver the core purpose, output format, rendering behavior, and a key commercial note ('Paid feature') without redundancy. Information 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.

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 four parameters, yet the description only partially covers return values (day-by-day availability, points costs) and rendering. It omits important context such as what 'Paid feature' means operationally (e.g., whether a charge is incurred on call, whether user confirmation is needed), and it provides no guidance on error conditions or rate limits. The destructiveHint contradiction further undermines completeness.

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%, with only the 'date' parameter having a description. The tool description adds minimal parameter-related meaning: it mentions month-based search and points costs but does not explain the airline, departure_code, or arrival_code parameters, nor the accepted date pattern beyond what the schema already shows. It fails to compensate 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 uses a specific verb 'Search' with a clear resource ('award flight availability') and scope ('entire month'), and further specifies the output as 'day-by-day availability with points costs'. This distinguishes it from sibling tools like search_availability and search_all_airlines by emphasizing the monthly window and daily breakdown.

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 'for an entire month' implies the tool is intended for monthly searches, but no explicit alternatives are mentioned and no conditions for when not to use it are provided. Sibling tools are listed but not referenced directly in the description, leaving usage selection mostly to inference.

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

search_multi_passengerB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description describes a read-only search ('Find', 'filters out', 'returns'), but the annotations include destructiveHint=true, which directly contradicts the described behavior. Per the rule, a description that contradicts annotations receives a 1, regardless of the also-present readOnlyHint.

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 short sentences with the core action front-loaded. 'Premium tier' is vague and barely earns its place, and the filtering idea is stated twice, but the description is otherwise tight and readable.

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 low-complexity search tool, the description covers the key behavior: group award search, phantom filtering, and the carrier-count return rule. However, there is no output schema and no description of the result payload shape or date/cabin handling, and the contradictory destructiveHint undermines confidence in the overall contract.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that passengers is the group-size threshold and that results are filtered by that count, but it does not explain the cabin parameter or any value formats; the schema patterns and enum carry that weight. This is adequate but leaves a clear gap for cabin semantics.

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

Purpose5/5

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

The description opens with a specific verb and resource, 'Find award seats for a group', and adds concrete behavior about phantom single-seat filtering and returning carriers with enough seats. This distinguishes it from sibling search tools like search_availability or search_cash_flights without needing to open the schema.

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?

'For a group' and the passenger-count filtering signal when this tool should be used, and the minimum passenger value of 2 in the schema reinforces that it is not for single-seat searches. It does not explicitly name a sibling alternative or state an exclusion, so it falls just short of full explicitness.

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-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

The description portrays a read-only search operation ('Search', 'return ranked excerpts'), but the annotations declare destructiveHint=true. This is a direct contradiction. The description provides no disclosure of any destructive behavior, so an agent cannot trust the tool's safety profile based on the description.

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 action, the usage triggers, and the return format. The most important differentiator ('OWN uploaded documents') is front-loaded, and there is 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?

For a simple two-parameter search tool, the description covers scope, examples, and return value sufficiently. However, the contradiction with destructiveHint=true creates a serious completeness gap: an agent cannot reconcile the stated read-only behavior with the annotation warning of destructiveness.

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 query and limit. The description adds context by noting the query is a natural-language question and that results include similarity scores, but it doesn't add meaningful param-level semantics 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 uses a specific verb ('Search'), a precise resource ('the user's OWN uploaded documents'), and concrete document types (award charts, hotel folios, itineraries, statements). It also explicitly distinguishes this tool from the public editorial archive, making it easy to tell apart from siblings like 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 Guidelines5/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 states the decision criterion: use when answering from the user's own files rather than the public editorial archive. This gives clear when-to-use guidance and implicitly names the alternative context.

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-onlyDestructive
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

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 the description aligns with that by describing a read-only lookup. It adds useful output details (fleet summary, free status) but doesn't address edge cases like unknown airline codes or data freshness. The internal annotation conflict between readOnlyHint=true and destructiveHint=true is not contradicted by the description 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 sentences with no fluff: the first states what the tool returns, the second gives the usage condition. Both sentences are necessary and the core purpose 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 single-parameter read-only tool, the description covers the main selection criterion and the key output content. It could be more explicit about return structure, but the scope distinction from flight-level tools is clear and sufficient 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 input schema fully documents airline_code with format examples, so schema coverage is 100%. The description does not add parameter-level details beyond what the schema 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.

Purpose5/5

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

Description clearly states a specific verb and resource: returning the WiFi providers an airline uses fleet-wide, plus a summary and free status. The phrase 'fleet-wide' plus 'rather than one flight' distinguishes this from flight-level tools like 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 Guidelines5/5

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

The description explicitly says 'Use when the question is about the airline rather than one flight,' which gives a direct selection condition and implicitly rules out flight-specific alternatives. This is sufficient guidance for an agent choosing among the many sibling tools.

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-onlyDestructive
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

A3.7/5.0
Behavior1/5

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

The description calls this a 'lookup,' implying a non-destructive read, but the annotations include destructiveHint: true. The description does not clarify or disclose this contradiction, and it adds no additional behavioral context such as side effects, rate limits, or availability. Because the description conflicts with the annotation set, this dimension scores 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 two sentences with no filler. The first sentence front-loads the purpose and output fields, and the second sentence concisely routes to the alternative tool.

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 one-parameter lookup, the description covers scope and the main returned fields, and it routes to a richer sibling. However, the unresolved destructiveHint: true annotation undermines the agent's ability to fully trust that this is a safe read-only call, and there is no output schema or explicit read-only statement to compensate.

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 fully documents the single required parameter, flight_number, with an IATA format example. The description's mention of 'flight number' adds no meaning beyond that, so the baseline of 3 applies given 100% schema description coverage.

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

Purpose5/5

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

The description states a specific verb ('lookup'), a specific resource ('flight number' WiFi), and lists the returned fields: provider, confidence, airline, aircraft, and Starlink status. It also distinguishes itself from the sibling get_wifi_facts by noting what that alternative provides.

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 to use get_wifi_facts when the date, tail number, or reasoning is needed. This gives the agent a clear routing condition and identifies the relevant alternative, satisfying the when-to-use versus when-not-to-use requirement.

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

sw_get_rolloutsB
Read-onlyDestructive
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

B3.2/5.0
Behavior2/5

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

Annotations already provide safety signals, but they are internally inconsistent: readOnlyHint=true while destructiveHint=true. The description adds no behavioral context to resolve this, and does not disclose open-world behavior or potential side effects. The agent cannot tell from the description whether this operation is purely read-only.

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: one sentence describing the payload and one sentence about the parameter. There is no filler, though the phrase 'Omit airline_code for every tracked airline' is slightly awkward and could be clearer.

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

Completeness4/5

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

With no output schema, the description helpfully enumerates statuses and key output fields. It covers the one optional parameter and its omission behavior. Minor format details such as expected completion date format are absent, but overall it is sufficient for a simple one-parameter getter.

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 parameter is already documented. The description adds meaning by stating that omitting airline_code returns every tracked airline, which clarifies the optional parameter's behavior beyond the schema's simple 'filter' label.

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: Starlink and satellite WiFi rollout progress per aircraft type, and lists the output fields (status, fleet percentage, expected completion). It distinguishes this from sibling tools by its focus on rollouts, though it lacks an explicit verb like 'retrieves' or 'lists'.

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 guidance is 'Omit airline_code for every tracked airline,' which addresses parameter behavior rather than when to choose this tool over alternatives. There is no mention of sibling tools like sw_get_flight_wifi, sw_search_wifi, or sw_get_speed_stats, or when this rollout-specific tool should be preferred.

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-onlyDestructive
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

A3.5/5.0
Behavior1/5

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

The description implies a read-only reporting operation, but the annotations include destructiveHint: true, which directly conflicts with that implication. The description adds no further behavioral context such as data source freshness, rate limits, or side effects. This is an 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, no fluff, and both sentences earn their place. The first states the resource and data fields; the second gives usage guidance and parameter constraints. Information is front-loaded and immediately 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?

With no output schema, the description compensates by enumerating the returned metrics (download/upload Mbps, latency, per-provider breakdown). It also covers the one-of parameter rule. It is slightly incomplete about what happens if both parameters are omitted or if no results exist, but overall it is adequate for a simple stats lookup.

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 already fully describes both parameters (IATA airline code and IATA flight number), so the baseline is 3. The description adds the valuable constraint that exactly one should be passed and not both, which is meaningful semantics not present in 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: crowd-sourced in-flight WiFi speed reports with download/upload Mbps, latency, and per-provider breakdown. The verb 'get' appears in the tool name and the description makes the purpose evident, but it does not explicitly distinguish itself from nearby sibling tools like sw_get_flight_wifi or sw_get_airline_wifi.

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

Usage Guidelines4/5

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

Explicitly states a use case ('is the WiFi fast enough' questions) and provides concrete parameter guidance ('Pass a flight_number or an airline_code, not both'). It stops short of naming alternatives or conditions for when not to use this tool, so it doesn't fully earn a 5.

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-onlyDestructive
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

A4.2/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the annotations by disclosing that results include crowd-sourced reports and fleet assignment, suggesting a historical/aggregated view. There is no contradiction with the readOnlyHint or openWorldHint, though the destructiveHint is surprising for a lookup-style tool; the description itself is consistent with a read-only history query.

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 carry the full purpose and usage guidance with no filler. The core capability is front-loaded, and the usage condition is stated immediately after, making it 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 simple one-parameter read-only tool, the description is nearly complete: it states the subject, scope, output content categories, and when to use it. It does not describe the exact response shape or format, but the absence of an output schema is partially mitigated by the explicit mention of the report and fleet-assignment content.

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, including an example format. The description only restates that the lookup is by tail number, adding no deeper semantic detail beyond what the schema supplies, 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.

Purpose5/5

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

The description clearly states the tool returns WiFi provider history for one aircraft by tail number and names the included content: crowd-sourced reports and fleet assignment. It is readily distinguishable from siblings like sw_get_airline_wifi and sw_search_wifi because it is scoped to a single known airframe.

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 usage condition: use when the exact airframe is known. This implies it is not for broad or fuzzy searches, but it does not explicitly name alternatives or state when not to use it beyond that condition.

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-onlyDestructive
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

A3.6/5.0
Behavior1/5

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

The description frames the tool as a predictive, read-only lookup, but the annotations include destructiveHint=true. This directly contradicts the description's implied behavior, even though readOnlyHint=true also appears. The contradictory annotation set leaves the agent with an untrustworthy 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 dense sentences: the first states the use case and output contents, the second gives routing guidance. There is no filler or repetition.

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 does a good job enumerating the return values: WiFi provider, probability, tail number, aircraft type, and fleet fallback. The 'airline fleet fallback' is somewhat vague, but overall the agent has enough to understand what the tool returns.

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 parameters flight_number and date are already fully documented. The description adds no new parameter semantics beyond restating 'flight number on a given date', 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 states a specific verb and resource: predicts the WiFi provider for a given flight number and date. It clearly distinguishes itself from get_flight_wifi by saying 'Prefer this over get_flight_wifi' and enumerates the exact outputs the agent can expect.

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 routes the agent to this tool over get_flight_wifi and anchors the use case with 'will this flight have WiFi'. It does not enumerate exclusions or when to choose other sibling tools like sw_get_airline_wifi, but the primary alternative is addressed.

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-onlyDestructive
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.7/5.0
Behavior4/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses that the response is large, which is a meaningful operational warning. It could add a bit more about response structure or limits, but for a simple list operation this is sufficient.

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

Conciseness5/5

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

Two sentences with no filler. The core statement is front-loaded, followed immediately by the large-response warning and routing to alternatives. Every sentence contributes 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 no parameters and a simple list purpose, the description fully enables correct selection and invocation. It covers what is returned, warns about response size, and names alternatives, so no critical context 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 has zero parameters, so the empty schema fully covers its inputs. The baseline for no parameters is 4, and there is nothing additional the description needs to explain about parameters.

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

Purpose5/5

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

The description clearly states the specific verb+resource: it lists every airline SeatWiFi tracks, along with its WiFi providers. It also distinguishes itself from targeted lookup siblings by emphasizing that it returns the full set of airlines rather than one airline's data.

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 to use search_wifi or get_airline_wifi when a specific airline is known, giving a clear when-not-to-use condition. The 'large response' warning further signals that this tool should be avoided unless the full list is needed.

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-onlyDestructive
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.7/5.0
Behavior1/5

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

The description frames this as a read-only search operation, yet annotations mark destructiveHint=true, with no explanation of any destructive side effect. This directly contradicts the stated behavior and leaves the agent uncertain about the tool's 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?

Two sentences, both purposeful and front-loaded: the first defines the tool and its trigger condition, the second routes users away when a more specific identifier is available. There is no filler or repetition of schema content.

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 basic invocation of a one-parameter search tool, but it never names the alternatives, explains return behavior, or reconciles the destructiveHint annotation with the read-only search framing. This leaves a material safety-related 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 schema already documents the single query parameter with examples, and the description adds clarifying context that the query can be a free-text name or partial term. This modestly exceeds what the schema alone 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 uses a specific verb ('free-text search') and identifies the resource ('airlines and flights') with a clear condition ('only have a name or partial term'). This distinguishes it from more targeted sibling tools like sw_get_flight_wifi and lookup_flight 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?

It explicitly states when to use the tool ('only have a name or partial term') and when not to ('already have a flight number, airline code, or tail number'). However, it refers to 'a specific tool' without naming the exact alternatives, making the routing less actionable than it could be.

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_detailsA
Read-onlyDestructive
Inspect

Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, duration, key features, and the click-out URL.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 shown, the model must resolve ambiguity by asking which one the user means. This tool is intended for deepening experience understanding rather than search, and should only be invoked with a code previously returned by search_experiences.

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

A3.6/5.0
Behavior1/5

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

The description clearly presents a read-only retrieval operation ("Retrieves", "deepening experience understanding"), yet the annotations include destructiveHint=true. This directly contradicts the semantic nature of the tool as described, making it impossible for an agent to trust whether calling this tool has destructive side effects. Flagged as 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.

Conciseness4/5

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

The description is dense but purposeful: the first sentence delivers the core purpose, and subsequent sentences add actionable usage constraints. It is slightly run-on but has no filler or repetition; every sentence contributes to correct invocation.

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 lists the types of information returned, which partially compensates for the lack of an output schema. It also includes crucial invocation constraints around ambiguity and sourcing codes from search_experiences. However, the destructiveHint=true annotation is unaddressed and contradicts the description at a fundamental level, leaving the tool’s true behavioral profile unclear.

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 already have detailed explanations. The tool description itself adds no parameter-level meaning and instead focuses on usage context, which is appropriate. Baseline 3 applies because the schema carries the full parameter-semantics burden.

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 clear, specific verb and resource: "Retrieves enriched information for a specific Viator experience," then enumerates the exact content types (descriptions, highlights, imagery, pricing, duration, key features, click-out URL). It also explicitly contrasts with the sibling search tool by stating it is "intended for deepening experience understanding rather than search," which fully distinguishes it.

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 explicit when-to-use conditions: only when the user refers to a specific experience, such as selecting it in the UI or asking "Tell me more about…". It also gives exclusion guidance — not for search — and tells the model to ask for clarification when ambiguity exists, and to only invoke with a code previously returned by search_experiences. This is model-actionable guidance.

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

viator_search_experiencesA
Read-onlyDestructive
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; 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.

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with readOnlyHint but does not explicitly mention side effects or limitations. It includes guidance on handling zero results, but the garbled tail and lack of any note about data modification or error behavior reduce transparency. The destructiveHint annotation is contradictory but not directly contradicted by the description.

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 verbose and repetitive, restating the same requirements multiple times (e.g., 'must supply non-blank searchTerm' and 'must provide dates'). It ends abruptly with garbled text ('based on the proposed logic:' If > ') that appears incomplete. Lacks clear paragraphing and concise expression.

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?

Explains the tool's purpose, key constraints, and intended handling of search refinement. However, it does not describe what the returned list contains (only 'experiences'), and the garbled ending suggests an incomplete thought. Given the absence of an output schema, the description could be more complete about expected return structure.

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 highly detailed parameter descriptions. The tool description largely repeats schema guidance (e.g., not embedding dates in searchTerm, deriving dates from natural language) without adding significant new meaning beyond what the schema already provides. 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?

Clearly states it retrieves a curated list of Viator experiences based on a free-text search, with explicit examples. Distinguishes from related tools like viator_get_experience_details by focusing on search. 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?

Provides strong usage directions: must supply non-blank searchTerm, must provide dates, may re-issue refined searches, and how to handle zero results. Lacks explicit comparison to alternative tools for when not to use, but the guidance is otherwise specific and actionable.

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

whats_on_saleB
Read-onlyDestructive
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

B3.4/5.0
Behavior1/5

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

The description says 'List currently-active points sales' and 'No auth required,' strongly implying a safe read-only operation. However, annotations include destructiveHint: true, which contradicts that implication and also conflicts with readOnlyHint: true. This is a direct 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?

The description is compact and well-structured: it leads with the main function, then adds auth and use-case context. Every sentence earns its place with 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, optional-filter list tool, the description gives sufficient calling context: what it lists, a clear trigger phrase, and auth requirements. The conflicting destructiveHint annotation introduces ambiguity, and there is no output schema, so a fully complete picture is not achieved.

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 program and category parameters. The description adds thematic context by mentioning airline, hotel, credit-card, and loyalty programs, but it does not add meaningful parameter-level detail 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 a specific action and resource: 'List currently-active points sales' for buy-points promos and transfer bonuses. It does not explicitly contrast with nearby siblings like get_buy_points_pricing or compare_transfer_options, so it stops short of full 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 Guidelines4/5

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

It gives clear usage context: 'Useful as a starting point when a user asks "what's a good deal right now?"' and notes that no auth is required. It does not mention when not to use it or name alternatives, so it is not a 5.

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

wikipedia_airportsA
Read-onlyDestructive
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

A3.8/5.0
Behavior1/5

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

The description presents a read-only lookup operation, but the annotations include destructiveHint: true, which conflicts with the described behavior and with readOnlyHint: true. The description does not disclose any destructive side effect, rate limits, or data staleness concerns, so the conflicting annotation is not resolved.

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 and front-loaded: it opens with the core action and source, then gives two concrete use cases, and ends with practical access notes. Every sentence carries useful information and there is no redundancy.

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

Completeness4/5

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

Given the low parameter count and clear schema, the description covers most of what an agent needs to decide when to call the tool. The main gap is that there is no output schema and the description does not specify the exact return format beyond 'full destination list', leaving some uncertainty about the expected response shape.

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 parameters are already well documented. The description adds general context about destination lists and route verification but does not add meaningful semantic detail beyond the schema, which is acceptable but not exceptional.

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 ('Look up airline service from a Wikipedia airport page') and clearly distinguishes the tool from fare/award route tools by calling out its role as a fallback for false negatives and destination list lookup. This is immediately understandable and differentiated 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 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: when fare/award tools incorrectly say a route doesn't exist, or when the full destination list is needed. It also provides a practical precondition ('Free, no auth'), giving the agent clear routing context without ambiguity.

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

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3/5.0
Disambiguation2/5

Several tools are near-duplicates (log_lounge_visit vs lounge_mark_lounge_visited, delete_lounge_visit vs lounge_delete_visit, audit_hotel_folio vs audit_marriott_folio) and the award-chart tools (get_pricing, get_program_rates, get_partner_award_options, get_program_partner_chart) have unclear boundaries. The three discover_more_flight_tools variants and overlapping lounge/portfolio listers compound the ambiguity, so an agent can easily pick the wrong one.

Naming Consistency3/5

Most tools use snake_case verb_noun names and many have consistent prefixes (cards_, lounge_, fs_, sw_), but prefixes are applied inconsistently: log_lounge_visit/delete_lounge_visit sit outside the lounge_ prefix while equivalent lounge_* tools exist, and fs_search_flight references a non-existent search_flight. The broad get_/list_/search_ verbs are predictable, but the mixed domain-prefix style and duplicate concepts hurt coherence.

Tool Count1/5

136 tools is far beyond a well-scoped server and bundles at least eight distinct domains (award search, cards, hotels, lounges, seatmaps, wifi, Viator, feedback). Many tools could be split into separate MCPs without loss of coherence, and the sheer count makes selection and prompt overhead prohibitive.

Completeness4/5

The core award-travel domain is well covered: bookings, hotels, points balances, statuses, vouchers, monitors, trips, and cards all have lifecycle CRUD, plus search and reference tools. Minor gaps exist (e.g. no true delete for standing orders, no single get for route monitors, and the Viator pair is an isolated mini-domain), but agents can generally complete workflows without dead ends.