Skip to main content
Glama

Server Details

Tineo exposes an MCP server at https://api.tineo.ai/mcp for authorized tool use.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.3/5.0

Scored across 73 tools

Disambiguation2/5

The set contains many overlapping tools, especially search variants (search, search_hotels, search_attractions, search_tours, discover, places_search, cities_search) and booking-link variants (flight_booking_link, train_booking_link, ground_transfer_booking_links, segment_booking_links, trip_booking_links). Descriptions attempt to clarify boundaries, but with 73 tools an agent will frequently struggle to choose the right one without careful reading.

Naming Consistency3/5

All names use snake_case, which is positive, but verb/noun ordering is mixed: some are noun_verb (trip_create, segment_create, friend_request_send) while others are verb_noun (search_hotels, get_trip_weather, create implied). There are also singular/plural inconsistencies (friend_request_accept vs friend_requests_pending) and generic names like discover, fetch, search that reduce predictability.

Tool Count1/5

73 tools is an extreme mismatch for a single MCP server, far exceeding typical well-scoped sets. Even for a broad travel assistant, this volume creates discoverability and maintenance burdens, and many tools could be consolidated.

Completeness4/5

The surface covers a wide travel lifecycle: trips, segments, travelers, documents, searches, booking links, settings, and support. Minor gaps exist, such as no explicit traveler removal or unassign operation, but core workflows appear well supported.

Available Tools

73 tools
affiliate_program_catalogAffiliate Program CatalogA
Read-onlyIdempotent
Inspect

Return Tineo's travel-affiliate catalog with truthful implementation status. Use only for questions about supported affiliate programs, never for a link to a specific or previously searched travel result. With generic search intent, validated generic adapters may include safe Tineo-owned CTA links. A card with bookingLink=null is metadata only, not a booking handoff or live inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional result cap. Defaults to 54.
localeNoOptional locale. Defaults to en.
endDateNoOptional local end/check-out date in YYYY-MM-DD format.
trip_idNoOptional Tineo trip ID (from trips_list) this request is for. Used only to default the currency to that trip's currency when currency is omitted and the user has no preferred currency; ignored if the trip is not found or not accessible to the user.
currencyNoOptional ISO-style three-letter display currency. Omit to use the user's preferred currency, then the currency of the trip given by trip_id, then USD.
locationNoOptional city or destination used to build the provider search.
verticalNoOptional category filter, such as Hotels, Tours, Flights, Trains, or Transfers.
startDateNoOptional local start/check-in date in YYYY-MM-DD format.
travelersNoOptional traveler count. Defaults to 1.
searchTermNoConcrete search intent. Required to generate booking CTA buttons.
includeResearchNoInclude catalogued/research programs. Defaults to true.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the burden is lower. The description adds real behavioral context beyond them: generic adapters may attach safe Tineo-owned CTA links, and a card with bookingLink=null is metadata only rather than a booking handoff or live inventory. This meaningfully clarifies what the output can and cannot do.

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 compact sentences, with the core purpose front-loaded before the exclusion and the output caveats. Each sentence carries a distinct constraint, though the phrasing ('truthful implementation status', 'validated generic adapters') is denser than needed.

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?

There is no output schema, so the description compensates by explaining the bookingLink=null case and CTA-link behavior. With all 11 parameters optional and fully schema-documented, plus annotations covering safety, the remaining gaps are minor and an agent has enough to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all 11 parameters are already documented, making 3 the baseline. The description references search intent (mapping loosely to searchTerm) and bookingLink semantics but adds no syntax, format, or default detail beyond the schema. No parameter-specific value is added.

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 ('Return') and resource ('Tineo's travel-affiliate catalog') with the qualifier 'truthful implementation status'. It distinguishes itself from booking-link siblings by saying it is 'never for a link to a specific or previously searched travel result', so an agent can separate it from flight_booking_link/ground_transfer_booking_links. Slightly muddied by the abstract phrase 'truthful implementation 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?

Gives an explicit use condition ('Use only for questions about supported affiliate programs') and an explicit exclusion ('never for a link to a specific or previously searched travel result'), which routes the agent toward the booking-link tools. It does not name the sibling tools directly, so the alternative identification is inferred rather than stated.

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

assistant_airbnb_search_tripSearch Airbnbs for a TripA
Read-onlyIdempotent
Inspect

Search Airbnb listings for an existing Tineo trip. Derives location and dates from the trip; the model may override. location must be a city or area, not a whole country (ask the user which city). Amenity filtering only via the amenities enum; there is NO keyword/free-text filter, so tell the user anything else can't be filtered. If structuredContent.status is 'unavailable', do NOT retry the same search: share structuredContent.fallback_search_url (a prefilled airbnb.com search), offer a hotel search, or a support ticket.

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNo
trip_idYesTineo trip ID. Defaults below are derived from this trip when omitted.
check_inNoCheck-in date YYYY-MM-DD.
childrenNo
currencyNoISO 4217 currency code (default USD).
locationNoOptional override for the trip's destination.
min_bedsNo
amenitiesNoOnly listings with ALL of these amenities. These are the only supported amenity filters; there is no keyword/free-text filter.
check_outNoCheck-out date YYYY-MM-DD.
price_maxNo
price_minNo
room_typeNo
max_resultsNoDefault 5, max 5.
min_bedroomsNo
min_bathroomsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial behavioral context beyond them: defaults are derived from the trip, location must be a city, amenity filtering is enum-only, and on an 'unavailable' status the agent must not retry but surface a prefilled fallback URL. That failure-handling guidance is genuinely non-obvious.

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

Conciseness5/5

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

Front-loads the core purpose, then stacks constraints in tight imperative sentences with no filler. Every clause carries a distinct operational instruction (derivation, location rule, filter limit, failure handling).

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 15-parameter, output-schema-less tool, it covers the trip-derivation model, the key input constraints, and even references return fields (structuredContent.status, fallback_search_url) that would otherwise be opaque. Not exhaustive on the less-critical numeric params, but complete enough to invoke correctly.

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

Parameters4/5

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

With schema coverage at only 47%, the description compensates on the parameters that matter most: it clarifies trip-derived defaults, the city-vs-country constraint for location, and the enum-only limitation on amenities. The remaining parameters (price, room_type, min_beds, currency) are self-descriptive from their names, so the gap is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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) plus resource (Airbnb listings) and scopes it to an existing Tineo trip. This cleanly distinguishes it from the sibling assistant_airbnb_search_user, which lacks the trip anchor.

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 operating context: derive location/dates from the trip unless overridden, require a city not a country, and use only the amenities enum (no free-text). It even offers fallbacks (hotel search, support ticket) on failure. It stops short of explicitly naming the sibling alternative (assistant_airbnb_search_user) and when to use that instead.

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

assistant_airbnb_search_userSearch AirbnbsA
Read-onlyIdempotent
Inspect

Search Airbnb listings by location and dates. Use when the user is not asking about a specific trip in Tineo. Returns a slim list of cards (title, type, rating, host, URL). location must be a city or area, not a whole country (ask the user which city). Amenity filtering only via the amenities enum; there is NO keyword/free-text filter, so tell the user anything else can't be filtered. If structuredContent.status is 'unavailable', do NOT retry the same search: share structuredContent.fallback_search_url (a prefilled airbnb.com search), offer a hotel search, or a support ticket.

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNo
check_inYesCheck-in date YYYY-MM-DD.
childrenNo
currencyNoISO 4217 currency code (default USD).
locationYesCity, neighborhood, or landmark (e.g., 'Lisbon, Portugal', 'Brooklyn').
min_bedsNo
amenitiesNoOnly listings with ALL of these amenities. These are the only supported amenity filters; there is no keyword/free-text filter.
check_outYesCheck-out date YYYY-MM-DD.
price_maxNo
price_minNo
room_typeNo
max_resultsNoDefault 5, max 5.
min_bedroomsNo
min_bathroomsNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description goes further by disclosing what it returns ('slim list of cards'), the absence of a free-text filter, and — most valuably — an explicit do-not-retry rule tied to structuredContent.status with concrete alternatives.

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

Conciseness5/5

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

Front-loads purpose and routing, then layers constraints and failure handling. Despite being several sentences, each one carries actionable information (sibling exclusion, filter limits, fallback path) with no 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?

No output schema exists, so the description correctly fills that gap by naming the card fields returned, and it covers the failure mode an agent would otherwise mishandle (retrying an 'unavailable' search). For a 14-parameter, read-only search tool this is 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 only 43%, so the description must compensate, and it does for the highest-risk parameter: location 'must be a city or area, not a whole country (ask the user which city).' It also constrains the amenities parameter to the enum-only surface. It adds real meaning beyond the schema, though it leaves the numeric/date parameters (price_min/max, min_beds, max_results) 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?

States a specific verb and resource ('Search Airbnb listings by location and dates') and explicitly distinguishes itself from the sibling trip-based search ('Use when the user is not asking about a specific trip in Tineo'). An agent can route between assistant_airbnb_search_user and assistant_airbnb_search_trip without opening either schema.

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?

Gives explicit when-to-use and when-NOT-to-use (the Tineo trip case), names the supported filtering surface (amenities enum only, no keyword), and prescribes next steps when status is 'unavailable' (fallback URL, hotel search, support ticket). Nothing about selection is left to inference.

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

audit_travel_documentsAudit Travel DocumentsA
Read-onlyIdempotent
Inspect

Audit expiration dates of the user's travel documents (passports, visas, insurance) and flag expired, expiring soon (<180 days), or expiring before trip end.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoOptional trip ID to check documents against that trip's dates.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description goes beyond that by disclosing the actual classification thresholds — the 180-day window and the trip-end comparison rule — which is real behavioral context an agent cannot get from the annotations or schema.

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

Conciseness5/5

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

A single tightly written sentence with the action front-loaded and the flag criteria enumerated parenthetically. Every clause carries information and nothing is padded.

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

Completeness4/5

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

For a read-only tool with no output schema, the description conveys what is examined and the categories that will be flagged, which is enough for correct invocation. It stops short of describing the actual return shape or what happens when trip_id is omitted, which leaves a minor gap.

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

Parameters3/5

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

Schema description coverage is 100% for the single trip_id parameter, so the baseline is 3. The description only lightly reinforces the schema by tying trip_id to the 'expiring before trip end' criterion; it does not add format, default-behavior, or omission semantics beyond what the schema already says.

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

Purpose5/5

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

States a specific verb (audit), a specific resource (the user's travel documents: passports, visas, insurance), and the exact outcome criteria (expired, expiring soon <180 days, expiring before trip end). No sibling tool does document auditing, so an agent can select this 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?

Usage is implied rather than stated: the optional trip_id and the 'expiring before trip end' criterion signal that the tool is for pre-trip document checks. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g. the related travel_document_assign_trip), so guidance remains inferential.

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

batch_segment_createCreate itinerary itemsAInspect

Create multiple segments in a trip in one call. All-or-nothing: if any segment fails validation, none are created. Max 20 segments per call. Use segment_get_schema to learn field names for each type. Segment dates must fall within the parent trip dates; use trip_update first to extend the trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe trip ID to add segments to
segmentsYesArray of segments to create. Each must have segment_type and fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the generic profile (not read-only, not destructive, not idempotent), while the description adds the transaction semantics that actually matter here: atomic all-or-nothing failure behavior and a hard 20-item cap. It also discloses the cross-entity validation rule that dates must sit inside the parent trip's range, which is not derivable from the schema.

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

Conciseness5/5

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

Front-loaded with the action, followed by the constraints that most affect correctness (atomicity, cap, date bounds, schema lookup). Every sentence carries distinct information; nothing is restated from the schema or annotations.

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 multi-item write tool with no output schema and no annotations beyond generic hints, the description covers atomicity, limits, validation bounds, and prerequisite lookups/updates. The only gap is what comes back after success (e.g., created segment IDs), which an agent would have to discover empirically.

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 trip_id and segments are already documented in the schema; the baseline there is 3. The description adds real value by explaining that the shape of `fields` is type-dependent and must be looked up via segment_get_schema, which is a semantic dependency the schema only gestures at.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource+mode: 'Create multiple segments in a trip in one call,' which immediately distinguishes it from the single-segment sibling segment_create. The batch nature is stated in the title and first sentence, so an agent can pick between them 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?

Gives explicit operating conditions: max 20 segments per call, all-or-nothing validation, dates must fall within the parent trip dates, and it routes to segment_get_schema for field names and to trip_update when the trip must be extended first. This is exactly the when/when-not/alternative guidance expected.

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

diagnose_failed_importDiagnose Failed ImportA
Read-onlyIdempotent
Inspect

Triage a failed, held, or partially processed email import on the user's account. Returns the failure step, error message, likely reason, and actionable next steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoOptional trip ID to look up the most recent non-clean import for that trip.
import_idNoSpecific EmailImport ID to diagnose.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so safety is covered. The description adds genuine value by enumerating the diagnostic payload (failure step, error message, likely reason, next steps), which is the only source for return semantics since no output schema 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?

Two sentences, zero filler: the first states scope and trigger, the second lists the return contents. Purpose is front-loaded and nothing is redundant.

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

Completeness4/5

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

The description covers purpose, trigger, and return contents, which is sufficient for a read-only diagnostic tool with a fully documented two-parameter schema. The one gap is behavior when neither optional parameter is supplied, which is not addressed anywhere.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented in the schema, including that trip_id resolves the most recent non-clean import. The description adds no syntax or resolution detail beyond that, so the 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?

Specific verb ('Triage') plus resource ('failed, held, or partially processed email import') and an explicit statement of what the tool returns. It is clearly distinguishable from the nearest sibling, import_parse_text_preview, though it never names that sibling to reinforce the boundary.

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 trigger condition is clear: use this when an import has failed, is held, or processed partially. It gives no explicit when-not guidance or alternatives, and does not say how to obtain an import_id when one is unknown, but the usage context itself is unambiguous.

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

discoverDiscover travel optionsA
Read-onlyIdempotent
Inspect

Search for hotels, restaurants, attractions, or activities to recommend to the traveler, returned as rich visual cards (image, rating, price level, link). Use this when the user wants suggestions or things to do/eat/stay near a place.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional refinement, such as "luxury", "family friendly", "tapas", or "museums".
categoryYesWhat to discover: hotels, restaurants, attractions, or activities.
latitudeNoOptional latitude to bias the search.
locationNoCity or area to search in, such as "Madrid" or "Lisbon, Portugal". Provide this when latitude/longitude are unknown.
longitudeNoOptional longitude to bias the search.
max_resultsNoMax cards to return, 1-10. Defaults to 8.
check_in_dateNoOptional YYYY-MM-DD check-in date (hotels).
check_out_dateNoOptional YYYY-MM-DD check-out date (hotels).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds genuine context beyond them by disclosing the return shape (visual cards containing image, rating, price level, and link), which is exactly what an agent needs to decide whether the output fits the task.

Agents need to know what a tool does to the world before 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: purpose and return format first, usage condition second. Nothing is redundant and the most decision-relevant 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?

With 8 fully documented params, a required category, and annotations covering safety, the description is complete enough to invoke correctly, and it describes the return content in lieu of an output schema. The one meaningful omission is any differentiation from the overlapping sibling search tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters including the category enum, dates, and coordinates. The description adds no syntax or format detail beyond echoing the category values, 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?

States a specific verb (search/discover) and enumerates the resources (hotels, restaurants, attractions, activities) plus the return format (rich visual cards). It's clear what the tool does, but it never distinguishes itself from close siblings like search_hotels, search_attractions, or search_tours, so an agent has to guess which to call.

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 sentence 'Use this when the user wants suggestions or things to do/eat/stay near a place' gives real usage context, which implies when to reach for it. However, it offers no when-not guidance and does not name the overlapping alternatives (search_hotels, search_attractions, search_tours), leaving the routing decision to inference.

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

fetchFetch Tineo ItemA
Read-onlyIdempotent
Inspect

Use this when the user wants the full text for a specific Tineo search result. Pass an ID returned by search, such as trip:{id}, segment:{id}, travel-document:{id}, or document:{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID returned by the search tool

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds useful behavior the annotations do not: the expected ID prefix schemes (trip:, segment:, travel-document:, document:) and the fact that it returns full text rather than a summary. It omits error behavior for invalid or stale IDs.

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

Conciseness5/5

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

Two sentences, no filler, front-loaded with the usage condition followed by the parameter format. 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 one-parameter read tool with annotations covering safety and no output schema, the description supplies purpose, trigger, and ID format. It leaves minor gaps around invalid-ID handling and whether returned text is ever truncated, but nothing essential to invoking it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description goes beyond the schema by enumerating the concrete ID formats (trip:{id}, segment:{id}, etc.) that the schema's single `id` string leaves open. That is genuine added meaning for the only 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?

States a specific verb (fetch) and resource (the full text of a specific Tineo search result), and distinguishes itself from the sibling `search` tool by positioning search as the producer of the IDs it consumes. An agent can tell them apart without opening either 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?

"Use this when the user wants the full text for a specific Tineo search result" gives a clear triggering condition, and it names `search` as the source of valid IDs. It does not state any when-not case, but for a simple read tool that is a minor omission.

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

flight_quickaddAdd flight to tripAInspect

Look up a real flight by number and date, then create it as a segment in the trip. Combines flight_quickadd_lookup + segment_create in one call. May take 2-5 seconds due to external flight data lookup. Segment dates must fall within the parent trip dates; use trip_update first to extend the trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineNoFull airline name as fallback (e.g., 'American Airlines'). Used only if airline_code is not provided.
trip_idYesThe trip ID to add the flight to
airline_codeNoIATA or ICAO airline code (AA, UA, DL, AAL). Optional if embedded in flight_number.
flight_numberYesFlight number, e.g. 'AA3242', 'UA100', or just '3242' if airline_code is provided
departure_dateYesDeparture date in YYYY-MM-DD format

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the write/non-idempotent/open-world profile, and the description adds two pieces of genuinely non-structured context: a 2-5 second latency warning from the external flight data lookup and the trip-date constraint. It does not mention that repeat calls create duplicate segments, which matters given idempotentHint=false, keeping it below a 5.

Agents need to know what a tool does to the world before 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; the core action and its composition are front-loaded, followed by the latency caveat and the constraint. No filler or restated name/title.

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 compound write tool with no output schema, the description covers purpose, composition, latency, and the date constraint, and points to the remediation tool. It omits failure behavior (what happens if the flight lookup returns no match) and non-idempotent duplicate risk, leaving minor gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all five parameters including the airline-vs-airline_code fallback logic. The description adds only the departure_date/trip-date relationship, so the baseline 3 for schema-complete coverage 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 compound action (look up a real flight by number and date, then create it as a segment) and explicitly names the two sibling tools it wraps, flight_quickadd_lookup and segment_create. An agent can distinguish this from calling segment_create directly without opening either 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?

Clear context for when to use it (flight lookup + segment creation in one call) and it routes the agent to trip_update when segment dates would fall outside the parent trip dates. It does not explicitly state when to prefer the two underlying tools separately, so it falls 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.

flight_quickadd_lookupLook up a flightA
Read-onlyIdempotent
Inspect

Look up flight details by airline, flight number, and departure date before creating or editing a flight segment. Use this when the user gives a flight number and wants to add, preview, or verify a flight.

ParametersJSON Schema
NameRequiredDescriptionDefault
airlineNoOptional airline name or callsign, such as American Airlines
airline_codeNoOptional IATA or ICAO airline code, such as AA, UA, DL, or AAL
flight_numberYesFlight number, with or without the airline prefix, such as AA3242 or 3242
departure_dateYesLocal scheduled departure date in YYYY-MM-DD format

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only profile is covered. The description adds workflow context by framing the call as a pre-creation/pre-edit verification step, but says nothing about lookup failure when no flight matches or the open-world nature of the query beyond the openWorldHint 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 short sentences, front-loaded with the verb and resource, followed by the usage trigger. No redundant restatement of the tool name or schema fields; 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?

With no output schema, the agent can still infer the tool returns flight details, and the annotations cover the safety and idempotency profile. The main gap is unstated behavior on no-match or ambiguous airline input, but for a simple lookup this is largely adequate.

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 each of the four parameters already carries its own description and example. The description only echoes the field set (airline, flight number, departure date) and omits airline_code, adding no format or disambiguation guidance 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?

States a specific verb and resource ('Look up flight details') plus the exact inputs that identify the flight (airline, flight number, departure date). It does not differentiate itself from the closest siblings, flight_quickadd and flight_route_lookup, which an agent would likely weigh against it.

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 triggering context ('when the user gives a flight number and wants to add, preview, or verify a flight') and its sequencing relative to segment creation/editing. It names no alternatives or exclusions, so the agent must infer when flight_quickadd or flight_route_lookup is preferable.

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

flight_route_lookupFlight Route LookupA
Read-onlyIdempotent
Inspect

Find scheduled flights by route and date when the flight number is NOT known: origin airport, destination airport, local departure date, and optionally an airline. Returns matching flights with their flight numbers so the exact flight can then be added via flight_quickadd. Use flight_quickadd_lookup instead when the user already has the full flight number.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal departure date in YYYY-MM-DD format.
originYesDeparture airport IATA code, such as BUD.
destinationYesArrival airport IATA code, such as SKG.
airline_codeNoOptional IATA airline code filter, such as W6 for Wizz Air.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds useful context that it returns matching flights with their flight numbers and feeds into flight_quickadd, but says nothing about result volume, pagination, or empty-route behavior. Given annotations carry the behavioral load, this is adequate but not rich.

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

Conciseness5/5

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

Two sentences, front-loaded with the verb and the key disambiguating condition, then the alternative in the second sentence. No 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 read-only lookup with no output schema, the description supplies what an agent needs: the required inputs, the fact that it returns flight numbers, the follow-up call, and the sibling to use instead when the flight number is known. Nothing material is missing.

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

Parameters3/5

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

Schema description coverage is 100%: every parameter (origin, destination, date, airline_code) already has a format hint in the schema. The description restates the same fields at a high level (origin airport, destination, local departure date, optional airline) without adding syntax or constraints beyond the schema. 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 ('Find scheduled flights by route and date') and immediately scopes it with 'when the flight number is NOT known'. It distinguishes itself from the sibling flight_quickadd_lookup by naming that alternative. An agent can disambiguate from the other flight tools without opening any schema.

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 gives the when ('flight number is NOT known') and the when-not ('use flight_quickadd_lookup instead when the user already has the full flight number'). It also names the downstream step (add via flight_quickadd), completing the workflow context.

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

flight_status_for_segmentCheck saved flight statusA
Read-onlyIdempotent
Inspect

Get current flight status for an existing flight segment in a user's trip. Use this when the user asks if a flight in their itinerary is delayed, canceled, on time, boarding, or has gate/terminal updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for segment_id
segment_idYesThe flight segment ID from a trip itinerary or segment details result

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNo
flightNo
matchedNo
flightStatusNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety and live-data profile is largely structured. The description adds only the implication of 'current' status, without disclosing freshness, refresh behavior, or what happens when status is unavailable; against annotations this is adequate but not rich.

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

Conciseness5/5

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

Two sentences, front-loaded with the capability and followed by the usage trigger. Every clause 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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. The description supplies purpose and trigger together, leaving only minor gaps such as data freshness and behavior when no status is available.

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 segment_id description ('from a trip itinerary or segment details result') already tells the agent where to obtain the value; the id alias is also documented. The description adds nothing beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description gives a specific verb+resource ('Get current flight status') plus scope ('for an existing flight segment in a user's trip'), which is precise and distinct from siblings like get_flight_airport_conditions or get_flight_change_history. It does not explicitly name an alternative sibling, 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 Guidelines4/5

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

It explicitly states the trigger conditions: 'Use this when the user asks if a flight in their itinerary is delayed, canceled, on time, boarding, or has gate/terminal updates.' That is clear positive guidance, but it offers no exclusions or named alternatives for when this is the wrong tool.

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

forwarding_address_get_or_createGet or Create Forwarding AddressAInspect

Read the authenticated user's personal Tineo forwarding address, or explicitly create one when none exists. A requested friendly name is paid-Ultra only. Never replaces an existing address. trips@tineo.ai remains available for mail forwarded from the user's primary or registered email; a personal address can also receive mail sent by an assistant or travel provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNoMust be true for operation=create after the user explicitly requests creation.
operationYesget reads without changing anything; create provisions only when none exists.
friendly_nameNoOptional exact local-part after trips+ for a paid-Ultra personalized address.

TDQS

A3.9/5.0
Behavior4/5

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

With annotations provided, the description still adds real behavioral context: 'Never replaces an existing address' clarifies non-overwrite behavior (relevant given idempotentHint=false), and 'friendly name is paid-Ultra only' adds an entitlement constraint. It doesn't discuss the required 'confirmed' flag or what creation returns, so a 4 rather than 5.

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 get-or-create purpose and follows with constraint details. The final sentence about trips@tineo.ai and mail reception is somewhat extraneous to the call decision but still relevant context; overall efficient.

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

Completeness4/5

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

Given a single required param, full schema coverage, and no output schema, the description covers purpose, creation conditions, entitlements, and non-replacement behavior. Minor gaps (the role of 'confirmed') are filled by the schema, so 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?

Schema description coverage is 100%, so the schema already documents operation, confirmed, and friendly_name (including the paid-Ultra note). The description reinforces the friendly_name entitlement but adds little beyond the schema, matching the baseline 3.

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+resource for both modes: 'Read the authenticated user's personal Tineo forwarding address, or explicitly create one.' The dual get/create behavior is unambiguous, though no sibling tool is named or contrasted, which keeps it from a 5.

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

Usage Guidelines4/5

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

'create one when none exists' and 'explicitly create' give clear conditions for triggering creation. It does not spell out when-not-to-use or name alternatives, but the get-vs-create routing is clear enough to act on.

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

friend_request_acceptAccept Friend RequestA
Destructive
Inspect

Accept an INCOMING pending friend request by request_id (from friend_requests_pending). This connects you and notifies the sender, so confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesThe incoming request id from friend_requests_pending.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: accepting establishes a mutual connection and notifies the sender, and it advises user confirmation before the irreversible action. It does not address failure modes (e.g., stale request_id).

Agents need to know what a tool does to the world before 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 front-loaded with the essential action and scope first, then the consequence and caution. No filler or restated title text.

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 mutation whose annotations already declare the destructive, non-idempotent profile, the description supplies the missing pieces: the source of the id, the side effects, and the confirmation requirement. Only minor gaps remain, such as behavior on an invalid or already-resolved request.

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 request_id property already states it is the incoming request id from friend_requests_pending, so the description repeats rather than extends that. Baseline 3 applies since the schema carries the parameter 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?

States a specific verb (Accept) and resource (INCOMING pending friend request) and explicitly scopes it to incoming requests identified by request_id. It also names the sibling tool that supplies the id (friend_requests_pending), so an agent can distinguish it from friend_request_decline, friend_request_send, and friend_request_resend without opening a 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?

Gives a clear precondition and workflow cue: the request_id comes from friend_requests_pending, and it tells the agent to confirm with the user before calling. It does not state what to do if the request no longer exists or explicitly compare against the decline alternative, 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.

friend_request_declineDecline Friend RequestA
Destructive
Inspect

Decline an INCOMING pending friend request by request_id (from friend_requests_pending). Confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesThe incoming request id from friend_requests_pending.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: only incoming pending requests qualify, where to source the id, and a required user-confirmation step before the destructive call.

Agents need to know what a tool does to the world before 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 carrying the action, the constraint, the id source, and the confirmation rule, with no 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 destructive mutation, the definition covers the action, the eligibility constraint, the parameter source, the confirmation obligation, and relies on annotations for the safety/idempotency profile. No output schema is needed for a simple acknowledge-style action.

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

Parameters3/5

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

With schema coverage at 100% and a single required parameter, the schema fully documents request_id and even names its source. The description restates the same provenance, adding no syntax or format detail beyond structured fields, 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?

States a specific verb (decline) plus resource (incoming pending friend request) and constrains scope to INCOMING requests, which cleanly separates it from friend_request_accept, friend_request_send, and friend_request_resend. An agent can identify the correct tool without opening any 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?

Gives clear preconditions: the request must be an incoming pending one, and the id should come from friend_requests_pending. It also adds an operational guideline ('Confirm with the user before calling'). It does not explicitly name friend_request_accept as the alternate action, but the routing is unambiguous from context.

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

friend_request_resendResend Friend RequestA
Destructive
Inspect

Resend the notification email for one of YOUR OUTGOING pending friend requests by request_id (from friend_requests_pending). This re-emails the recipient, so confirm with the user first and pass confirmed=true. Throttled on an escalating cadence (60s after the original send, 24h after the first resend) and capped at 2 total resends per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedYesMust be true. Set only after the user confirms they want to resend.
request_idYesThe outgoing request id from friend_requests_pending.

TDQS

A4.5/5.0
Behavior5/5

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

On top of annotations (destructiveHint=true, idempotentHint=false, openWorldHint=true), it discloses the key behavioral facts an agent could not infer: this re-sends an email to a third party, requires confirmation first, is throttled on an escalating cadence (60s then 24h), and is capped at 2 resends total.

Agents need to know what a tool does to the world before 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 that lead with the action and scope, then the confirmation requirement, then the rate limits. No filler and no repetition of the title.

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 two-parameter mutation with annotations and no output schema, the description covers actor scope, prerequisite lookup tool, user-confirmation gate, and rate-limit behavior. Nothing material is 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?

Schema description coverage is 100%, so both parameters are already documented in the schema, making 3 the baseline. The description only restates the confirmation requirement and the origin of request_id, adding no new syntax or format 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?

The description names a specific verb (resend) and resource (the notification email for an outgoing pending friend request), and narrows scope to YOUR OUTGOING requests identified by request_id. It also points to friend_requests_pending as the source of that id, which cleanly separates it from friend_request_send and friend_request_accept.

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 states the precondition (an existing outgoing pending request, id obtained from friend_requests_pending) and a required user-confirmation workflow before calling. It does not explicitly name an alternative tool or say when NOT to use this, but the throttle cap of 2 resends supplies a practical boundary.

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

friend_request_sendSend Friend RequestA
Destructive
Inspect

Send a friend request to another user by user_id, or by email. This emails a real person, so ALWAYS confirm the recipient with the user before calling, and pass confirmed=true only once they agree. Provide exactly one of user_id or email. If the email belongs to someone not on Tineo, an invitation to join is sent instead. For privacy, the email path always reports the same neutral result whether or not the address is registered.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoTarget email address. Provide this OR user_id, not both.
messageNoOptional personal note (max 280 chars).
user_idNoTarget user id (e.g. from friends_list or a suggestion). Provide this OR email, not both.
confirmedYesMust be true. Set only after the user has confirmed they want to send this request/invite.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations mark this destructive/openWorld, and the description goes well beyond that, disclosing that a real person is emailed, that confirmation is mandatory, that unregistered emails become invitations, and that the email path returns a deliberately neutral result for privacy. These are exactly the consequences an agent needs before invoking a non-idempotent, outward-facing action.

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

Conciseness5/5

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

Front-loads verb+resource, then the mandatory confirmation gate, then parameter constraints, then edge-case behavior. Four tight sentences, none wasted, in a sensible priority order.

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 send tool with no output schema, the description covers the action, required human confirmation, parameter constraints, and the two edge behaviors (invitation fallback, privacy-neutral response). An agent has everything needed to call it safely.

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 meaning beyond the schema: it clarifies the email path can trigger an invitation and always yields a neutral result, and reinforces the confirmation semantics of confirmed. That is genuine added semantic value over the field 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?

States a specific verb+resource ('Send a friend request') and the two targeting mechanisms (user_id or email), so the agent knows exactly what the tool does. It does not, however, differentiate itself from related siblings like friend_request_resend or friend_request_accept, leaving the routing to inference.

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 strong, actionable precondition: confirm the recipient with the user first and pass confirmed=true only after agreement, plus the 'exactly one of user_id or email' rule. It stops short of naming alternative tools (e.g. resend for an existing request), so it lacks explicit when-not guidance.

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

friend_requests_pendingPending Friend RequestsA
Read-onlyIdempotent
Inspect

List the authenticated user's pending friend requests, split into incoming (awaiting your response) and outgoing (awaiting the other person). Returns the counterpart's name only, never their email. Use the returned request_id with friend_request_accept / friend_request_decline / friend_request_resend.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the safe read-only profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description earns credit for adding genuine behavior: the incoming/outgoing split and the privacy guarantee that only the counterpart's name is returned, never their email. It omits any note on result size or pagination, keeping it just shy of a 5.

Agents need to know what a tool does to the world before 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 doing distinct work: what is listed and how it is split, what the return contains, and which siblings consume the request_id. Front-loaded and waste-free.

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 carries the return-shape burden and does so by describing the incoming/outgoing structure and the request_id field. The only gap is absence of pagination or volume guidance for a potentially unbounded list, which is 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 tool takes zero parameters, so the schema has nothing to explain and the baseline is 4. Nothing in the description needs to compensate for missing parameter documentation.

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

Purpose5/5

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

States a specific verb and resource ('List the authenticated user's pending friend requests') and immediately adds the meaningful scope distinction of incoming vs outgoing. An agent can distinguish this from friends_list and the accept/decline/resend siblings without opening any 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?

Explicitly routes the agent downstream ('Use the returned request_id with friend_request_accept / friend_request_decline / friend_request_resend'), which is strong when-to-use guidance. It stops short of stating when not to use this tool or contrasting with friends_list, so it is clear context without explicit exclusions.

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

friends_listList FriendsA
Read-onlyIdempotent
Inspect

List the authenticated user's accepted friends (paged). Returns each friend's name, home location, your label for them (Friend/Family) and your two-way trip-sharing state. Never returns other users' email addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number. Default 1.
searchNoOptional case-insensitive name filter.
page_sizeNoFriends per page (max 50). Default 20.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely new behavior: the exact shape of what is returned per friend and an explicit privacy guarantee that other users' email addresses are never returned, which the schema does not express.

Agents need to know what a tool does to the world before 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, front-loaded with the core operation, then return contents, then the privacy constraint. No filler, no repetition of the title, and each sentence carries distinct information.

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

Completeness5/5

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

With no output schema, the description steps in to enumerate the returned fields, and pagination parameters plus safety hints are already handled by the schema and annotations. An agent has everything needed to call this correctly and interpret the response.

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 page, search and page_size are fully documented with defaults and bounds. The description only says '(paged)' and adds no format or semantic detail beyond the schema, 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?

States a specific verb and resource ('List the authenticated user's accepted friends') with scope qualifiers that separate it from sibling tools like friend_requests_pending. The parenthetical '(paged)' and the enumerated return fields make the operation unambiguous 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 Guidelines3/5

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

The word 'accepted' implicitly distinguishes this from friend_requests_pending, but the description never names an alternative or states a condition for choosing this tool over siblings. Usage is inferable rather than stated, which is the definition of a 3.

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

generate_packing_listGenerate Packing ListA
Destructive
Inspect

Generate (or regenerate, preserving checked items, when replace=true) a weather- and activity-aware packing checklist for a trip, saved as a pinned checklist note. Requires the trip to have at least 3 substantive segments. Provide the trip_id from trips_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNoRegenerate and overwrite an existing list, preserving checked items. Default false.
trip_idYesTineo trip ID (from trips_list).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=false; the description adds valuable context that replace=true overwrites while preserving checked items, and that output is persisted as a pinned note. It does not state the failure behavior when the 3-segment precondition is unmet, which is the main remaining 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?

A single front-loaded sentence with the action first, then the replace caveat, then the precondition and ID source. Every clause carries information and none is wasted.

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 does convey the created artifact (pinned checklist note) and the guard condition. It stops short of stating what the agent should do when the precondition fails or how success is signaled, but it is largely sufficient for a 2-parameter tool.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented in the schema (including the same 'preserving checked items' note for replace). The description reinforces rather than adds new syntax or format meaning, 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?

States a specific verb (generate/regenerate) and resource (weather- and activity-aware packing checklist) plus the output artifact (pinned checklist note), so the agent immediately knows what this produces. No sibling tool overlaps with packing-list generation, so it is unmistakable in the toolset.

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 precondition (trip must have at least 3 substantive segments) and tells the agent where the required trip_id comes from (trips_list). It lacks an explicit 'when not to use' or named alternative, but no reasonable alternative tool exists in the sibling list.

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

get_day_of_travel_briefDay Of Travel BriefB
Read-onlyIdempotent
Inspect

Get airport day-of-travel intelligence combining cached airport conditions and ground-transportation guides (trains, shuttles, taxis) for an airport code or flight segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
iata_codeNo3-letter IATA airport code, such as ATL.
flight_segment_idNoOptional flight segment ID (from trip_details) to check departure and arrival airports.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
typeNo
airportsNo
retrievedAtNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context by stating the data is 'cached' and combines two source types, but it provides no further detail on freshness limits or failure modes.

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 front-loaded sentence with no filler. The parenthetical examples are useful but could be trimmed, making it efficient though not maximally tight.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the description leaves selection ambiguous against sibling tools that cover the same underlying data, and it omits freshness or parameter-precedence 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% and both parameters are fully documented in the schema. The description's phrase 'for an airport code or flight segment' confirms the two input modes but adds no precedence or mutual-exclusivity detail beyond what the schema already provides, so the baseline of 3 is appropriate.

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

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 ('airport day-of-travel intelligence') with clear scope ('combining cached airport conditions and ground-transportation guides ... for an airport code or flight segment'). It does not distinguish itself from siblings like get_flight_airport_conditions or ground_transfer_booking_links, which overlap in content.

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 when-to-use guidance, nor are alternatives named. The phrase 'for an airport code or flight segment' hints at input scenarios but does not say when to choose this tool over get_flight_airport_conditions or ground_transfer_booking_links.

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

get_flight_airport_conditionsFlight Airport ConditionsA
Read-onlyIdempotent
Inspect

Get cached airport conditions, delay indices, weather, and flight rules for an IATA airport code (e.g. "ORD") or a flight segment's departure and arrival airports. Cache-only: reads existing airport intelligence and never triggers an external fetch.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_toNoOptional destination IATA airport code when checking a specific route.
iata_codeNo3-letter IATA airport code, such as ORD or LHR.
flight_segment_idNoOptional flight segment ID (from trip_details) to look up both departure and arrival conditions.

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world. The description nonetheless adds a genuinely useful trait beyond them: 'Cache-only ... never triggers an external fetch', which tells the agent results may be stale and that a cache miss will not be refreshed. It stops short of saying what is returned on a miss.

Agents need to know what a tool does to the world before 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 what is returned, then the cache-only constraint. Every clause carries information and nothing is padded.

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 fields, and the annotations cover the safety profile. The remaining gap is the zero-required-parameter case: it never says what happens when no argument is supplied, or what a cold cache 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 coverage is 100%, so all three parameters are already documented in the schema, including route_to's role and flight_segment_id returning both departure and arrival. The description restates these relationships without adding new syntax, precedence, or combination rules (e.g. what happens if both iata_code and route_to are supplied).

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 (get) and resource (cached airport conditions) and enumerates the payload: delay indices, weather, flight rules. The airport/segment scope is clear enough to separate it from siblings like get_trip_weather or flight_status_for_segment, but no sibling is named explicitly, so the differentiation is inferred rather than asserted.

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 two accepted lookup shapes (an IATA code, or a route via route_to, or a flight_segment_id) are described, which implies usage contexts. However there is no explicit when-to-use guidance, no statement of when to prefer this over get_trip_weather / flight_status_for_segment, and no exclusion rules.

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

get_flight_change_historyFlight Change HistoryA
Read-onlyIdempotent
Inspect

Get recorded historical timeline of flight schedule changes, gate changes, and delays for flights monitored on the user's trips.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoOptional trip ID to filter changes for flights on that trip.
since_daysNoLookback window in days. Default 30.
flight_dateNoOptional flight departure date in YYYY-MM-DD format.
airline_codeNoOptional 2-letter airline code, such as UA.
flight_numberNoOptional flight number, such as 1234.
flight_segment_idNoOptional flight segment ID.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds that records are historical and limited to the user's monitored trips, which is useful scoping context, but says nothing about availability, ordering, or return format.

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

Conciseness4/5

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

A single well-formed sentence that front-loads the core resource and appends the scoping constraint. No filler, though it could be marginally tighter.

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

Completeness4/5

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

For a read-only lookup with no required parameters, full schema coverage, and complete annotations, the description is adequate to invoke it correctly. Absence of return-shape detail is minor given the low-risk read nature and lack of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (trip_id, since_days, flight_date, airline_code, flight_number, flight_segment_id) are already documented in the schema with formats and defaults. The description adds no filtering semantics or interaction rules beyond what the schema 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.

Purpose4/5

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

States a specific verb (Get) and resource (recorded historical timeline of flight schedule, gate changes, and delays), scoped to the user's monitored trips. The word 'historical' implicitly differentiates it from live-status siblings like flight_status_for_segment, but no sibling is named explicitly, keeping it below 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?

The scoping to 'flights monitored on the user's trips' implies when the tool applies, but there is no explicit when-to-use guidance, no mention of prerequisites, and no named alternative such as flight_status_for_segment for live status. Usage is inferable but not stated.

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

get_routesGet RoutesA
Read-onlyIdempotent
Inspect

Compare available driving, transit, walking, and bicycling route summaries between two places using Google Maps. Returns duration and distance estimates for supported modes, plus Uber, Lyft, Waymo, and Google Maps handoff buttons for the destination. Set origin to 'home' for the user's saved home address. Ground time excludes airport check-in and security. Fares, detailed legs, flights, and ferries are unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeNoISO 8601 date-time with an explicit UTC offset. Required for leave_by or arrive_by; omit for leave_now.
modesNoModes to compare. Defaults to all four.
originYesStarting place or address (1 to 300 characters), or 'home' for the user's private saved home address.
time_modeNoWhen to travel. Default leave_now.
destinationYesEnding place or address (1 to 300 characters).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: what the response contains (duration and distance per mode, handoff buttons for Uber/Lyft/Waymo/Maps), that ground time excludes airport check-in and security, and which data classes are unavailable.

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

Conciseness4/5

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

Front-loaded with the core action and scope, then layers returns, the 'home' convenience, a caveat about ground time, and an availability disclaimer. Every sentence carries information, though the final two sentences are slightly list-like and could be tightened.

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 must describe return values, and it does so at a summary level (duration/distance estimates plus booking handoff buttons). Combined with full schema coverage of the five parameters, an agent has what it needs, though return format details and pagination/limits remain unspecified.

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 five parameters including the enum values and the 'home' origin sentinel are already documented in the schema. The description's restatement of the 'home' behavior and the supported modes duplicates rather than extends that, 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?

States a specific verb (Compare) and resource (route summaries between two places) and enumerates the supported modes, which cleanly separates it from siblings like flight_route_lookup or places_search. An agent can identify this as the multi-modal ground routing tool 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?

Gives clear context for use (comparing driving/transit/walking/bicycling between two places) and effective exclusions by stating what is unavailable (fares, detailed legs, flights, ferries), which routes the agent elsewhere for those needs. It does not, however, name a specific sibling alternative or state prerequisites, 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.

get_travel_statsGet Travel StatsA
Read-onlyIdempotent
Inspect

Get lifetime travel summary statistics across all owned and shared trips: total trips, completed trips, total segments, and segment counts by type.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds the meaningful scope fact that shared trips are included, but says nothing about latency, rate limits, caching, or how aggregated data is refreshed.

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

Conciseness5/5

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

A single sentence that front-loads the scope and then lists the returned metrics with zero filler. Every clause contributes information an agent needs.

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

Completeness5/5

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

With no output schema, the description carries the burden of describing the return payload and does so by naming the four metric groups. Combined with the zero-parameter schema and read-only annotations, an agent has everything needed to invoke it correctly.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The enumeration of returned metrics is useful but belongs to output disclosure rather than parameter 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?

States a specific verb (Get) and resource (lifetime travel summary statistics) and enumerates exactly which metrics are returned: total trips, completed trips, total segments, and segment counts by type. The scope 'across all owned and shared trips' also distinguishes it from per-trip tools like get_trip_expense_summary.

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 'lifetime travel summary statistics across all owned and shared trips' implies this is the global aggregate tool, as opposed to per-trip siblings, but no when-to-use or when-not-to-use condition is stated and no alternative tool is named. Usage is only inferable.

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

get_trip_expense_summaryTrip Expense SummaryA
Read-onlyIdempotent
Inspect

Get trip spend totals, per-currency breakdowns, traveler balances, and calculated who-pays-whom settlement suggestions for a trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTineo trip ID (from trips_list).
include_settlementsNoWhether to include optimal who-pays-whom settlement suggestions. Default true.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds that settlements are 'calculated' (a computed, not stored, result), which is useful context, but says nothing about authorization needs, data freshness, or edge cases. With annotations carrying the behavioral load, 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?

A single sentence, front-loaded with the verb and resource, listing the concrete outputs with zero 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 read-only summary tool with no output schema, the description adequately enumerates the returned data (totals, per-currency breakdowns, balances, settlements). Annotations cover the safety profile and the schema covers both params, so nothing critical is missing; only deeper behavioral detail is absent.

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% – trip_id and include_settlements are both fully documented, including the default for include_settlements. The description's mention of 'settlement suggestions' loosely maps to include_settlements but adds no syntax or format detail beyond the schema. Baseline 3 when the schema does the heavy lifting.

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 (Get) and resource (trip expense summary) and enumerates the outputs: spend totals, per-currency breakdowns, traveler balances, and settlement suggestions. An agent can tell it apart from siblings like get_travel_stats or trip_details, though it never names an alternative explicitly.

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 a trip' and the settlement/balance focus imply when it is useful, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is inferred from purpose rather than stated.

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

get_trip_weatherTrip WeatherA
Read-onlyIdempotent
Inspect

Get trip weather. Daily detail returns a city-grouped forecast bounded to trip dates with confidence tiers; current or hourly detail returns observed or near-term conditions for one trip city. Provide trip_id from trips_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoHourly forecast horizon, default 12 hours. Used only when detail is hourly.
detailNoWeather detail. Default daily.
city_idNoTrip city ID, used for current or hourly weather. If omitted on a multi-city trip, the result lists available city IDs.
trip_idYesTineo trip ID (from trips_list).
max_daysNoOptional forecast horizon cap in days. Default 16.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNo
citiesNo
detailNo
tripIdNo
outcomeNo
weatherNo
availableCitiesNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context: the forecast is bounded to trip dates with confidence tiers, and omitting city_id on a multi-city trip returns the available city IDs rather than failing. It still doesn't describe pagination or response shape, but that gap is minor given the output schema.

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, no filler, and the detail-mode behavior is front-loaded before the prerequisite. The leading 'Get trip weather' clause is mildly redundant with the title, keeping it off a 5.

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

Completeness4/5

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

For a read-only lookup with an output schema and 100% parameter coverage, the description supplies the mode semantics, the trip-scoping constraint, and the city-fallback behavior an agent needs. Nothing critical is missing, though explicit sibling routing would make it fully self-sufficient.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter, including the hours/detail/city_id interplay, is already documented in the schema. The description restates the detail-mode mapping and the city_id fallback behavior without adding syntax or format detail beyond what the schema 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.

Purpose4/5

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

The description opens with a specific verb+resource ('Get trip weather') and then distinguishes the three detail modes by what each returns, so an agent can tell daily from current/hourly. It does not explicitly contrast itself against nearby weather-related siblings such as get_flight_airport_conditions, 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?

It gives the required prerequisite ('Provide trip_id from trips_list') and implicitly routes detail=current/hourly to single-city near-term conditions, but never states when to prefer this tool over alternatives or any exclusion cases. Usage is implied rather than prescribed.

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

import_parse_text_previewPreview Travel Text ImportA
Read-onlyIdempotent
Inspect

Parse pasted travel confirmation text into proposed itinerary segments without saving anything. Use this before creating segments from copied email, PDF, or booking text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesTravel confirmation, booking, or itinerary text to parse. Raw text is used only for parsing and is not echoed back.
trip_idNoOptional trip ID used only to verify access and give the parser trip context
user_hintNoOptional user-provided context, such as provider name or expected segment type
max_segmentsNoMaximum number of segment previews to return, from 1 to 20. Defaults to 10.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description reinforces that nothing is saved, but adds no further behavior such as parse failure modes, whether results are cached, or rate limits; with annotations carrying the load, 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 tight sentences with the no-save guarantee and the workflow trigger front-loaded; zero filler and nothing redundant.

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 tellingly names the return payload ('proposed itinerary segments'), which is the key thing an agent needs. It does not detail the structure of those previews or what happens on unparseable input, leaving a small gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (text, trip_id, user_hint, max_segments) are already documented in the schema, including the default of 10 and the 1-20 range. The description adds no syntax, format, or semantic detail beyond the schema, 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?

States a specific verb and resource ('Parse pasted travel confirmation text') plus the output ('proposed itinerary segments') and the crucial scope qualifier 'without saving anything'. This cleanly separates it from write siblings such as segment_create and batch_segment_create.

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 this before creating segments from copied email, PDF, or booking text' gives an explicit trigger condition and workflow position. It stops short of naming the alternative tools (e.g., batch_segment_create) or stating when this preview is unnecessary, but the context is unambiguous.

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

known_participantsKnown Trip ParticipantsA
Read-onlyIdempotent
Inspect

Search people the authenticated user previously added to trips. Use before traveler_add, then obtain explicit invitation consent and confirm the email address.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesNames to match against prior trip participants.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this a safe, idempotent, read-only, non-open-world operation, so the safety burden is covered. The description adds genuinely useful behavioral context beyond that: a consent requirement and email-confirmation step. However, it says nothing about what the search returns or matching behavior, so it adds only moderate value on top of 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?

Two tight sentences with the purpose front-loaded and the workflow guidance following. Every clause earns its place, though the second sentence bundles several instructions (sequencing, consent, email confirmation) fairly densely.

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

Completeness4/5

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

For a single-parameter read-only search with no output schema, the description covers purpose, sequencing relative to traveler_add, and a consent precondition. The main remaining gap is that it never indicates what the search returns, which would help an agent act on the result.

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 'names' parameter, and the schema documents that it is the names matched against prior participants. The description adds no syntax, format, or matching detail beyond the schema, so the baseline 3 for full coverage 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?

States a specific verb and resource: 'Search people the authenticated user previously added to trips.' An agent can immediately tell this queries prior trip participants. It does not explicitly differentiate from similarly named siblings like trip_travelers or friends_list, but the purpose itself 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?

Explicitly positions the tool in a workflow: 'Use before traveler_add,' which names the alternative/next step and when to invoke it. It also adds a precondition (obtain explicit invitation consent). It stops short of stating when NOT to use it, so it is clear context rather than full routing guidance.

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

place_detailsView place detailsA
Read-onlyIdempotent
Inspect

Get detailed information for a selected place. Use this after places_search when the user chooses a place or needs the address, phone, website, map URL, coordinates, rating, IATA code, or timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoOptional BCP 47 language code for place data
place_idYesThe provider place ID returned by places_search

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. With no output schema, the description's enumeration of return fields (address, phone, website, map URL, coordinates, rating, IATA code, timezone) is the key added behavioral context; it does not cover error/invalid-ID behavior, so not a 5.

Agents need to know what a tool does to the world before 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, zero filler, with the purpose and the sequencing constraint (after places_search) 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 two-parameter read tool with full annotation coverage, this is nearly complete — the missing output schema is compensated by the explicit field list. Minor gaps remain around invalid/missing place_id handling, but nothing essential for correct invocation is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (place_id, language) are already documented, including that place_id comes from places_search. The description adds no syntax or format detail beyond that, 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?

States a specific verb and resource ('Get detailed information for a selected place') and enumerates the concrete fields returned, which lets an agent distinguish it from sibling places_search 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 Guidelines5/5

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

Explicitly routes the agent: 'Use this after places_search when the user chooses a place or needs the address, phone, website...'. It names the upstream alternative and the condition that selects this tool, leaving little to infer.

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

search_airport_loungesSearch Airport LoungesA
Read-onlyIdempotent
Inspect

Requires Tineo Ultra access. Search Tineo's populated first-party airport-lounge catalog by IATA and optional terminal/gate. Returns terminal, concourse, stored gate reference, location, access, amenity, rating, and day-pass fields with categorical gate relevance (not walking distance).

ParametersJSON Schema
NameRequiredDescriptionDefault
gateNoOptional gate, such as A17.
terminalNoOptional terminal or concourse, such as Terminal 5 or Concourse A.
iata_codeYesRequired 3-letter IATA airport code, such as ATL.
max_resultsNoMaximum lounges returned. Default 10.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gateNo
noteNo
typeYes
loungesYes
terminalNo
localDateNo
timeFormatNoThe signed-in user's saved time format. Absent or auto uses the host locale.
airportIataYes
totalMatchesYes
schemaVersionYes
airportTimeZoneNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description adds material behavioral context beyond that: the access-tier requirement and the caveat that gate relevance is categorical rather than walking distance, which prevents misinterpretation of results. It stops short of describing matching or empty-result behavior, so not a 5.

Agents need to know what a tool does to the world before 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, zero filler, and the access prerequisite and search scope are front-loaded before the return-value detail. Every clause 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?

For a read-only search with full annotation coverage and an output schema, the description covers access requirements, search scope, returned field categories, and the key gate-relevance caveat. Minor omissions (matching semantics, behavior on zero results) keep it just short of 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%, so the baseline is 3. The description mirrors the schema parameters (IATA, terminal/gate) without adding syntax or interaction rules, and says nothing about max_results; the one nuance it adds concerns result interpretation rather than parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Search Tineo's populated first-party airport-lounge catalog') and narrows scope by key ('by IATA and optional terminal/gate'). This is clearly distinguishable from sibling search tools like search_hotels, search_attractions, and places_search without opening a schema.

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 gives a real eligibility prerequisite ('Requires Tineo Ultra access'), which is useful context, but says nothing about when to prefer this over alternatives or when it is inapplicable. Usage is implied rather than stated, so a 3 is appropriate.

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

search_attractionsSearch Attractions & SightsA
Read-onlyIdempotent
Inspect

Search for popular tourist attractions, sights, landmarks, and things to do in a destination using TripAdvisor and Google Places. Returns attraction cards with ratings, descriptions, addresses, and ticket/experience links. Use when the user asks about top sights, landmarks, or attractions in a city.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of attractions to return (max 10).
queryYesDestination name, landmark, or attraction search term (e.g. 'Rome', 'Eiffel Tower', 'museums in London').
locationNoOptional city/area location filter.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the bar is lower. The description adds useful context beyond that: it names the external providers (TripAdvisor, Google Places) and describes the return payload (cards with ratings, descriptions, addresses, ticket/experience links). It omits rate limits or result caching, but that is minor.

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

Conciseness4/5

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

Three sentences, front-loaded with the purpose, then output shape, then usage trigger. No filler, though "attractions/sights/landmarks/things to do" is slightly repetitive in its enumeration.

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?

There is no output schema, so the description correctly compensates by describing the returned cards. Purpose, output, and usage are all covered; only explicit sibling differentiation is missing, which keeps it from 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 all three parameters (query, limit, location) are already documented in the schema. The description adds no syntax, format, or filtering semantics beyond that. 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?

States a specific verb (search) and resource (attractions, sights, landmarks, things to do) and names the data sources (TripAdvisor, Google Places). It is clearly distinguishable in spirit from search_tours/search_hotels, though it does not explicitly contrast itself against the closely related places_search sibling.

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

Usage Guidelines4/5

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

"Use when the user asks about top sights, landmarks, or attractions in a city" gives a clear trigger condition. However, it names no alternative tool and gives no when-not guidance, so an agent facing places_search or search_tours must still infer the boundary.

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

search_flight_pricesSearch Flight PricesA
Read-onlyIdempotent
Inspect

Search for flight itineraries with prices between two airports on a date using Google Flights. Returns available itineraries with prices, durations, airlines, layovers, and ranked route-search actions. Ages 12-17 are mapped as adults where a provider requires it; ages 0-1 are infants whose lap-versus-seat placement and provider policy must be confirmed before booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoOptional Tineo trip ID (from trips_list) this request is for. Used only to default the currency to that trip's currency when currency is omitted and the user has no preferred currency; ignored if the trip is not found or not accessible to the user.
currencyNoOptional ISO-style three-letter currency code. Omit to use the user's preferred currency, then the currency of the trip given by trip_id, then USD.
max_stopsNoOptional maximum number of stops (0 = nonstop only, 1 = up to 1 stop).
child_agesNoAge of each traveler under 18. Ages 12-17 are provider-mapped as adults where required; ages 2-11 are children and 0-1 are infants. Confirm lap-versus-seat placement with the user/provider for ages 0-1.
adult_countNoNumber of adult travelers (default 1).
cabin_classNoCabin class preference: 'economy', 'premium_economy', 'business', or 'first'. Default is 'economy'.
return_dateNoOptional return date in YYYY-MM-DD format for round-trip searches.
outbound_dateYesOutbound date in YYYY-MM-DD format.
arrival_airportYesArrival airport IATA code, such as CDG.
departure_airportYesDeparture airport IATA code, such as JFK.
outbound_end_dateNoOptional inclusive end date for a cheapest-returned-fare-per-day calendar, up to 7 outbound dates beginning at outbound_date. Each day reports priced, no_results, failed, or not_searched; prices are live estimates and may change.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds real value beyond them: it enumerates the response contents (prices, durations, airlines, layovers, ranked route-search actions) and discloses child-age provider mapping and the infant lap-versus-seat policy that must be confirmed before booking.

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 purpose and output scope; the age-policy sentence is dense but each clause carries information relevant to correct invocation. 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?

With no output schema, the description usefully summarizes the return payload, and the 11-parameter surface is fully documented in the schema. Missing only selection guidance against siblings like flight_route_lookup or flight_booking_link.

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 11 parameters, including currency fallback ordering and the outbound_end_date calendar behavior. The description restates the child-age mapping that is already in the schema and adds no new parameter syntax or semantics, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb (search), resource (flight itineraries with prices), and scope (two airports on a date) plus the underlying provider (Google Flights). An agent can distinguish it from route-oriented siblings like flight_route_lookup or status-oriented ones like flight_status_for_segment, though no sibling is named explicitly.

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 when-to-use statement, no condition selecting this over flight_route_lookup/flight_booking_link, and no exclusions. The only guidance is an age-handling caveat ('confirm before booking'), which is a booking caveat rather than tool-selection guidance.

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

search_hotelsSearch Hotels & LodgingA
Read-onlyIdempotent
Inspect

Search for hotels and accommodations. Ordinary searches use the text query. Dated radius searches use a geographic bounding box and exact distance filter; SearchAPI does not apply the text query or style preferences within the radius. Provider coverage may be incomplete and prices may change. A hotel_place_id without radius_meters searches by the resolved hotel name; with radius_meters it searches nearby. Only a unique identity match retains its offer links.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of hotel results to return (max 10).
queryNoSearch query or destination city (e.g. 'hotels in Tokyo'). Required for ordinary hotel search. Radius search ignores this text in provider selection and filters by geography only. For hotel_place_id without radius_meters, the resolved property name is used for provider search and identity matching.
trip_idNoOptional Tineo trip ID (from trips_list) this request is for. Used only to default the currency to that trip's currency when currency is omitted and the user has no preferred currency; ignored if the trip is not found or not accessible to the user.
check_inNoCheck-in date in YYYY-MM-DD format (alias: checkIn).
currencyNoOptional ISO-style three-letter currency code. Omit to use the user's preferred currency, then the currency of the trip given by trip_id, then USD.
latitudeNoRadius center latitude. Supply together with longitude instead of a place ID. Query may be omitted for a coordinate-only radius search.
check_outNoCheck-out date in YYYY-MM-DD format (alias: checkOut).
longitudeNoRadius center longitude. Supply together with latitude instead of a place ID. Query may be omitted for a coordinate-only radius search.
adult_countNoNumber of adults (alias: adults).
radius_metersNoGeographic search radius, default 1000 meters when center_place_id or coordinates are given. Requires stay dates and a center. Text query and style preferences are not applied to radius provider selection.
hotel_place_idNoOptional specific hotel place ID. Searches priced inventory by hotel name, or nearby when radius_meters is supplied. Retains offer links only if identity is uniquely verified. Requires check_in and check_out.
center_place_idNoOptional place ID for the radius center, from places_search. Requires check_in and check_out.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive. The description earns credit beyond them by disclosing that SearchAPI does not apply the text query or style preferences inside the radius, that provider coverage may be incomplete, that prices may change, and that only a unique identity match retains offer links.

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 and then walks through the modes in compact sentences with no filler. It is dense but every sentence carries behavioral or routing information, so it stays appropriately sized.

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, zero-required, multi-mode tool with no output schema, the description does the heavy lifting of explaining the modes, the radius caveats, and the check-in/check-out gating implied by the schema. Return-shape detail is absent, but it discloses offer-link behavior, which is the key observable outcome.

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 12 parameters and the baseline is 3. The description adds cross-parameter interaction semantics for hotel_place_id combined with radius_meters, but does not add format or constraint detail beyond what each property description already states.

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

Purpose4/5

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

The description opens with a specific verb and resource ("Search for hotels and accommodations") and then distinguishes the tool's operating modes (ordinary text query vs dated radius search vs hotel_place_id lookup). It is clearly not a generic search, though it never names sibling tools like places_search or search_attractions to sharpen the boundary against them.

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 explains when each mode applies: plain text query for ordinary searches, bounding box plus distance for dated radius searches, and hotel_place_id with or without radius_meters for identity vs nearby lookups. This is genuine when-to-use guidance, but it stops short of naming explicit alternatives or exclusions within the tool family.

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

search_toursSearch Tours & ActivitiesA
Read-onlyIdempotent
Inspect

Search for bookable tours, activities, excursions, and experiences at a destination using GetYourGuide with Viator and Tiqets travelpayouts fallbacks. Returns tour options with titles, prices, ratings, durations, and booking links. Use when the user asks about things to do, tours, activities, excursions, or experiences in a city or destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date in YYYY-MM-DD format to filter tours available on that day.
limitNoMaximum number of tour results to return (default 10, max 30).
queryYesSearch query — a destination, activity type, or combination (e.g. 'walking tour Rome', 'snorkeling Cancun').
trip_idNoOptional Tineo trip ID (from trips_list) this request is for. Used only to default the currency to that trip's currency when currency is omitted and the user has no preferred currency; ignored if the trip is not found or not accessible to the user.
currencyNoOptional ISO-style three-letter currency code. Omit to use the user's preferred currency, then the currency of the trip given by trip_id, then USD.
providerNoPreferred tour provider to search ('all', 'getyourguide', or 'viator'). Default is 'all'.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, idempotent, open-world behavior, and the description usefully adds the provider fallback chain (GetYourGuide primary, Viator/Tiqets fallbacks) plus the return shape. Minor inconsistency: Tiqets is cited as a fallback but the provider enum omits it, though this is not 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.

Conciseness4/5

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

Three sentences: purpose, return contents, and usage trigger, with the core action front-loaded. Efficient and free of padding, though the provider-sourcing clause makes the first sentence slightly dense.

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

Completeness4/5

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

For a read-only search tool with a fully documented schema and no output schema, the description covers purpose, sourcing, return fields, and triggers adequately. It does not address result ordering or pagination behavior, but nothing critical to correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters are already documented with format, defaults, and currency precedence rules. The description adds no parameter-level detail beyond what the schema provides, so the 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?

States a specific verb (search) and resource (bookable tours/activities/excursions/experiences) and adds provider sourcing detail. It is clear in isolation, but never names the adjacent sibling search_attractions to draw the boundary, so differentiation is left to inference.

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 a concrete usage trigger ('when the user asks about things to do, tours, activities, excursions, or experiences in a city or destination'). It lacks any when-not guidance or explicit routing to alternatives like search_attractions or places_search, so it stops short of the top band.

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

segment_associate_placeAssociate Place With SegmentA
Destructive
Inspect

Attach a Google Place to an ALREADY-EXISTING segment retroactively — writes a place association and syncs the segment's address/city/country/coordinates from the place. Use when a segment has a venue/name but no address (e.g. imported from a ticket confirmation with venue-only data). Requires a place_id from places_search/place_details. For CarRental/Transfer segments pass role "origin" or "destination"; omit for single-location segments (Activity, Lodging, EventTicket, Parking), which default to "primary".

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoWhich location this place represents. Default "primary".
place_idYesGoogle Place ID from a prior places_search/place_details call.
segment_idYesSegment ID (from segment_details/trip_details) to attach the place to.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotent, and the description adds real context by explaining what gets written and that it syncs address/city/country/coordinates. It stops short of stating whether an existing address is overwritten, which would fully justify the destructive 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 parenthetical and em-dash construction front-loads the core action and then layers conditions. Every clause carries actionable information (prerequisite, role rules) with no 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 mutation tool with no output schema, the description covers what it does, the prerequisite source of place_id, and the per-segment role behavior — everything needed to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents place_id, segment_id, and the role enum. The description goes beyond that by explaining where place_id comes from and when to pass origin/destination versus omitting role for single-location segments, adding conditional semantics the schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource ('Attach a Google Place to an ALREADY-EXISTING segment') and clarifies the retroactive scope, distinguishing it from segment_create/segment_update. An agent can tell exactly what it does 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 Guidelines5/5

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

Explicitly gives the when: segments with a venue/name but no address, e.g. imported from a ticket confirmation. It also names the prerequisite data source (place_id from places_search/place_details) and routes role usage per segment type, leaving little to inference.

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

segment_createCreate itinerary itemAInspect

Create a new segment in a trip. FIRST call segment_get_schema to get the required fields for the segment type. Then provide the trip_id, segment_type, and fields matching the schema. Segment dates must fall within the parent trip dates; use trip_update first to extend the trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoField values matching the schema for the segment type. Get schema first with segment_get_schema.
trip_idYesThe trip ID to add the segment to
segment_typeNoThe type of segment to create (Flight, Lodging, CarRental, Train, Transfer, Ferry, EventTicket, Parking, Activity, Note, Poll)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write; the description adds real behavioral context beyond them by disclosing the date-within-parent-trip validation rule and the ordering dependency on segment_get_schema. It does not cover auth/permission requirements or what happens on validation failure, so it is not a 5.

Agents need to know what a tool does to the world before 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, front-loaded with the action and then the required call order and constraint; each sentence carries distinct information with no repetition of the schema.

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

Completeness4/5

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

Covers the prerequisite, required identifiers, dynamic field source, and a key validation constraint for a create tool with no output schema. It leaves the return value (e.g., the created segment ID for chaining) unstated, which is a minor gap given no output schema exists.

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 goes beyond it by explaining that `fields` is dynamic and must be derived from segment_get_schema for the chosen segment_type, which the schema only hints at. This meaningfully disambiguates the nested, type-dependent 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?

States a specific verb and resource ('Create a new segment in a trip') and the description's workflow (schema lookup, then trip_id + segment_type + fields) makes clear it creates a single typed segment, distinguishing it from segment_update and batch_segment_create. An agent can identify the operation 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?

Gives a concrete prerequisite sequence ('FIRST call segment_get_schema') and a pre-condition with a remediation path ('dates must fall within parent trip dates; use trip_update first to extend the trip'), which is unusually clear context. It stops short of saying when to prefer batch_segment_create over this tool or any explicit exclusion.

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

segment_deleteDelete itinerary itemB
Destructive
Inspect

Delete a segment from a trip. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_idYesThe ID of the segment to delete

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false. The description reinforces this with 'This action cannot be undone,' adding irreversibility emphasis beyond the flags. However, it says nothing about permissions, cascading effects on associated bookings/places, or rate limits, which would be valuable for a delete.

Agents need to know what a tool does to the world before 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, zero waste, with the destructive warning front-loaded immediately after the purpose. Ideal size for a simple delete.

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 delete with annotations covering the safety profile and no output schema needed, the description is essentially complete. Only minor gaps remain around side effects on linked data.

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 a single parameter at 100% schema description coverage, the schema fully documents segment_id. The description adds no format, sourcing, or constraint detail 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?

States a specific verb ('Delete') and resource ('segment from a trip'), so an agent immediately knows the operation. It does not explicitly distinguish itself from siblings like segment_update or trip_delete, but the resource name 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 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 versus alternatives (e.g., segment_update for edits, batch_segment_create for bulk adds, trip_delete for whole-trip removal). Usage is only implied by the verb.

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

segment_detailsView itinerary itemA
Read-onlyIdempotent
Inspect

Get full details for a specific trip segment. Returns complete information based on segment type: flight details (airline, flight number, airports, terminals, seats, baggage), hotel details (property, address, check-in/out times, room type, amenities), activity details (venue, tickets, timing), event ticket details (event name, venue, timing, vendor, order, confirmation), car rental details (company, vehicle, pickup/dropoff locations), or transfer details (provider, transfer type, pickup/dropoff locations, addresses, and local times). bookingContext describes whether Tineo can prepare an in-app reviewed change or needs the full editor; it is not a save confirmation or additional write authority.

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_idYesThe unique identifier of the segment to fetch details for

Output Schema

ParametersJSON Schema
NameRequiredDescription
canEditNo
segmentNo
bookingContextNo
duplicateStatusNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-openWorld, so the safety burden is carried. The description adds value by disclosing the per-type return payloads and, notably, clarifying that bookingContext indicates change-preparedness and is explicitly NOT a save confirmation or write authority, which prevents a misuse.

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

Conciseness4/5

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

Front-loaded with a clear one-line purpose, followed by scoping detail and a useful bookingContext caveat. The per-segment-type field enumeration is somewhat long and partly redundant with the output schema, costing a point, but every sentence carries meaning.

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

Completeness4/5

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

With a rich output schema covering return values and full annotations covering safety, the agent has nearly everything needed. The description rounds out intent and the bookingContext semantics; only the lack of routing guidance to sibling tools leaves a minor gap.

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

Parameters3/5

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

One parameter at 100% schema description coverage, so the schema alone documents segment_id. The description adds no syntax, format, or sourcing guidance beyond what the schema provides, making the baseline of 3 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 (Get full details) and resource (specific trip segment), and the enumeration per segment type makes the scope unambiguous. An agent can distinguish this from trip_details (trip-level) and segment_get_schema (schema-level) without opening any schema.

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: call this to fetch details for a known segment. However, no guidance is given on when to prefer it over segment_get_schema or trip_details, nor any prerequisite (e.g., needing a valid segment_id from trips_hub/segment_create). Minimum viable but with a clear gap.

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

segment_get_schemaGet itinerary item fieldsA
Read-onlyIdempotent
Inspect

Get the schema for a segment type. CALL THIS FIRST before creating/updating segments. Returns required fields and their types for the specified segment type. Supported types: Flight, Lodging, CarRental, Train, Transfer, Ferry, EventTicket, Parking, Activity, Note, Poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_typeYesThe segment type to get schema for (Flight, Lodging, CarRental, Train, Transfer, Ferry, EventTicket, Parking, Activity, Note, Poll)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the safe read-only, idempotent profile. The description adds useful behavioral context beyond them: it discloses a call-order requirement and states the return content ('required fields and their types'), which is especially valuable because no output schema exists.

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

Conciseness4/5

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

The description is front-loaded with the action and the critical call-order instruction. It is efficient overall, though the supported-type list duplicates the schema's enum-like descriptions rather than adding new information.

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

Completeness5/5

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

For a simple one-parameter read-only tool with rich annotations but no output schema, the description supplies the essential missing pieces: what the tool returns and when to call it. An agent has enough information 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 description coverage is 100%, and the single segment_type parameter is already fully documented in the input schema. The description repeats the supported-type list but adds no syntax, format, or validation semantics beyond what the schema provides, 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 ('Get') and resource ('schema for a segment type'), and distinguishes the tool from siblings by explaining it retrieves field metadata rather than creating or updating segments. The supported-type list makes the resource scope unambiguous.

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

Usage Guidelines4/5

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

It gives clear usage context with 'CALL THIS FIRST before creating/updating segments,' which routes the agent appropriately relative to segment_create and segment_update. It does not explicitly name those sibling tools or state when not to use this tool, 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.

segment_updateUpdate itinerary itemA
DestructiveIdempotent
Inspect

Update an existing segment. Only provide the fields you want to change. Get field names from segment_get_schema if unsure. Segment dates must fall within the parent trip dates; use trip_update first to extend the trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for segment_id (widget compatibility)
fieldsNoField values to update. Only include fields that should be changed.
segment_idNoThe ID of the segment to update

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the write/destructive/idempotent profile, so the description is free to add the non-obvious parts: partial-update semantics that clarify what is left untouched, and the hard constraint that segment dates must fall within the parent trip's dates. It does not cover permissions or failure behavior, but it adds real behavioral 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?

Three short sentences, front-loaded with the update action, then the partial-update rule, then the constraint. Every sentence carries distinct information with no 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 mutation tool with full schema coverage and no output schema, the description supplies the two things an agent most needs: how to populate the free-form fields object and the trip-date constraint. Nothing essential for a correct call is missing.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds meaningful semantics for the untyped nested `fields` object: only supply fields you intend to change, and fetch valid field names from segment_get_schema. That is genuine guidance the schema does not encode.

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

Purpose4/5

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

The description opens with a specific verb+resource ("Update an existing segment") and the word "existing" implicitly separates it from the create/delete siblings. It is clear and actionable, but there is no explicit naming of sibling tools for writes, so it stops just 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 partial-update guidance ("Only provide the fields you want to change"), routes the agent to segment_get_schema for field names, and states a precondition with an alternative ("use trip_update first to extend the trip"). No explicit when-not-to-use is given, but the routing to two siblings by condition is strong.

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

settings_readRead Tineo SettingsA
Read-onlyIdempotent
Inspect

Reads the user's Tineo display and notification settings: units, date and time formats, flight monitoring, and trip reminder emails.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
layoutNo
schemaYes
valuesYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the scope of what is read (user-scoped display and notification settings), but says nothing about auth requirements, defaults, or per-user vs global behavior, so it adds only moderate value.

Agents need to know what a tool does to the world before 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 the verb and resource leading and the scope list trailing. Each clause earns its place by naming a distinct settings area, 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 zero-parameter, read-only tool with complete annotations and an output schema, the description supplies the categories of returned settings and nothing essential is missing. It could be marginally stronger by noting whose settings (account-level vs trip-level), but the output schema covers return structure.

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

Parameters4/5

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

With zero parameters and full schema description coverage, there is nothing for the description to disambiguate at the parameter level; the 0-param baseline of 4 applies. No syntax or argument nuance is needed for a no-argument read 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 states a specific verb ("Reads") and resource ("the user's Tineo display and notification settings") and enumerates the covered categories: units, date/time formats, flight monitoring, and trip reminder emails. This is clear enough for an agent to distinguish it, though it doesn't explicitly name the read/write counterpart settings_update in text.

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?

There is no explicit when-to-use guidance or exclusion, but the read verb plus the sibling settings_update make the usage context strongly implied (read current settings before modifying them). It stops at implied usage rather than stating conditions or alternatives.

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

settings_updateUpdate Tineo SettingsB
DestructiveIdempotent
Inspect

Changes the user's Tineo display and notification settings. Only include settings the user asked to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
setYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
valuesYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already disclose the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false). The description adds genuine behavioral context by implying a partial merge rather than a full replace, but it never explains what the destructiveHint means here — whether omitted settings are preserved or reset, or whether the change needs confirmation.

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 action and followed immediately by the constraint, with no filler. It is tight but so brief that it borders on under-specification rather than being optimally informative.

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?

An output schema exists, so return values need no explanation, and the minProperties:1 constraint is conveyed by the sparse-update sentence. For a mutation tool with a nested six-field object and destructiveHint=true, however, the description leaves the merge/destructive behavior and permission requirements unstated.

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 carries the burden, and it only goes as far as framing the six nested fields as "display" (formats, units) and "notification" (flight monitoring, trip reminders) settings. It adds useful grouping but no per-parameter meaning, enum semantics, or format strings beyond what the schema already lists.

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 (Changes) and resource (the user's Tineo display and notification settings), and the read/write pairing with the sibling settings_read is easy to infer. It stops short of naming that sibling or distinguishing itself from other update tools, but an agent can tell what it does 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 Guidelines3/5

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

"Only include settings the user asked to change" gives one useful operating rule for invoking it (send a sparse update, not a full snapshot). There is no explicit when-to-use/when-not guidance and no reference to settings_read as the alternative for inspection, so usage is only implied.

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

support_ticket_createCreate Support TicketA
Destructive
Inspect

Create a Tineo support ticket after the user explicitly asks or confirms and notify Tineo support by email. Use when the assistant cannot complete a request, a tool fails, or the requested capability is unsupported.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoWhy the support ticket is being created.
summaryYesShort support-ticket summary.
trip_idNoRelated trip ID, if known.
confirmedYesMust be true only after the user directly asks to create a ticket or confirms the assistant's offer.
segment_idNoRelated segment ID, if known.
attachmentsNoOptional image attachments as base64 data URIs.
descriptionYesUser-facing explanation of what failed or could not be completed.
failure_contextNoThe failed Tineo tool name and its error text, if a Tineo tool failed.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag a non-read-only, destructive, open-world, non-idempotent write. The description adds meaningful context beyond that: an outbound email notification to Tineo support and the user-confirmation gate on the write. It stops short of covering duplication behavior, rate limits, or what happens after submission.

Agents need to know what a tool does to the world before 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, zero filler, and the action plus its precondition are front-loaded before the trigger conditions. 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 mutation tool with full schema coverage and no output schema, the description covers purpose, gating, and trigger conditions adequately. The main omission is any indication of what the caller receives back (e.g., the created ticket reference) or what to do if creation fails.

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% across all 8 parameters, including inline docs for confirmed, source, failure_context, and attachments, so the schema carries the parameter burden. The description reinforces the confirmed precondition but adds no parameter semantics (formats, id relationships, attachment limits) 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?

Specific verb+resource (create a support ticket) plus the secondary effect of emailing Tineo support. It is unmistakable against the travel-oriented siblings, none of which handle support escalation.

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

Usage Guidelines5/5

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

Explicit trigger conditions are given (assistant cannot complete, tool fails, capability unsupported) and a hard precondition is stated (only after the user explicitly asks or confirms). That is as close to when/when-not guidance as this tool needs.

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

tineo_pingCheck Tineo connectionA
Read-onlyIdempotent
Inspect

Check that Tineo is connected and the user is signed in. Returns the signed-in account's name and email; it does not list trips.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNo
userNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds useful scope context (a signed-in check, not a data listing) beyond what the annotations say, though it omits any failure/auth-expired behavior an agent might want.

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

Conciseness5/5

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

Two tight sentences with no filler. The purpose is front-loaded and the scoping caveat follows immediately.

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?

An output schema exists, so return values need no elaboration, and the annotations carry the safety profile. For a parameterless connectivity check, nothing an agent needs to invoke it correctly is absent.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No parameter semantics are needed or 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?

States a specific verb and resource: verifies Tineo connectivity and the signed-in user. It also draws a boundary against a likely confusion point in this sibling set by noting it does not list trips, so an agent can distinguish it from trips_list without opening a 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 condition for use (verify the connection/account is live before doing other work) is clear from the phrasing, and the closing clause steers agents away from treating it as a trip-listing call. No explicit alternative tool is named, which keeps it 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.

travel_document_assign_tripAssign Travel Document To TripA
DestructiveIdempotent
Inspect

Move or assign a travel document (insurance, visa, passport scan, voucher) to another trip the user OWNS, or back to the general library. Provide document_id from a documents listing and trip_id from trips_list. Omit trip_id (or pass null) to move the document to the library. Only trips the user owns are valid targets. The document's linked files move with it; a file also attached to another document is left in place and reported. If more than one document could match the request, confirm which one before moving. Returns the document, its previous and new trip, and how many linked files were re-pointed.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoTarget trip id owned by the user; omit or null to unassign the document to the library.
document_idYesId of the travel document to move.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the mutation profile is covered. The description adds non-obvious cascade behavior beyond that: linked files move with the document, while a file also attached elsewhere is left in place and reported, plus the owned-trip restriction. It stops short of describing error/permission failure behavior, but adds real value over 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?

Action and scope are front-loaded, followed by input sourcing, the unassign rule, ownership constraint, side effects, and return shape. Every sentence carries information; only the restated omit-trip_id rule slightly overlaps the schema description.

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

Completeness5/5

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

For a two-parameter mutation with no output schema, the definition covers target sourcing, the unassign path, ownership restriction, ambiguous-match handling, the file cascade side effect, and even the response contents (document, previous/new trip, count of re-pointed files). An agent has everything needed to call it safely.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and both parameters are already documented in the schema. The description adds value by naming the source endpoints for each id (documents listing, trips_list) and restating the omit/null-to-library semantic as an operational instruction rather than a field 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?

States a specific verb (move/assign) plus resource (travel document) and the two possible destinations (another owned trip or the general library). It is clearly distinguishable from siblings like audit_travel_documents or trip_update without opening any schema.

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

Usage Guidelines5/5

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

Explicitly says where to obtain inputs (document_id from a documents listing, trip_id from trips_list), when to omit trip_id (library), the ownership precondition, and to confirm when multiple documents could match. This is when/when-not/alternative routing in one place.

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

traveler_addAdd trip travelerA
Destructive
Inspect

Add a traveler only after known_participants and the user's explicit invitation decision. With an invitation, pass email and invite_confirmed=true; this creates and sends the trip invitation. If the user explicitly declines, omit email and pass invite_confirmed=false.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTraveler's display name
emailNoConfirmed invitation email. Required when invite_confirmed=true and forbidden when false.
trip_idYesThe trip ID to add the traveler to
invite_confirmedYesTrue only after the user explicitly confirms sending an invitation. False only after they explicitly decline.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, openWorldHint=true, and non-idempotency, so the safety profile is covered. The description adds genuinely new behavior: that passing email actually creates and sends the trip invitation to an external party, plus the dependency on known_participants. It does not address duplicate travelers or error/rollback 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?

Three sentences, no filler, and the ordering constraint is front-loaded before the branching detail. It is slightly compressed but every clause carries information an agent needs at call time.

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 mutating tool with annotations present, no output schema, and fully documented parameters, the description covers the prerequisite, both decision branches, and the external send side effect. It omits what happens on success/failure or when the traveler already exists, which are minor gaps given the structured data available.

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 name, email, trip_id, and invite_confirmed, including the email/invite_confirmed coupling. The description largely restates that coupling in prose rather than adding new semantics, so the 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 states a specific verb and resource ('Add a traveler') and immediately scopes it to the invitation workflow, setting it apart from sibling tools like traveler_assign, traveler_update_email, and known_participants. It stops short of explicitly naming the non-invitation alternative, so the differentiation is implied rather than stated.

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 precondition ('only after known_participants and the user's explicit invitation decision') and spells out both branches: invite with email/invite_confirmed=true, or decline with invite_confirmed=false. No sibling alternative is named for adding a traveler without an invitation, 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.

traveler_assignAssign traveler to itinerary itemA
Idempotent
Inspect

Assign one or more travelers to a segment. Provide traveler_id for a single assignment, or traveler_ids for batch assignment. Assigning an already-assigned traveler is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_idYesThe segment ID to assign travelers to
traveler_idNoSingle trip traveler ID to assign
traveler_idsNoArray of trip traveler IDs to assign (for batch assignment)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The 'already-assigned traveler is a no-op' line largely restates idempotentHint rather than adding new behavioral context such as permissions needed 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?

Three tight sentences with the core action front-loaded and no wasted prose. Each sentence carries a distinct piece of guidance.

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

Completeness4/5

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

For a mutation tool with full schema coverage and annotations covering the safety profile, the description is adequately complete. It omits return/response behavior and required permissions, but these are minor given the annotation coverage.

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 explaining the intended relationship between traveler_id (single) and traveler_ids (batch), clarifying how to choose between the two optional 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 states a specific verb+resource: 'Assign one or more travelers to a segment.' This is clear and actionable. It does not, however, explicitly distinguish itself from nearby siblings like traveler_add or travel_document_assign_trip, which an agent might confuse with it.

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 gives useful in-scope guidance ('traveler_id for a single assignment, or traveler_ids for batch') and notes the no-op behavior. But it offers no explicit when-to-use versus alternatives or prerequisites (e.g., when to prefer this over traveler_add).

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

traveler_update_emailCorrect pending traveler emailA
DestructiveIdempotent
Inspect

Correct one pending, unaccepted trip traveler's email after the owner supplies the exact traveler ID and new email. A changed address revokes the old link and automatically sends a renewed invitation. Report invitationSent truthfully; an unchanged address sends nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesNew email explicitly supplied by the owner
trip_idYesTrip ID owned by the caller
traveler_idYesExact pending traveler ID from trip_travelers

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the concrete side effects: a changed address 'revokes the old link and automatically sends a renewed invitation,' an unchanged address 'sends nothing,' and the caller should 'report invitationSent truthfully.' These specifics explain what destructiveHint and idempotentHint mean in practice and are consistent with 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?

Three sentences, purpose front-loaded, each one carrying real information (scope, side effects, return-value guidance). No 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 three-parameter mutation with no output schema, the description supplies the missing behavioral and response context, notably the invitationSent return signal and the revoke/resend consequence. Nothing an agent needs to invoke it correctly is absent.

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 three parameters are already documented in the schema. The description reinforces that the email is owner-supplied and the traveler ID must be exact, but adds no syntax or format details beyond what the schema states; 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?

Specific verb (correct/update) plus resource (a pending traveler's email) with explicit scope: 'one pending, unaccepted trip traveler's email.' The 'pending, unaccepted' qualifier distinguishes it from sibling traveler tools like traveler_add, traveler_assign, and trip_travelers.

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

Usage Guidelines4/5

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

States the precondition clearly ('after the owner supplies the exact traveler ID and new email') and implicitly excludes accepted travelers via 'pending, unaccepted.' It does not name an alternative tool for non-pending travelers, so it stops short of full when-not routing.

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

trip_cities_listList Trip CitiesA
Read-onlyIdempotent
Inspect

List the ordered city associations for a trip. Returns trip_city_id values used by update, remove, and reorder.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTrip ID.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds behavior the annotations do not: results are ordered, and the salient return field is trip_city_id. It omits pagination/limit behavior, which keeps it below a 5.

Agents need to know what a tool does to the world before 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, no filler, with the core purpose front-loaded and the return-value detail following. 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?

With no output schema, the description usefully names the returned identifier, which is the piece an agent needs to chain into update/remove/reorder. It is adequate for a simple single-param read tool, though it could note what else each association contains and the ordering criterion.

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 a single parameter with 100% schema description coverage, so the schema already documents trip_id as a UUID. The description adds no format, constraint, or scoping detail beyond that. Baseline 3 is appropriate when the schema does the work.

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: 'List the ordered city associations for a trip.' It also references the sibling operations (update, remove, reorder) that consume its output, which implicitly separates it from those mutating tools. It stops short of an explicit 'this is the read counterpart to trip_city_add/remove/update' statement, so it is clear but not maximally differentiated.

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 a concrete reason to call it: to obtain trip_city_id values needed by update, remove, and reorder. That is real usage context rather than a vague hint. There is no explicit when-not guidance or a named alternative, 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.

trip_cities_reorderReorder Trip CitiesA
DestructiveIdempotent
Inspect

Replace the trip city order using every current trip_city_id exactly once. The first city drives the automatic cover when an image is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTrip ID.
ordered_trip_city_idsYesComplete ordered list of current trip_city_id values.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, yet the description adds real value: it discloses the 'every current trip_city_id exactly once' validation requirement and the side effect that the first city drives the automatic cover image. That side-effect disclosure goes meaningfully beyond structured data.

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

Conciseness5/5

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

Two tight sentences with the core operation front-loaded and the constraint and side effect following. Zero 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 two-parameter mutation whose annotations already carry the safety profile, the description covers the operation, the enumeration constraint, and a notable side effect. It could say what happens on an incomplete/invalid list, but nothing essential for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description reinforces the schema's 'Complete ordered list' wording with the sharper 'exactly once' constraint, clarifying that this is a full replacement rather than a delta. This adds a validation nuance beyond the schema text.

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+resource ('Replace the trip city order') and adds the key constraint that every current trip_city_id is used exactly once, which implicitly separates it from trip_city_add/remove/update. It does not explicitly name a sibling, but the operation is unambiguous to an agent.

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 by 'Replace the trip city order' and the required full enumeration, but there is no explicit when-to-use vs alternatives guidance and no exclusions. Adequate minimum viability for a reorder operation, with the constraint carrying most of the routing weight.

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

trip_city_addAdd Trip CityB
Idempotent
Inspect

Add a city to the end of a trip's ordered city list. This is idempotent when an equivalent city is already present.

ParametersJSON Schema
NameRequiredDescriptionDefault
city_idNoExact city catalog ID. Provide this OR city_name.
countryNoOptional country name or country code used to disambiguate city_name.
trip_idYesTrip ID.
city_nameNoExact city name. Provide this OR city_id; ambiguous names return candidates.

TDQS

B3.4/5.0
Behavior3/5

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

The core idempotency claim duplicates the idempotentHint=true annotation, so no credit there. However, the description adds genuine behavioral context the annotations lack: the city is appended to the END of an ordered list, and idempotency applies specifically when an 'equivalent' city is already present, which qualifies the annotation meaningfully.

Agents need to know what a tool does to the world before 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 zero padding; the append-position behavior is front-loaded and the idempotency caveat follows immediately.

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 mutation with a fully documented schema and annotations covering the safety profile (not read-only, not destructive, idempotent), the description covers the essential append semantics. It stops short of addressing what happens on ambiguous city_name or a missing trip, but those gaps are minor against the rich structured fields.

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 city_id, city_name, country and trip_id are already fully documented, including the OR-relationship and disambiguation behavior. The description adds nothing about parameter syntax or usage, so the baseline of 3 applies.

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

Purpose4/5

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

The description gives a specific verb (add) and resource (city to a trip's ordered city list) and even pinpoints the append position, which implicitly separates it from trip_cities_reorder and trip_city_update. It does not explicitly name those siblings, so an agent gets clear purpose but no direct routing cues.

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 when/when-not guidance and no mention of the neighboring tools (trip_city_update, trip_cities_reorder, trip_city_remove, cities_search). The idempotency note hints at repeat-call behavior but provides no selection guidance.

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

trip_city_removeRemove Trip CityA
DestructiveIdempotent
Inspect

Remove one city association from a trip by trip_city_id. Confirm this destructive action with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTrip ID.
trip_city_idYesTrip-city association ID returned by trip_cities_list.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds a genuinely useful behavioral requirement (user confirmation before executing) that goes beyond the annotations, but does not describe what is actually removed beyond the association or any auth requirements.

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

Conciseness5/5

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

Two short sentences, the operation stated first and the confirmation caveat second. No filler or redundancy; every clause 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?

For a two-parameter destructive mutation with no output schema, the description covers the core action, the identifier scoping, and the confirmation requirement. It is largely complete, missing only minor details such as the effect on trip ordering or auth needs.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are fully documented in the schema itself. The description only restates 'by trip_city_id' without adding syntax, format, or sourcing detail beyond what the schema provides, 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?

States a specific verb and resource ('Remove one city association from a trip') and scopes it precisely via 'by trip_city_id'. The verb cleanly separates it from siblings like trip_city_add and trip_city_update, though it doesn't name those alternatives explicitly.

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?

Provides one clear directive -- confirm the destructive action with the user first -- which implies the when-to-use context. However, it names no alternative tools (e.g., trip_city_update if the intent was to change rather than remove) and gives no conditions or prerequisites beyond the confirmation step.

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

trip_city_updateUpdate Trip CityA
DestructiveIdempotent
Inspect

Replace one trip-city association with another city. This never edits the shared city catalog record.

ParametersJSON Schema
NameRequiredDescriptionDefault
city_idNoExact city catalog ID. Provide this OR city_name.
countryNoOptional country name or country code used to disambiguate city_name.
trip_idYesTrip ID.
city_nameNoExact city name. Provide this OR city_id; ambiguous names return candidates.
trip_city_idYesTrip-city association ID returned by trip_cities_list.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the mutation profile is known. The description adds a genuinely useful side-effect boundary — that the shared city catalog record is never edited — which annotations cannot express and which guards against a plausible catastrophic misunderstanding.

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

Conciseness5/5

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

Two short sentences with zero waste; the action is front-loaded and the scoping caveat follows. Nothing could be removed without losing information.

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

Completeness4/5

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

For a 5-parameter, 2-required mutation tool with fully documented schema and no output schema, the description plus annotations cover the essentials. It stops short of covering prerequisites, failure modes (e.g. ambiguous city_name), or whether the association's other fields survive the swap.

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 city_id/city_name either-or logic, country disambiguation, and the trip_city_id provenance are all fully documented in the schema. The description adds no parameter meaning beyond that, so the 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?

States a specific verb and resource: 'Replace one trip-city association with another city.' This is clearly distinguishable from the add/remove/reorder siblings in concept. It does not name those siblings directly, so the agent must infer the boundary from the verb alone.

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 word 'replace' implies this is for changing an existing association rather than creating one, but no when-to-use condition, prerequisite, or alternative (trip_city_add, trip_city_remove) is stated. The agent gets no explicit routing guidance.

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

trip_cover_updateUpdate Trip Cover PhotoA
Destructive
Inspect

Set a trip's cover photo from an image URL or a place_photo_reference returned by places_search/place_details. Becomes the trip's hero image immediately. Provide the trip_id from trips_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTineo trip ID (from trips_list).
image_urlNoDirect https:// image URL to use as the cover. Provide this or place_photo_reference.
place_photo_referenceNoA photoReference from a places_search/place_details photos entry. Provide this or image_url.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/overwrite profile is covered. The description adds the timing detail that the photo "Becomes the trip's hero image immediately," which is real added value, but it omits auth/permission requirements and any note about overwriting an existing cover.

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

Conciseness4/5

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

Three short sentences with the core action front-loaded. The only mild redundancy is restating the two source parameters and the trip_id origin, but it stays efficient overall.

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

Completeness4/5

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

For a low-complexity single-required-parameter setter with annotations covering the destructive/idempotent profile, the description covers purpose, valid input sources, and the immediate effect. It leaves return/response behavior and error handling unstated, but those are minor here.

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's note that place_photo_reference comes from places_search/place_details and that trip_id comes from trips_list largely restates what the schema already documents, adding only slight provenance context.

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

Purpose4/5

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

States a specific verb and resource ("Set a trip's cover photo") and names the exact target field, so it is distinguishable from siblings like trip_rename or trip_update. It stops short of explicitly routing away from those siblings, which keeps it at a 4.

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 by naming the two accepted photo sources and where trip_id comes from (trips_list), but gives no explicit when-not conditions or alternative routing. Usage 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.

trip_createCreate tripAInspect

Create a new trip with explicit start_date and end_date (YYYY-MM-DD), covering its planned segments. Returns its ID; the authenticated user becomes the owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTrip title MUST be a human-readable destination name (e.g. 'Barcelona', 'Tokyo & Kyoto (Oct 2026)'). DO NOT use hyphenated airport corridor codes (e.g. 'DAC-IST-BCN-IST-DAC-CXB'). If unsure, provide destination city name or leave generic.
end_dateYesTrip end date in YYYY-MM-DD format
start_dateYesTrip start date in YYYY-MM-DD format
destinationNoPrimary destination city or region

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation/non-idempotent profile is covered structurally. The description adds genuinely new context beyond that: it states the return value (the new ID) and the ownership side effect ('the authenticated user becomes the owner'), which the agent could not derive from annotations alone.

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 tight sentences with the core action front-loaded and no filler; the date format and return/ownership facts are packed into the second clause. Nothing is wasted, though it could be marginally tighter.

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?

There is no output schema, and the description compensates by naming the return value and the ownership effect. For a simple 4-parameter creation tool with full schema coverage and annotations, this is close to complete, with only edge cases (e.g., duplicate-trip behavior) unaddressed.

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 specifies the YYYY-MM-DD format and gives the detailed title-naming rule. The description only restates the date format and adds no semantics for title or destination beyond what the schema 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.

Purpose4/5

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

States a specific verb and resource ('Create a new trip') with the required date fields, clearly separating it from sibling mutators like trip_update, trip_rename, and trip_delete. It does not name any sibling explicitly, so the agent must infer the boundary, keeping it just below 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?

Usage is only implied: the verb 'create' signals use for new trips rather than existing ones, and 'covering its planned segments' hints at post-creation flows. There is no explicit when-to-use, when-not, or pointer to trip_update / segment_create for the contrasting cases.

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

trip_deleteDelete tripA
Destructive
Inspect

Delete a trip owned by the authenticated user and its itinerary segments. Requires confirmed=true after explicit user confirmation. Also removes connected calendar events when automatic sync is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesID of the trip to delete.
confirmedYesTrue only after the user explicitly confirms deleting this trip and its itinerary.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark this as destructive and non-idempotent, but the description adds critical behavior beyond them: cascade deletion of itinerary segments, the required confirmed flag after explicit user confirmation, and removal of connected calendar events when automatic sync is enabled. This gives the agent the side-effect profile needed to warn the user before invoking.

Agents need to know what a tool does to the world before 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 core action, followed by the confirmation requirement and the external side effect. Every sentence earns its place and no extraneous detail is included.

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 destructive two-parameter tool with full schema coverage and no output schema, the description covers ownership, cascade scope, confirmation gating, and external calendar sync side effects. An agent has everything needed to decide when and how to call it safely.

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 both parameters are already documented. The description reinforces that confirmed must be true only after explicit user confirmation, but adds no new format or syntax beyond what the schema already states, 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 ('Delete') and resource ('a trip owned by the authenticated user and its itinerary segments'), and the cascade scope distinguishes it from sibling tools like segment_delete or trip_restore. An agent can identify exactly what is removed 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?

It clearly states the prerequisite for use: confirmed=true after explicit user confirmation. It does not explicitly name an alternative (e.g., trip_restore) or a when-not-to-use condition, but the confirmation gate and ownership scope provide strong operational guidance.

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

trip_detailsView trip itineraryA
Read-onlyIdempotent
Inspect

Get detailed information about a specific trip. The text response includes the trip summary plus a chronological list of every segment (flights, hotels, activities, etc.) with each segment_id, so you can chain directly to segment_details, segment_update, segment_delete, or flight_status_for_segment without another search. Also includes traveler count. For full per-segment details, use segment_details with the returned segment_id. Use sections and segment_types to filter the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe unique identifier of the trip to fetch details for
sectionsNoOptional: filter which sections to include in the response. Values: 'segments', 'travelers'. Default: all sections.
segment_typesNoOptional: filter segments by type. Values: Flight, Lodging, CarRental, Train, Transfer, Ferry, EventTicket, Parking, Activity, Note, Poll. Default: all types.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tripNo
canEditNo
capabilitiesNo
contractVersionNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real value beyond them: it discloses the shape of the response (trip summary, chronological segment list with segment_ids, traveler count) and the chaining affordance that saves a follow-up search. No auth, error, or rate-limit notes, so it isn't exhaustive.

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

Conciseness4/5

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

Front-loaded with the primary action and response contents, then chaining guidance, then filters. Efficient overall, though the segment_details routing is stated twice (once in the chain list, once as a separate sentence), which is mild redundancy.

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

Completeness5/5

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

For a read-only detail tool with an output schema and full annotation coverage, the description supplies everything needed to select and call it correctly: scope, response contents, downstream chaining, and filter 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 description coverage is 100%, so the schema already documents trip_id, sections, and segment_types with their allowed values. The description restates them as response filters without adding syntax or default semantics beyond what the schema says; 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 and resource ('Get detailed information about a specific trip') and immediately disambiguates from the sibling that overlaps most, segment_details, plus trip-level list tools. An agent can pick it 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?

Explicitly routes the agent: use the returned segment_id to chain into segment_details, segment_update, segment_delete, or flight_status_for_segment, and 'for full per-segment details, use segment_details.' It doesn't state when-not to use it versus trips_list or trips_hub, so it stops short of full coverage.

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

trip_renameRename tripA
DestructiveIdempotent
Inspect

Rename a trip owned by the authenticated user. Returns the old and new titles. May synchronize the title to the trip owner's connected calendars when automatic sync is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe ID of the trip to rename
new_titleYesThe new trip title

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare it is a mutating, idempotent, open-world, destructive operation. The description adds genuinely new context: it returns the old and new titles and may propagate the title to the owner's connected calendars when auto-sync is on, a side effect the annotations do not convey.

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

Conciseness5/5

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

Three tight sentences, each carrying distinct information: purpose, return value, and side effect. The purpose is front-loaded with no wasted 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?

With no output schema, the description usefully states what is returned (old and new titles) and warns of the calendar sync side effect. Complete for a simple two-parameter mutation.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (trip_id, new_title) are already documented. The description adds no syntax, format, or constraint detail beyond the schema, matching the baseline of 3.

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 (rename) and resource (trip) with a clear ownership scope ('owned by the authenticated user'). It is distinguishable from siblings like trip_update, though it does not explicitly contrast itself with 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?

There is no guidance on when to rename versus using the broader trip_update tool, nor any stated preconditions or exclusions. Usage is only implied by the tool's purpose.

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

trip_restoreRestore deleted tripA
Idempotent
Inspect

Restore a deleted trip owned by the authenticated user, together with the itinerary items that were removed when it was deleted (items deleted separately before that stay deleted). Call without trip_id to list recently deleted trips. Call with trip_id to preview the restore; nothing changes until the user explicitly confirms and you call again with confirmed=true. May re-add the trip to the owner's connected calendars when automatic sync is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idNoID of the deleted trip to restore. Omit to list recently deleted trips.
confirmedNoTrue only after the user explicitly confirms restoring this trip. Without it the tool only returns a preview.
expected_deleted_atNoOptional deleted_at value from the preview. The restore is refused if the trip's deletion has changed since then.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=true), yet the description still adds substantive behavior: the cascade scope of restored itinerary items, the exclusion of separately-deleted items, the two-phase preview/confirm flow, and the open-world side effect of re-adding the trip to connected calendars. No annotation is contradicted.

Agents need to know what a tool does to the world before 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, front-loaded with the core action and its cascade scope, then the mode routing and confirmation gate. Every sentence carries distinct, non-redundant information 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 mutation tool with no output schema, the definition covers the essential decision points: modes, confirmation gating, cascade behavior, and calendar side effects. Minor gaps remain around what the preview response contains, how far back 'recently deleted' reaches, and what happens on name conflicts, but nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, and the description adds meaning beyond the schema by explaining how the parameters interact as a workflow: omitting trip_id switches the tool into list mode, and confirmed=true is what unlocks the mutation. The expected_deleted_at concurrency guard is only explained in the schema, not elaborated here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Restore a deleted trip') plus a non-obvious scope: the itinerary items removed with the trip are also restored, while items deleted separately stay deleted. This distinguishes it clearly from sibling tools like trip_delete and trip_create, and the cascade rule is spelled out rather than left to inference.

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 routes between the tool's two modes: call without trip_id to list recently deleted trips, call with trip_id to preview. It also states the gating condition for the actual mutation ('nothing changes until the user explicitly confirms and you call again with confirmed=true'), leaving nothing to inference.

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

trips_hubMy TripsB
Read-onlyIdempotent
Inspect

Opens the Tineo trips app: browse current, upcoming, and past trips and open a trip's day-by-day itinerary. The user launches it from the ChatGPT sidebar or a conversation panel.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYes
sectionsYes
totalCountYes
activeCountYes
pastTruncatedYes
upcomingTruncatedYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety/state profile is fully covered. The description adds that it opens a browsable UI surface with itinerary views, which is light context but not rich disclosure beyond what annotations provide.

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

Conciseness4/5

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

Two sentences, no filler, with the core action (opening the trips app) front-loaded. The second sentence about launch surface is slightly tangential to the agent's decision but still compact.

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?

An output schema exists and annotations are rich, so return values and safety behavior need not be restated. For a zero-parameter UI-launch tool the description is essentially complete, with the only gap being overlap with sibling tools.

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 is the baseline-4 case; there is no parameter semantics for the description to explain or omit.

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

Purpose3/5

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

The description gives a concrete verb+resource ("opens the Tineo trips app") and lists what it contains (current/upcoming/past trips, day-by-day itinerary). However, it never distinguishes itself from siblings like trips_list or trip_details, which plausibly cover similar ground, so an agent cannot cleanly route between them.

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 user launches it from the ChatGPT sidebar or a conversation panel" implies this is a user-initiated app launch rather than a programmatic query, which is useful context. But there is no explicit when-to-use/when-not guidance relative to trips_list or trip_details.

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

trips_listList tripsA
Read-onlyIdempotent
Inspect

List the user's trips. Use this when the user wants to see their trips, search for a specific trip, or asks about their travel plans.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of trips to return. Defaults to 10, max 50.
searchNoSearch query to filter trips by destination, name, or location
statusNoFilter by trip status: all, upcoming, past, or ongoing. Defaults to all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tripsNo
filtersNo
totalCountNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the full safety profile is covered structurally. The description adds only the implicit 'user's trips' scoping and nothing about defaults, pagination, or result size, so its incremental value is thin.

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 short sentences, front-loaded with the core action, no filler. The second sentence restates 'see their trips' from the first while adding the search and travel-plans cases, a minor redundancy but not bloat.

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?

An output schema exists, so return values need no explanation, and all three parameters are fully documented. The remaining gap is sibling disambiguation: with trip_details, trips_hub, and search in the same namespace, the description gives an agent no basis for choosing this tool over them.

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 limit, search, and status are all documented in the schema, including the default of 10, max 50, and the status values. The description adds no additional parameter meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a clear verb and resource: 'List the user's trips.' It also scopes to the user's own trips rather than all trips. However, it never distinguishes itself from close siblings like trip_details, trips_hub, or the generic search tool, so an agent can't tell from the text alone why it would pick this over those.

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 trigger conditions: seeing trips, searching for a specific trip, or asking about travel plans. That covers the common cases well, but it names no alternatives or exclusions, so it offers no guidance on when to prefer trip_details or trips_hub instead.

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

trip_travelersList trip travelersB
Read-onlyIdempotent
Inspect

Get the list of travelers/participants for a specific trip. Returns names, emails, roles, and which segments each traveler is assigned to.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe unique identifier of the trip to get travelers for

Output Schema

ParametersJSON Schema
NameRequiredDescription
tripIdNo
canEditNo
travelersNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the return payload shape (names, emails, roles, segment assignments), which is modest extra context, but says nothing about ordering, pagination, or behavior when trip_id is unknown.

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 purpose and followed by the return contents; nothing is padded or repetitive. The second sentence is arguably redundant given the output schema, which keeps this just short of a 5.

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

Completeness4/5

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

For a single-parameter read tool with an output schema and full annotation coverage, the description is nearly sufficient: the agent knows what it does and what comes back, and the output schema handles return structure. The only real omission is guidance on when to prefer this over known_participants.

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 documents it at 100% coverage with a clear description ('unique identifier of the trip'). The description's phrase 'for a specific trip' merely restates the schema, adding no format, sourcing, or validation detail beyond 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?

States a specific verb ('Get the list of') and resource ('travelers/participants') and scopes it to a specific trip, which is clear enough to act on. However, it never names the adjacent 'known_participants' or 'trips_hub' siblings, so an agent must infer the boundary between trip-scoped and global participant lookups.

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 when-to-use guidance, no exclusions, and no alternatives. With sibling tools like known_participants, traveler_add, and traveler_assign in the same namespace, an explicit routing statement (e.g., 'use known_participants for the account-wide list') would be needed to lift this above no-guidance.

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

trip_updateUpdate tripA
Destructive
Inspect

Update trip dates, title, destination, or description for a trip the authenticated user can edit. May synchronize changes to the trip owner's connected calendars when automatic sync is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAlias for title
titleNoNew trip title (e.g., 'Japan October 2026')
trip_idYesThe ID of the trip to update
end_dateNoTrip end date in YYYY-MM-DD format
start_dateNoTrip start date in YYYY-MM-DD format
descriptionNoOptional trip description or notes
destinationNoPrimary destination city or region
destination_scopeNoRequired as 'trip' when changing destination on a trip that already has dated itinerary items.
destination_confirmedNoRequired true when changing destination on a trip that already has dated itinerary items; confirms this is a parent-trip change, not an item location correction.

TDQS

A3.6/5.0
Behavior4/5

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

With destructiveHint=true already declared, the description earns credit for disclosing a non-annotation behavioral trait: changes may propagate to the trip owner's connected calendars when automatic sync is enabled. It also states the edit-permission requirement. It stops short of covering partial-update semantics or reversibility.

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 tight sentences, front-loaded with the mutating action and its scope, then the side effect. Nothing is wasted, though the second sentence could be fused more compactly.

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?

Without an output schema, the description should ideally say what comes back and whether this is a partial or full update. It covers permission and calendar-sync side effects but leaves the update semantics (can a single field be changed? does omitting a field clear it?) and return behavior to inference.

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 itself explains the tricky conditional parameters (destination_scope and destination_confirmed). The description only restates the field list already present in the schema, adding no format, aliasing, or conditional detail. 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?

States a specific verb (Update) and resource (trip) plus the exact field families affected: dates, title, destination, description. However, it does not distinguish itself from the sibling trip_rename, which appears to overlap on the title-editing surface, so an agent must guess which tool to pick for a rename.

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 a trip the authenticated user can edit' gives a real precondition (edit permission) that narrows usage. But there is no when-not guidance and no mention of the alternative trip_rename or the more targeted trip_city_update / trip_cover_update siblings, so routing is only implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 73 tool updates
    • First observedaffiliate_program_catalog
    • First observedassistant_airbnb_search_trip
    • First observedassistant_airbnb_search_user
    • First observedaudit_travel_documents
    • First observedbatch_segment_create
    • First observedcities_search
    • First observeddiagnose_failed_import
    • First observeddiscover
    • First observedfetch
    • First observedflight_booking_link
    • First observedflight_quickadd
    • First observedflight_quickadd_lookup
    • First observedflight_route_lookup
    • First observedflight_status_for_segment
    • First observedforwarding_address_get_or_create
    • First observedfriend_request_accept
    • First observedfriend_request_decline
    • First observedfriend_request_resend
    • First observedfriend_request_send
    • First observedfriend_requests_pending
    • First observedfriends_list
    • First observedgenerate_packing_list
    • First observedget_day_of_travel_brief
    • First observedget_flight_airport_conditions
    • First observedget_flight_change_history
    • First observedget_routes
    • First observedget_travel_stats
    • First observedget_trip_expense_summary
    • First observedget_trip_weather
    • First observedground_transfer_booking_links
    • First observedimport_parse_text_preview
    • First observedknown_participants
    • First observedmentions_search
    • First observedplace_details
    • First observedplaces_search
    • First observedsearch
    • First observedsearch_airport_lounges
    • First observedsearch_attractions
    • First observedsearch_flight_prices
    • First observedsearch_hotels
    • First observedsearch_tours
    • First observedsegment_associate_place
    • First observedsegment_booking_links
    • First observedsegment_create
    • First observedsegment_delete
    • First observedsegment_details
    • First observedsegment_get_schema
    • First observedsegment_update
    • First observedsettings_read
    • First observedsettings_update
    • First observedsupport_ticket_create
    • First observedtineo_ping
    • First observedtrain_booking_link
    • First observedtravel_document_assign_trip
    • First observedtraveler_add
    • First observedtraveler_assign
    • First observedtraveler_update_email
    • First observedtrip_booking_links
    • First observedtrip_cities_list
    • First observedtrip_cities_reorder
    • First observedtrip_city_add
    • First observedtrip_city_remove
    • First observedtrip_city_update
    • First observedtrip_cover_update
    • First observedtrip_create
    • First observedtrip_delete
    • First observedtrip_details
    • First observedtrip_rename
    • First observedtrip_restore
    • First observedtrip_travelers
    • First observedtrip_update
    • First observedtrips_hub
    • First observedtrips_list

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    22 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources