Skip to main content
Glama

Server Details

Prepare audio-guided tours: templates, travel programs, trips and participants for tour guides.

Ownership verified
Status
Healthy
Uptime
89.6% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.4/5.0

Scored across 60 tools

Disambiguation4/5

Tools map to distinct resources (program, template, trip, slide, info card, schedule stop, participant, collectible) with clear per-resource actions, and descriptions actively disambiguate tricky pairs like list_my_trips vs list_my_departures vs list_my_sessions. Some overlap remains among the many ratings/analytics readers (get_my_ratings_summary, get_my_ratings_trend, list_my_ratings, get_my_session_ratings) and the parallel program/template card tools, but the scope of each is stated.

Naming Consistency4/5

Nearly all names follow a clean snake_case verb_noun pattern (add_/update_/delete_/get_/list_/reorder_/create_/duplicate_). The only wobble is the inconsistent 'my' prefix on read tools (get_my_program, list_my_trips) versus write tools (create_program, add_trip_item), which is a minor, mostly readable deviation.

Tool Count3/5

60 tools is heavy and reflects three near-parallel resource hierarchies (programs, templates, trips) each with items, info cards and reordering, which produces a large amount of CRUD repetition. The underlying platform is genuinely broad (trips, sessions, ratings, participants, collectibles, stats), so it is defensible, but it sits well above a comfortable surface size.

Completeness3/5

CRUD and lifecycle coverage is extensive for programs, templates, trips, items, slides, cards and participants, and analytics/ratings readers are well fleshed out. However, several descriptions point to operations that are not present in the surface (list_trip_participants, announce_trip_cancellation / trips:announce), creating dead ends an agent cannot resolve, and there is no session-creation or participant-edit path.

Available Tools

60 tools
add_program_info_cardAdd Program Info CardBInspect

Add an info/rule card to a program. Params: id (program uuid) + body { kind (info|rule), title, body } -- at least one of title OR body must be filled (the inner 'body' here is the card text).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
bodyNo
kindNo
titleNo
imageUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
updatedAtNoISO 8601 timestamp
itineraryIdNo

TDQS

B3.4/5.0
Behavior3/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 mutation, so the safety profile is covered. The description adds a genuinely useful validation rule absent from the schema: at least one of title or body must be filled. It does not address permissions or side effects, so a 3 is appropriate.

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

Conciseness4/5

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

Two tightly packed sentences with the core purpose front-loaded and the constraint appended. The parenthetical clarification earns its place by resolving the inner-body ambiguity, though the density is slightly high.

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 no explanation, and annotations cover the safety profile. The description covers both parameters, the nested structure, and the validation rule, leaving only usage guidance as a gap.

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

Parameters4/5

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

Schema description coverage is 0% and the parameters include a nested object, so the description carries real weight. It documents id as the program uuid, enumerates the nested body fields (kind, title, body), and importantly disambiguates the confusingly nested 'body' as the card text. This compensates well for the empty schema despite not covering the maxLength constraints.

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: 'Add an info/rule card to a program'. The name and description clearly convey the write operation and target entity. However, it does not explicitly differentiate itself from the sibling 'add_template_info_card', leaving the program-vs-template distinction to the name 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?

There is no 'when to use' guidance, no prerequisites, and no mention of alternatives such as 'add_template_info_card' or 'update_program_info_card'. Usage is only implied by the verb 'Add'.

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

add_program_itemAdd Program ItemAInspect

Add a stop/leg to a program. Params: id (program uuid) + body { templateId OR label (at least one required), dayNumber, notes, kind (tour|activity|place|meal|transfer|free_time|accommodation|info), startTime (HH:MM, OPTIONAL -- do NOT pass it if the time is unknown; the order is already set by dayNumber + insertion order/reorder_program_items), locationText (stop name/address for the map route), locationLat, locationLng, durationMin, headsetPolicy }. headsetPolicy (null clears) = { level: required|recommended|optional, groupThreshold? (int 1..500, applies to groups LARGER than this), reason (1..300, short rule summary or rationale, in the content's language), sourceUrl? (https only; REQUIRED when level=required), sourceLabel? (1..120) }. Only set level=required when a written rule exists and you have its https source; never invent rules. Copied into trips created from this program.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
kindNo
labelNo
notesNo
createdAtNoISO 8601 timestamp
dayNumberNo
imageUrlsNo
sortOrderNo
startTimeNo
templateIdNo
durationMinNo
itineraryIdNo
locationLatNo
locationLngNo
locationTextNo
headsetPolicyNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the mutation/non-idempotent profile, but the description adds real behavioral context beyond them: the item is 'Copied into trips created from this program' (a lasting side effect), and headsetPolicy null clears the policy. That is meaningful disclosure the annotations cannot express.

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?

Dense and front-loaded ('Add a stop/leg to a program'), with the highest-value constraints (at-least-one-of, startTime warning, never invent rules) placed prominently. It is long, but given a nested object and 0% schema coverage most sentences earn their place; a few parenthetical length limits could be trimmed.

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 needn't be described, and the description covers the nested headsetPolicy object, enum values, ordering model, and side effects. Nothing an agent needs to invoke this correctly appears missing.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full burden and does so thoroughly: it documents every body field, the templateId-OR-label 'at least one required' rule (absent from the schema), headsetPolicy null-clearing semantics, the groupThreshold 'applies to groups LARGER than this' meaning, and the sourceUrl-required-when-level=required constraint.

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: 'Add a stop/leg to a program.' The agent immediately knows the operation and the target entity. It does not, however, explicitly distinguish itself from siblings like add_trip_item or add_template_schedule_stop, leaving the program-vs-trip-vs-template distinction 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?

Provides strong conditional usage guidance: do not pass startTime when the time is unknown because ordering comes from dayNumber + insertion order/reorder_program_items, and only set headsetPolicy level=required when a written rule and its https source exist. It never names an alternative tool or an explicit when-not-to-use-this-tool condition, 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.

add_template_info_cardAdd Template Info CardBInspect

Add an info card to a template. Params: id (uuid) + body { title (required), description, triggerType, linkedScheduleStopId }.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
titleNo
imageUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
templateIdNo
descriptionNo
triggerTypeNo
linkedScheduleStopIdNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations declare it as non-readOnly, non-idempotent, non-destructive, closed-world. The description restates the operation but adds no behavioral context beyond what annotations provide—no rate limits, no authorization needs, no side effects. The annotations carry most of the burden.

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

Conciseness4/5

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

Very concise—two sentences, front-loads the purpose, then lists parameters. No wasted words. However, the parameter list is abrupt and could be better formatted for readability.

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

Completeness2/5

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

With an output schema present, return values needn't be described, but the description fails to cover key contextual details: what an info card is, how it relates to schedules/stops, whether the template must exist, or what happens on failure. For a mutation with nested body object and zero schema descriptions, this is incomplete.

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

Parameters3/5

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

Schema description coverage is 0%, so the schema has no parameter descriptions. The description briefly lists parameter names (id, title, description, triggerType, linkedScheduleStopId) and notes title is required, but adds no format, constraints, or semantics beyond what the schema structure already shows. Baseline for low coverage is lower, but the description does provide some parameter enumeration.

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: 'Add an info card to a template.' This clearly distinguishes it from update_template_info_card and reorder_template_info_cards. Sibling differentiation is implicit through the verb but not explicitly called out, keeping it just below 5.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g., must the template exist first?), and no mention of alternatives like add_program_info_card. The agent must infer usage entirely from the name and description.

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

add_template_schedule_stopAdd Template Schedule StopAInspect

Add a schedule stop to a template. Params: id (uuid) + body { title (required), description, estimatedTime (min), latitude, longitude, linkedInfoCardId, linkedSlideIndex, headsetPolicy }. headsetPolicy (null clears) = { level: required|recommended|optional, groupThreshold? (int 1..500, applies to groups LARGER than this), reason (1..300, short rule summary or rationale, in the content's language), sourceUrl? (https only; REQUIRED when level=required), sourceLabel? (1..120) }. Only set level=required when a written rule exists and you have its https source; never invent rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
titleNo
latitudeNo
createdAtNoISO 8601 timestamp
longitudeNo
sortOrderNo
templateIdNo
descriptionNo
estimatedTimeNo
headsetPolicyNo
linkedInfoCardIdNo
linkedSlideIndexNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), so the bar is lower. The description adds real behavioral context beyond that: headsetPolicy null clears the policy (a mutation side-effect), sourceUrl is REQUIRED when level=required, and rules must not be invented. It stops short of stating permission requirements or duplicate/ordering 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?

Front-loaded with the purpose, then a dense param block where every parenthetical earns its place given the zero schema coverage. It is long but not padded, and the nested headsetPolicy rules are grouped logically.

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 explained, and annotations cover the safety profile. The nested headsetPolicy object is thoroughly specified. Gaps remain around authentication/authorization and what happens when adding a stop that already exists, but nothing essential to invoking the tool correctly is missing.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the load and mostly succeeds: it enumerates body fields and gives non-obvious semantics the schema cannot, such as groupThreshold applying to groups LARGER than the value, reason being in the content's language, and the conditional sourceUrl requirement. linkedInfoCardId and linkedSlideIndex are named but their meaning is left unexplained, so it is not fully compensating.

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 ('Add a schedule stop to a template'), which clearly distinguishes it from sibling mutators like add_template_info_card and add_text_slide. It doesn't explicitly name an alternative tool, but the resource is precise enough to route correctly.

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 meaningful conditional guidance embedded in the headsetPolicy block ('Only set level=required when a written rule exists and you have its https source; never invent rules'), but it governs a parameter rather than the tool choice. No explicit when-to-use vs update_template_schedule_stop or delete_template_schedule_stop is provided, 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.

add_text_slideAdd Text SlideAInspect

Add a TEXT slide to a template (at the end). Params: id (uuid) + body { caption }. IMAGE slides cannot be added through this channel -- upload them from the app/panel.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
typeNoOne of: image, text
captionNo
mediaUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
templateIdNo
thumbnailUrlNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the non-readonly, non-idempotent, non-destructive, closed-world profile, so the burden is light. The description adds useful behavioral detail beyond them: the new slide is appended ('at the end') and the image-slide channel is closed. It does not mention auth/permission requirements or lifetime of the change.

Agents need to know what a tool does to the world before 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 action and placement constraint, followed by the parameter summary and the exclusion. No filler or repetition.

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

Completeness4/5

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

For a small mutation tool with an output schema and annotations, this covers what is needed to call it correctly: action, target, placement, params, and the alternative channel for image slides. Only a tighter definition of the id parameter 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 0%, so the description should carry more weight than it does. It enumerates both params ('id (uuid) + body { caption }'), but 'id (uuid)' merely restates the schema's format field and never clarifies which entity the id identifies (presumably the template), nor adds any caption constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (add), resource (text slide), and target (template), plus positional scope ('at the end'). It immediately distinguishes itself from the many add_* siblings by naming the exact artifact type and constraining it to TEXT slides.

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 negative case: image slides cannot be added here and must come from the app/panel, which routes the agent away from a wrong invocation. It does not, however, point to any sibling tool (e.g. update_slide_caption or reorder_slides) for the adjacent operations.

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

add_trip_itemAdd Trip StopAInspect

Add a stop to a trip. Params: id (trip uuid) + body { templateId OR label, dayNumber, notes, kind, startTime (HH:MM), locationText, locationLat, locationLng, durationMin, headsetPolicy }. headsetPolicy (null clears) = { level: required|recommended|optional, groupThreshold? (int 1..500, applies to groups LARGER than this), reason (1..300, short rule summary or rationale, in the content's language), sourceUrl? (https only; REQUIRED when level=required), sourceLabel? (1..120) }. Only set level=required when a written rule exists and you have its https source; never invent rules. NO notification is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
kindNo
labelNo
notesNo
statusNo
tripIdNo
actualAtNoISO 8601 timestamp
createdAtNoISO 8601 timestamp
dayNumberNo
imageUrlsNo
sortOrderNo
startTimeNo
templateIdNo
durationMinNo
locationLatNo
locationLngNo
locationTextNo
sourceItemIdNo
headsetPolicyNo

TDQS

A4/5.0
Behavior4/5

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

Annotations mark this as a non-idempotent write with destructiveHint=false, and the description adds genuinely new behavior: "NO notification is sent," the "headsetPolicy (null clears)" clearing semantic, and the conditional requirement that sourceUrl is present when level=required. It does not mention permissions or authorization needed to modify a trip, but the extra disclosure goes beyond the annotations.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence and each subsequent clause adds a real constraint on an otherwise undocumented body. It is dense and long, but with 0% schema coverage the detail is earned rather than padding, so it lands just short of maximal conciseness.

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 nested-object create tool with an output schema (so return values need not be described), the definition covers the body shape, the trickiest nested field, and the notification behavior. Remaining gaps, such as permission requirements or how ordering/day placement behaves, are minor given what is already supplied.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: it annotates id as a trip uuid, gives formats (startTime HH:MM), states the templateId-OR-label relationship, and explains non-obvious semantics such as groupThreshold applying only to groups LARGER than the value and sourceUrl being required when level=required. This is meaning an agent could not recover from the bare 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?

"Add a stop to a trip" states a specific verb and resource, and the resource (trip stop) is distinguishable from siblings like add_template_schedule_stop or add_trip_participant without opening a schema. It stops short of naming the alternatives explicitly, so it is clear but not fully self-differentiating.

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 the create-verb framing rather than stated: there is no explicit when-to-use or when-not-to-use guidance and no sibling is named as the alternative. The one substantive guideline, "Only set level=required when a written rule exists... never invent rules," is a field-level rule rather than a routing instruction, so the reader must infer that this is the tool for mutating trip stops.

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

add_trip_participantAdd Trip ParticipantA
Idempotent
Inspect

Manually add a participant to a trip. Params: id (trip uuid) + body { displayName (required), email, phone }. Does NOT SEND an EMAIL (for an invite link use invite_trip_participant). Safe to retry: if the same person (same email or phone, or same name without conflicting contact details) is already on the trip, the existing participant is returned and no duplicate is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
emailNo
phoneNo
statusNo
addedByNo
joinedAtNoISO 8601 timestamp
createdAtNoISO 8601 timestamp
joinedViaNo
attendeeIdNo
displayNameNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations cover safety (destructiveHint=false, idempotentHint=true), but the description adds high-value context beyond them: it does NOT send an email, and it explains the dedup mechanism (same email/phone, or same name absent conflicting contact details) and that the existing participant is returned. This turns a bare idempotency hint into an actionable retry guarantee.

Agents need to know what a tool does to the world before 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 dense sentences, front-loaded with the core action, then params, then the no-email caveat and retry semantics. No filler; 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?

For a mutation tool with an output schema (return values needn't be explained) and full annotation coverage, the description supplies the missing pieces: side-effect disclosure (no email), routing to the alternative, and idempotency behavior. 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.

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it enumerates id (trip uuid) plus body fields displayName (required), email, phone. It conveys requiredness and the uuid nature of id, though it adds no format or validation nuance beyond what the schema enforces.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('add a participant to a trip') and explicitly differentiates from the sibling invite_trip_participant. An agent can distinguish the manual-add path from the invite path 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?

Names the alternative (invite_trip_participant) and the exact condition that selects it ('for an invite link'). The manual vs. invite distinction is stated, 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.

create_programCreate Travel ProgramBInspect

Create a new travel program (multi-day trip draft). Fields: name (required), description, language, estimatedDays, category, country, city, region, tags (max 20), visibility (personal|org).

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameYes
tagsNo
regionNo
countryNo
categoryNo
languageNo
visibilityNo
descriptionNo
estimatedDaysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
categoryNo
languageNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
ownerGuideIdNo
adoptionCountNo
coverImageUrlNo
coverThumbUrlNo
estimatedDaysNo
organizationIdNo
sourceItineraryIdNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, and openWorld=false, so the safety profile is covered. The word 'draft' is the one real addition, implying the program is not immediately published, but there is no note on permissions, required auth, or whether a separate publish step follows.

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 front-loaded sentence with the verb and resource first, followed by a compact field list. No filler, though the field list is largely redundant with the schema and could have carried semantics instead.

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 described, and annotations carry the mutation/safety profile. However, for a 10-parameter creation tool with zero schema descriptions, the definition leaves parameter semantics and the distinction from create_trip/create_template unresolved, which is the main remaining gap.

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

Parameters2/5

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

With 0% schema description coverage across 10 parameters, the description is the sole source of parameter meaning, yet it merely echoes the schema property names plus constraints already expressed in the schema (max 20 tags, personal|org enum, name required). It adds no format guidance (e.g., ISO language code, country/city conventions) or defaults.

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 travel program') and clarifies the object with '(multi-day trip draft)'. It does not explicitly distinguish itself from the neighboring create_trip and create_template, so the agent must infer the boundary from the resource noun 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?

No when-to-use guidance, no prerequisites, and no mention of the sibling tools (create_trip, create_template) that an agent might confuse this with. The sentence is entirely a field inventory rather than routing advice.

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

create_templateCreate Tour TemplateAInspect

Create a new tour template. Fields: name (required), description, language, estimatedDuration (min), tourType, tourFormat (single|multi_stop), category, country, city, region, visibility (personal|org -- org only for a company owner/manager), broadcastMode (offline|online|both), routerProfileId. The plan quota applies.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameYes
regionNo
countryNo
categoryNo
languageNo
tourTypeNo
tourFormatNo
visibilityNo
descriptionNo
broadcastModeNo
routerProfileIdNo
estimatedDurationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
guideIdNo
categoryNo
languageNo
tourTypeNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
tourFormatNo
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
adoptionCountNo
broadcastModeNo
collectibleIdNo
coverImageUrlNo
organizationIdNo
routerProfileIdNo
sourceTemplateIdNo
estimatedDurationNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar is lower, and the description adds genuine context beyond them: creation consumes plan quota, and the 'org' visibility value requires a company owner/manager role. It still omits what happens if quota is exhausted or which visibility/format defaults apply when fields are omitted.

Agents need to know what a tool does to the world before 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 purpose is front-loaded in one short sentence, followed by a dense field inventory where each entry carries information the schema lacks (required flag, units, enum values, permission constraint). There is no filler or repetition.

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

Completeness4/5

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

For a 13-parameter creation tool with an output schema (so return values need not be explained) and annotations covering the safety profile, the description covers the required field, value domains, quota impact, and a key auth constraint. Remaining gaps are defaults for omitted optional fields and any relationship to sibling creation 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?

Schema description coverage is 0%, so the schema documents only names and types; the description compensates well by marking name as required, giving units for estimatedDuration (min), and spelling out the allowed values for tourFormat, visibility, and broadcastMode plus the permission constraint on 'org'. It still leaves tourType, category, and routerProfileId semantically unexplained.

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 first sentence states a specific verb and resource ('Create a new tour template'), which is unambiguous and distinct from read/update siblings like get_my_template and update_template. It does not, however, distinguish itself from duplicate_template, which also produces a new template, leaving that routing decision to the agent.

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 statement of when to use this tool versus alternatives such as duplicate_template (copy an existing one) or create_program. The only contextual guidance is a parameter-level prerequisite ('org only for a company owner/manager') and 'The plan quota applies', neither of which tells the agent when this tool is the right choice.

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

create_tripCreate TripAInspect

Create a new TRIP from a program (the program's current state is snapshotted). Fields: programId (uuid, REQUIRED -- a trip is always a live instance of a program), name, startDate, endDate (YYYY-MM-DD), maxParticipants (null = unlimited), timezone (IANA name, e.g. 'Europe/Istanbul'). A new trip starts as a DRAFT and is NOT LISTED on the company website; to open it for sale/on the site, use publish_trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
endDateNo
timezoneNo
programIdYes
startDateNo
maxParticipantsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
statusNo
endDateNo
guideIdNo
joinCodeNo
timezoneNo
createdAtNoISO 8601 timestamp
joinTokenNo
programIdNo
startDateNo
updatedAtNoISO 8601 timestamp
cancelledAtNoISO 8601 timestamp
completedAtNoISO 8601 timestamp
cancelReasonNo
coverImageUrlNo
coverThumbUrlNo
organizationIdNo
stableLiveCodeNo
maxParticipantsNo
changedNotifiedAtNoISO 8601 timestamp
weatherCardsEnabledNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing lifecycle and visibility behavior: the program's current state is snapshotted, a new trip starts as DRAFT, and it is not listed on the company website until publish_trip is called. These are exactly the non-obvious side effects an agent needs for a create-mutation.

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 core action, then the field list, then the lifecycle note. It is dense but each clause earns its place; the parenthetical field list is slightly cramped but not wasteful.

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 6-param creation tool with 0% schema coverage, the description covers all parameters, the required one, the snapshot/draft semantics, and the publish hand-off. An output schema exists, so return values need not be described; nothing essential is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: programId is flagged REQUIRED uuid, dates are YYYY-MM-DD, maxParticipants uses null = unlimited, and timezone is an IANA name with an example. This adds format and semantic meaning the schema alone does not convey.

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

Purpose5/5

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

States a specific verb+resource ('Create a new TRIP from a program') and immediately distinguishes it from publish_trip and from create_program/create_template by naming the source entity. An agent can identify the operation and its lineage 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?

Provides clear context for use (a trip is always a live instance of a program, program state is snapshotted) and names the follow-up alternative publish_trip for the open-for-sale case. It stops short of stating exclusions such as when to create a program/template instead, so it is clear but not exhaustive.

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

delete_programDelete Travel ProgramA
DestructiveIdempotent
Inspect

Delete a travel program. Params: id (uuid). The program's non-completed trips without participants are deleted too (returned as deletedTrips { count, names }) and its listing is removed from the company website draft (publishing is a separate step); if an open trip with participants exists, deletion stops with itinerary.delete_blocked_by_trips (details.trips lists the blocking trips with id, name, status, participants; cancel or complete them first). Completed trips remain as history records (keptCompletedTrips).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
deletedTripsNo
keptCompletedTripsNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare destructiveHint/idempotentHint, but the description goes well beyond them: it specifies the cascade (non-completed trips without participants are deleted), what is preserved (completed trips kept as history, keptCompletedTrips), the side effect on the website draft, and the exact blocking error code itinerary.delete_blocked_by_trips with its details.trips payload. This is rich, non-redundant behavioral disclosure.

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

Conciseness4/5

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

Front-loaded with the action, then the cascade and failure semantics; nearly every clause carries real information. It is dense and would scan better as short clauses or bullets, but there is 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 destructive tool with a single required param and an output schema, the description covers the cascade scope, the partial-deletion outcome, the blocking failure mode, and the preserved history. Nothing an agent needs in order to call it safely 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 0%, so the description must compensate, and it only says "id (uuid)" – information already conveyed by the schema's format/pattern. It does not say which program the id refers to or where to obtain it, so it adds little beyond the structured field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ("Delete a travel program") that cleanly distinguishes it from the delete_trip, delete_template, and delete_*_item siblings. An agent can identify the target entity 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 clear precondition for invocation and a remedy: deletion stops if an open trip with participants exists, and the agent is told to cancel or complete them first. It also notes publishing is a separate step, but it never compares against a non-destructive alternative (e.g. update_program) for cases where removal is not intended.

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

delete_program_info_cardDelete Program Info CardC
DestructiveIdempotent
Inspect

Delete a program info card. Params: id (program uuid), cardId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
cardIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo

TDQS

C2.7/5.0
Behavior2/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 safety profile is covered. The description adds nothing beyond restating the parameter names — no info on irreversibility, permissions, or side effects like card reindexing.

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?

Very short and front-loaded with the operation, though the param listing reads as a compact dump rather than earned prose. No waste, but minimal substance.

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

Completeness2/5

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

A destructive mutation tool with 0% schema coverage and no usage guidance should do more: explain authorization, cascade effects, and when deletion is appropriate. Output schema exists so return values needn't be explained, but the gaps elsewhere are significant.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden but only labels the params (id = program uuid, cardId = uuid). It clarifies id is a program UUID, but provides no constraint, format, or relationship detail beyond the schema's own types.

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 (program info card), clearly distinguishing it from siblings like delete_program, delete_program_item, and delete_template_info_card. Lacks deeper scoping detail but the operation 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?

No guidance on when to use this vs alternatives such as update_program_info_card or reorder_program_info_cards, and no mention of prerequisites (e.g., ownership, published-state restrictions). Usage is only implied by the name.

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

delete_program_itemDelete Program ItemC
DestructiveIdempotent
Inspect

Delete a program stop. Params: id (program uuid), itemId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
itemIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
imageUrlsNo

TDQS

C2.8/5.0
Behavior2/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 safety profile is covered. The description merely repeats 'Delete' and adds nothing about permanence, cascade effects on ordering, or required permissions, so it earns no credit beyond the structured fields.

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 action, with no filler. It is terse to the point of under-specification rather than wasteful.

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 annotations carry the safety profile. However, for a destructive two-parameter mutation with zero schema descriptions, the definition leaves provenance of the ids and any usage context unaddressed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies that 'id' is the program uuid, which is genuinely useful, but 'itemId (uuid)' only restates the format already present in the schema and does not explain what an item is or how to obtain its id.

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 ('Delete a program stop'), which an agent can distinguish from delete_program (whole program) and delete_program_info_card. The slight mismatch between 'stop' in the description and 'item'/'itemId' in the schema adds minor ambiguity, but the intent is clear.

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

Usage Guidelines2/5

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

No statement of when to use this versus alternatives such as update_program_item, delete_program, or reorder_program_items. There are no prerequisites, no exclusions, and no contextual guidance beyond the bare operation.

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

delete_slideDelete SlideB
DestructiveIdempotent
Inspect

Delete a slide. Params: id (template uuid), slideId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
slideIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
typeNoOne of: image, text
captionNo
mediaUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
templateIdNo
thumbnailUrlNo

TDQS

B3.1/5.0
Behavior2/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 safety profile is fully covered structurally. The description adds nothing beyond this - no note on permanence, whether deletion can be undone, or side effects on slide ordering - so it earns no credit above the annotation baseline.

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

Conciseness5/5

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

Two short clauses, action front-loaded, zero filler. Every word contributes to identifying the tool and its inputs.

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. However, for a destructive, irreversible operation the description is thin - it omits any confirmation, permission, or cascading-effect context an agent should know before invoking a delete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load, and it does partially: it labels 'id' as the template uuid and 'slideId' as the slide uuid, disambiguating two otherwise identical uuid params. It still omits format constraints already enforced by the schema pattern, but the added meaning is real.

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 ('Delete a slide'), which is clear and unambiguous. It doesn't differentiate itself from siblings like update_slide_caption or reorder_slides, but the destructive action is obvious enough for an agent to select it correctly.

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 guidance, no preconditions, and no mention of alternatives. The agent gets no signal about when deletion is appropriate versus reordering or editing a slide.

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

delete_templateDelete Tour TemplateB
DestructiveIdempotent
Inspect

Delete your own template (together with its sub-resources). Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo

TDQS

B3.4/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 safety profile is covered. The description adds genuine value beyond annotations by disclosing that sub-resources are deleted along with the template, which is not inferable from the structured fields.

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, front-loaded sentences with no filler; the destructive cascade is stated up front and the param note is compact. The 'Params:' shorthand is terse but readable.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the single param is trivial. However, for a destructive, irreversible-by-design tool the description omits preconditions such as ownership/permission limits or whether published templates can be deleted.

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%, but there is only one required parameter of an obvious kind. The description restates 'id (uuid)', which is already conveyed by the schema's format/pattern, and adds no syntax, sourcing, or sourcing-of-id guidance.

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 (your own template), and adds the scope constraint 'your own' plus cascade behavior. It is clear enough to separate from write/update siblings, though it does not explicitly distinguish itself from delete_template_info_card or delete_template_schedule_stop.

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, when-not-to-use, or alternative routing guidance. The agent must infer that this is the whole-template deletion versus the many sub-resource delete siblings.

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

delete_template_info_cardDelete Template Info CardC
DestructiveIdempotent
Inspect

Delete an info card. Params: id (template uuid), cardId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
cardIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
imageUrlNo

TDQS

C2.6/5.0
Behavior2/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 safety profile is covered elsewhere. The description adds nothing beyond that – it does not say whether the delete is permanent, what happens to adjacent card ordering, or what authorization is needed.

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 action and followed by the parameter list. No padding, though the parameter list largely restates the schema.

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

Completeness2/5

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

An output schema exists so return values need not be described, and annotations carry the destructive/idempotent profile. But for a destructive operation sitting in a dense cluster of delete_* siblings, the description omits the disambiguation and side-effect context an agent needs to invoke it confidently.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it does partially: it labels id as the "template uuid", which clarifies scope beyond the bare UUID string in the schema, and confirms cardId is a UUID. However it does not explain the relationship between the two ids or what happens if they mismatch.

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?

"Delete an info card" states a verb and a resource, but the resource is ambiguous given the sibling set contains both delete_program_info_card and delete_template_info_card. The description never says "template", leaving only the tool name to disambiguate.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the near-identical sibling delete_program_info_card that an agent must choose between. Usage must be inferred entirely from the name.

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

delete_template_schedule_stopDelete Template Schedule StopC
DestructiveIdempotent
Inspect

Delete a schedule stop. Params: id (template uuid), stopId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
stopIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

C2.9/5.0
Behavior2/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 safety profile is covered structurally. The description adds nothing beyond that: it doesn't say the deletion is permanent, whether it cascades to related schedule data, or what authorization is required. It neither contradicts nor enriches 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 short fragments, front-loaded with the action and immediately followed by the parameters. Nothing is wasted, though the terseness borders on under-specification rather than true conciseness.

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

Completeness2/5

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

For a destructive, zero-schema-coverage tool, the description is thin. An output schema exists so return values need no explanation, but the agent still lacks guidance on permissions, cascade effects, and when deletion is appropriate versus updating the stop.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it partly does by labeling id as the 'template uuid' and stopId as an id — a meaningful disambiguation between the two UUIDs. However, it adds no format, constraint, or relationship detail beyond the parameter names already visible in the schema.

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

Purpose4/5

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

States a specific verb and resource ('Delete a schedule stop'), which is enough to distinguish it from siblings like delete_template, delete_template_info_card, and update_template_schedule_stop. It is clear but does not explicitly say 'template' schedule stop, relying on the name for that scope.

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 guidance, no mention of prerequisites or permissions, and no pointer to alternatives (e.g., update_template_schedule_stop or reorder_template_schedule_stops). The agent gets no help deciding when this tool is the right choice.

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

delete_tripDelete TripA
Destructive
Inspect

Permanently DELETE a trip (a wrong or duplicate departure, or one whose program was deleted). Works only on a trip that has no (joined) participants and is not completed; for a trip with participants use announce_trip_cancellation. NO notification is sent. Params: id (trip uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
deletedNo

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 and readOnlyHint=false, but the description adds non-derivable traits: the deletion is permanent, no notification is sent to anyone, and it will only succeed on participant-free, non-completed trips. It stops short of covering auth/permission requirements or the failure response, which keeps it just 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.

Conciseness4/5

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

The critical constraint (permanent deletion) and the routing alternative are front-loaded, and the parenthetical examples add genuine disambiguation rather than filler. It is dense, packing preconditions, alternatives, and the param note into three compact sentences, though slightly cramped.

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 single-param tool with an output schema available, everything an agent needs is present: what is destroyed, permanence, notification behavior, preconditions, and the sibling to use instead. Return values need not be described since an 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 description coverage is 0%, so the description must carry the parameter burden; it does by naming 'id (trip uuid)', which resolves which identifier the required field expects. The schema already supplies the uuid format and pattern, so no further syntax detail is needed for a single required param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Permanently DELETE a trip') and immediately narrows applicability to wrong/duplicate departures or trips whose program was deleted. It distinguishes itself from the sibling delete_trip_item and from announce_trip_cancellation, so an agent can select it 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 Guidelines5/5

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

Gives explicit preconditions ('only on a trip that has no (joined) participants and is not completed') and an explicit alternative plus the condition that selects it ('for a trip with participants use announce_trip_cancellation'). This is exactly the when-to-use / when-not-to-use routing an agent needs.

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

delete_trip_itemDelete Trip StopB
DestructiveIdempotent
Inspect

Delete a trip stop. Params: id (trip uuid), itemId (uuid). NO notification is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
itemIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
labelNo

TDQS

B3/5.0
Behavior3/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 safety profile is covered. The description adds one genuinely useful piece of behavioral context not in annotations: 'NO notification is sent.' It omits permission requirements, whether the delete is hard or soft, and behavior on a missing item.

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 fragments, action front-loaded, zero filler. Slightly terse rather than over-written, but nothing is wasted.

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 destructive/idempotent profile. However, for a destructive mutation the description says nothing about permissions, side effects on ordering, or failure behavior with an invalid itemId.

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

Parameters2/5

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

Schema description coverage is 0% and both params are required, so the description must carry the meaning. It labels id as the 'trip uuid' (useful) but describes itemId only as '(uuid)', giving no indication that it identifies the specific trip stop to remove.

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: 'Delete a trip stop', which is unambiguous against add_trip_item/update_trip_item. It does not differentiate itself from the broader delete_trip or delete_template_schedule_stop siblings, but the action on a trip stop is clear.

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 update_trip_item or set_trip_item_status, nor any prerequisite or exclusion. The agent is left to infer usage entirely from the name.

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

duplicate_programDuplicate Travel ProgramBInspect

Deep-copy a program (create a variant). Params: id (uuid) + body { name?, visibility? }.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
categoryNo
languageNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
ownerGuideIdNo
adoptionCountNo
coverImageUrlNo
coverThumbUrlNo
estimatedDaysNo
organizationIdNo
sourceItineraryIdNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-idempotent, non-destructive, closed-world. The description adds genuine value with 'Deep-copy,' signaling that nested content (items, cards, slides) is replicated rather than referenced, and 'create a variant' implying a new entity each call. It still omits what is and isn't copied, whether the source is untouched, and how repeated calls behave.

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 compact sentences with the core action front-loaded and no filler. It is arguably over-terse for a tool with 0% schema description coverage, but nothing is wasted.

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. However, for a mutation tool with nested body objects and an undocumented enum, the definition leaves gaps: the visibility semantics, the required-body-but-optional-fields ambiguity, and any authorization requirement on the source program are all unstated.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden, but it only restates the parameter names and types already visible in the schema ('id (uuid) + body { name?, visibility? }'). It adds no meaning: no default naming behavior, no note that visibility falls back to the source program's setting, and no explanation of the personal/org enum values.

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 ('Deep-copy a program') and adds the outcome ('create a variant'), which separates it from create_program and mirrors the sibling duplicate_template. It does not explicitly name create_program as the alternative for a from-scratch program, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

The description never says when to duplicate versus create a new program, nor any precondition (e.g., must own or have access to the source program). 'Create a variant' hints at intent but gives no selection criteria or exclusions.

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

duplicate_templateDuplicate Tour TemplateAInspect

Copy your own template (or a company template open to you) into a NEW template; sub-resources are deep-copied. Params: id (uuid) + body { visibility? }. The copy gets an AUTOMATIC name -- to rename it, call update_template afterwards. The plan quota applies.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
guideIdNo
categoryNo
languageNo
tourTypeNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
tourFormatNo
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
adoptionCountNo
broadcastModeNo
collectibleIdNo
coverImageUrlNo
organizationIdNo
routerProfileIdNo
sourceTemplateIdNo
estimatedDurationNo

TDQS

A4.2/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: sub-resources are deep-copied, the copy receives an automatic name, and the plan quota applies. Annotations only flag it as a non-idempotent, non-destructive write, so this extra context is valuable; it stops short of explaining what visibility does or what happens when the quota is hit.

Agents need to know what a tool does to the world before 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 dense sentences, front-loaded with the core action and scope, then the naming behavior and quota caveat. 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 no explanation, and the description covers ownership, deep-copy behavior, naming, and quota. The only gap is the meaning of the visibility enum, which affects the resulting template's state.

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

Parameters3/5

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

With 0% schema description coverage the description must carry parameter meaning, and it names both params (id uuid, body with optional visibility) and marks visibility as optional. However it never explains what 'personal' vs 'org' visibility does, so semantics remain thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Copy your own template ... into a NEW template'), and the parenthetical ownership scope plus the sibling names (update_template, duplicate_program) make clear what is being duplicated and what is not.

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

Usage Guidelines4/5

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

Gives a clear precondition (your own template or a company template open to you) and routes the agent to update_template for renaming after the copy. No explicit when-not-to-use guidance, but the ownership constraint covers the main eligibility question.

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

get_my_audienceGet My Audience BreakdownA
Read-only
Inspect

Your audience: country/language/device BREAKDOWN of participants (aggregate counts, not personal identities).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
byDeviceNo
byCountryNo
byLanguageNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that by disclosing the data nature ('aggregate counts, not personal identities'), telling the agent this is a privacy-safe aggregate rather than a PII listing.

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

Conciseness5/5

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

A single front-loaded sentence that leads with the resource and packs scope, dimensions and data-safety caveat with zero waste. Nothing redundant or 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 an output schema present, return-value detail is unnecessary, and a zero-param read-only tool has little else to explain. The privacy caveat plus dimension list covers what an agent needs, though naming a sibling alternative would round it out.

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 baseline is 4; there is no argument syntax the description needs to explain. Schema coverage is nominally 100% but vacuous given the empty object.

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 resource (audience breakdown by country/language/device) with the 'your/participants' scope, so an agent knows this returns aggregate audience demographics. It does not, however, distinguish itself from siblings like get_my_stats or get_my_ratings_summary, which could plausibly overlap in audience-analytics territory.

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 and no named alternative among the many get_my_* siblings. The only routing clue is implicit: 'your audience' suggests a demographic-reporting use case, leaving the agent to infer when this beats get_my_stats.

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

get_my_programGet Travel ProgramB
Read-only
Inspect

Details of one travel program: stops/items + info cards. Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
itemsNo
regionNo
statusNo
countryNo
canWriteNo
categoryNo
languageNo
createdAtNoISO 8601 timestamp
infoCardsNo
isCuratedNo
updatedAtNoISO 8601 timestamp
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
ownerGuideIdNo
adoptionCountNo
coverImageUrlNo
coverThumbUrlNo
estimatedDaysNo
organizationIdNo
sourceItineraryIdNo

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, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds only the return content hint (stops/items + info cards), which is modest value beyond the structured fields and the existing 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 short telegraphic fragments with zero waste, front-loading the resource and its payload. It is efficient, though the clipped style trades some readability for brevity.

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

Completeness3/5

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

With an output schema present, return values need not be explained, and annotations carry the safety profile, so the description is nearly complete. The remaining gap is routing guidance among the dense set of get_/list_ siblings (program vs template vs trip).

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%, but there is only one parameter and the schema itself declares type string, format uuid, and a strict pattern. The description's 'Params: id (uuid)' merely restates the schema without adding selection meaning, so a baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb+resource: retrieving details of a single travel program, and enumerates what it returns (stops/items + info cards). The singular framing implicitly distinguishes it from list_my_programs, but no sibling is named, 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 Guidelines2/5

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

No when-to-use guidance and no alternatives named. It does not tell the agent to reach for list_my_programs to enumerate or get_my_template/get_my_trip for the analogous resources, so routing is entirely implied by the singular name.

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

get_my_ratings_summaryGet My Ratings SummaryA
Read-only
Inspect

Your ratings summary: total count, average score and 1-5 star distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
distributionNo
totalRatingsNo
averageRatingNo

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, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that the output is an aggregate summary with specific metrics, which is mild behavioral context. It does not disclose sampling windows, auth requirements, or rate limits, so 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?

One short sentence that front-loads the subject ("Your ratings summary") and lists the returned metrics. Every word 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?

With an output schema present, the description need not explain return values in detail, and it does specify the key metrics. The description is complete for a zero-parameter read-only tool, though it could mention the absence of filtering or the 1-5 scale context. Given the output schema and annotations, this is sufficient.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description accurately conveys that no filtering arguments are needed, consistent with the empty schema. No additional parameter meaning is required.

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

Purpose4/5

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

The description clearly states a specific verb-resource pair: it returns the user's ratings summary with total count, average score, and 1-5 star distribution. This distinguishes it from list_my_ratings (raw list) and get_my_ratings_trend (time series), but the description doesn't explicitly name those siblings or frame the distinction.

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 the summary nature of the tool, but there is no explicit when-to-use guidance or mention of alternatives like get_my_ratings_trend or list_my_ratings. The agent is left to infer that this returns an aggregate overview rather than raw ratings.

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

get_my_ratings_trendGet My Ratings TrendB
Read-only
Inspect

Your rating trend: average stars + rating count as a time series. Params: days, granularity (day|week).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
granularityNoday

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

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, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the output is a time series of average stars plus count, which is useful, but it says nothing about default windows, scoping, or rate/aggregation behavior beyond that.

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 purpose and followed by the parameter summary. The 'Params:' clause largely restates the schema but the enum hint adds minor value; there is little waste.

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-value documentation is not required. The description covers purpose and parameter names, but for a tool sitting among several ratings siblings it should explain when this one is the right pick, which it does not.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It names both parameters and supplies the enum values for granularity (day|week), but it does not explain what 'days' controls, its default of 30, or how granularity interacts with the window.

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: it returns the user's rating trend, and it even specifies the content (average stars + rating count as a time series). However, it does not distinguish itself from close siblings such as get_my_ratings_summary or list_my_ratings, leaving the agent to guess which ratings tool fits.

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 and no alternatives named. With siblings like get_my_ratings_summary and list_my_ratings in the same namespace, the absence of routing guidance is a real gap.

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

get_my_sessionGet Tour SessionA
Read-only
Inspect

Details of one of your tours: session facts, participants as AGGREGATE COUNTS (total, by country, language and device type, average listening time), ratings (score + comment, no names) and live translation usage per language. Individual listener records are not returned. Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
tripIdNo
endedAtNoISO 8601 timestamp
ratingsNo
isOnlineNo
tourNameNo
tourTypeNo
startedAtNoISO 8601 timestamp
templateIdNo
itineraryIdNo
participantsNo
departureRunIdNo
infoCardsShownNo
durationSecondsNo
maxParticipantsNo
totalSlidesShownNo
translationUsageNo
localParticipantsNo
totalParticipantsNo
scheduleStopsVisitedNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safe read-only, closed-world profile, so the bar is lower, and the description still adds meaningful behavior: results are aggregates only, individual listener records are never returned, and rating comments are anonymized. It does not cover error or not-found behavior for an invalid id, which keeps it short 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.

Conciseness4/5

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

Front-loaded with the payload contents, and the 'individual listener records are not returned' clause is a high-value negative constraint that earns its place. Minor waste in the closing 'Params: id (uuid)' line, which duplicates 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?

With an output schema present and one required param, the definition covers everything needed to invoke it correctly and even pre-summarizes the return shape helpfully. The remaining gap is the origin of the id and behavior on a non-existent session.

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?

Only one parameter exists and the schema already supplies its uuid format and pattern, so the description's 'Params: id (uuid)' is largely restatement. It adds no provenance (where the id comes from) or constraints beyond the schema, which is squarely baseline territory.

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 retrieval action and enumerates exactly what comes back (session facts, aggregate participant counts, ratings, translation usage), which clearly separates it from get_my_session_ratings and get_my_stats. The only friction is the opening phrase 'Details of one of your tours', which blurs the session/tour distinction against the get_my_trip sibling.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: a detail-by-id fetch for a session already known to exist. There is no explicit when-to-use, no pointer to list_my_sessions as the source of the id, and no guidance on when to prefer the ratings-specific siblings.

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

get_my_session_ratingsGet Tour Session RatingsC
Read-only
Inspect

Ratings of one of your tours (score + comment + your own report status). Listener names are not returned. Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already establish this as a read-only, non-destructive call. The description adds one genuinely useful behavioral fact: listener names are omitted from the response, which signals a privacy constraint an agent could not get from annotations. It stops there, saying nothing about pagination or volume of ratings returned.

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 compact clauses, front-loaded with the returned resource, then the privacy note, then the parameter. No filler, though the closing "Params: id (uuid)" adds little beyond the schema.

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

Completeness3/5

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

An output schema exists, so return-value explanation is unnecessary, and annotations cover the safety profile. What is missing is routing among the many ratings-related siblings and disambiguation of the single id, which matters 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 0%, but there is only one self-evident parameter. The description does no more than restate it as "id (uuid)" and never clarifies whether the id is a session id or a tour id — a real ambiguity given the name says session and the description says tour.

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 names the resource ("Ratings of one of your tours") and enumerates the returned fields (score, comment, report status), which is more than a tautology. However it conflates "tours" with the "session" naming used in the tool name and title, and gives no distinction from close siblings like get_my_trip_ratings, get_my_ratings_summary, or list_my_ratings.

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 statement of when to use this tool versus get_my_trip_ratings, list_my_ratings, or get_my_ratings_summary, all of which sit in the same ratings family. The reader must infer the distinction purely from the name and the single required id.

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

get_my_statsGet My Tour StatsA
Read-only
Inspect

Your own all-time live tour stats: total tours (sessions), total/average participants, total/average duration in seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalToursNo
avgDurationNo
totalDurationNo
avgParticipantsNo
totalParticipantsNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scoping ('all-time', what metrics are aggregated, duration in seconds), but says nothing about auth/session requirements or refresh behavior beyond what annotations imply.

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

Conciseness5/5

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

A single well-formed sentence that front-loads the resource and then lists the metrics. 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-value detail is not required, and the annotations cover the safety profile. The description is nearly complete for a read-only aggregate, lacking only usage context relative to its similarly named siblings.

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

Parameters4/5

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

The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies for a no-parameter 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?

States a specific verb and resource ('get your own all-time live tour stats') and enumerates the returned metrics (total tours/sessions, total/average participants, total/average duration in seconds). However, with many get_my_* siblings (get_my_ratings_summary, get_my_audience, list_my_sessions) it never distinguishes itself from those alternatives.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance and names no alternatives, despite several plausible siblings that also summarize user data. A reader must infer the context entirely from 'all-time live tour stats' with no exclusions or routing hints.

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

get_my_templateGet Tour TemplateA
Read-only
Inspect

Details of one template: slides, info cards, schedule stops, routes. Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
routesNo
slidesNo
statusNo
countryNo
guideIdNo
categoryNo
languageNo
tourTypeNo
createdAtNoISO 8601 timestamp
infoCardsNo
isCuratedNo
updatedAtNoISO 8601 timestamp
isFavoriteNo
tourFormatNo
visibilityNo
collectibleNo
descriptionNo
publishedAtNoISO 8601 timestamp
adoptionCountNo
broadcastModeNo
collectibleIdNo
coverImageUrlNo
scheduleStopsNo
organizationIdNo
routerProfileIdNo
sourceTemplateIdNo
estimatedDurationNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the composition of the returned template (slides, cards, stops, routes), which is useful payload context, but says nothing about permissions, scoping, or behavior on a missing id.

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 terse clauses, front-loaded with the resource and its contents, with zero filler. Efficient, though the 'Params:' fragment is more note-like than sentence structure.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and read-only annotations cover the safety profile. For a single-parameter read tool the description is complete enough to invoke correctly, with only usage routing left implicit.

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%, but the schema itself declares a single required string with format uuid, so the parameter is structured. The description restates 'id (uuid)' — matching rather than extending the schema, adding no meaning 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 resource ('one template') and enumerates its contents (slides, info cards, schedule stops, routes). 'One template' implicitly distinguishes it from the sibling list_my_templates, but 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 Guidelines3/5

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

Usage is only implied: the singular 'one template' plus the required id suggest a fetch-by-id lookup, contrasting with list_my_templates. No explicit when-to-use, when-not-to-use, or alternative routing is provided.

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

get_my_tripGet TripA
Read-only
Inspect

Details of one trip: stops, info cards, change log and derived progress (day X/Y, completed stops). The participant list is NOT INCLUDED (it needs list_trip_participants + the trips:roster scope). Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
itemsNo
statusNo
endDateNo
guideIdNo
updatesNo
joinCodeNo
progressNo
timezoneNo
createdAtNoISO 8601 timestamp
infoCardsNo
joinTokenNo
programIdNo
startDateNo
updatedAtNoISO 8601 timestamp
cancelledAtNoISO 8601 timestamp
completedAtNoISO 8601 timestamp
liveJoinUrlNo
cancelReasonNo
liveJoinCodeNo
coverImageUrlNo
coverThumbUrlNo
organizationIdNo
stableLiveCodeNo
maxParticipantsNo
changedNotifiedAtNoISO 8601 timestamp
weatherCardsEnabledNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: the roster is deliberately omitted and requires a separate scope, and the response includes derived progress fields rather than raw data.

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

Conciseness4/5

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

Three tight clauses with the payload description front-loaded ahead of the exclusion note and the parameter recap. No filler sentences, though the trailing 'Params: id (uuid)' is redundant with 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?

An output schema exists, so return values need not be explained, yet the description still previews the payload. Combined with annotations covering safety and the explicit roster exclusion, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema coverage is 0%, but there is only one parameter and the description restates it as 'id (uuid)', which duplicates the schema's format: uuid rather than adding meaning. There is little else to say about a single identifier, so this is adequate but not additive.

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

Purpose5/5

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

Names a specific verb+resource (single trip's details) and enumerates the payload: stops, info cards, change log, derived progress (day X/Y, completed stops). This distinguishes it cleanly from list_my_trips and get_my_trip_ratings, which are its nearest siblings.

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

Usage Guidelines4/5

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

Explicitly states what is excluded (participant list) and routes the agent to the alternative (list_trip_participants plus the trips:roster scope). It does not state when to prefer this over list_my_trips, but the single-trip-by-id framing makes that implicit.

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

get_my_trip_ratingsGet Trip RatingsA
Read-only
Inspect

A trip's participant ratings (given after the trip is completed, optional): average, number of raters / participants, 1-5 distribution and comments (newest first). Participant NAMES are NOT returned (trips:roster is not required). Params: id (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
averageNo
ratingsNo
distributionNo
participantsNo

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which only cover read-only/openWorld safety) by disclosing that comments are sorted newest-first, that ratings are post-completion and optional, and explicitly that participant NAMES are NOT returned and roster permission is unnecessary. These are substantive behavioral details an agent cannot infer from annotations.

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

Conciseness5/5

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

A single dense sentence organized as: resource, return fields, sorting, exclusions, and parameter. Every clause earns its place with zero 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?

The output schema exists, so return-shape detail in the description is a bonus rather than a requirement, and the description still fully explains what is returned, its ordering, and the privacy limitation. 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.

Parameters3/5

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

The description mentions 'id (uuid)' which merely repeats what the schema already documents with a uuid format and pattern; schema description coverage is 0%, meaning the schema field lacks a description, but the type/format is clear. No additional semantic detail about which id (trip id) is required is added, though the context makes it evident.

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 ('trip's participant ratings') and details the exact shape of the return (average, rater count, distribution, comments). It doesn't explicitly differentiate itself from sibling rating tools like get_my_ratings_summary or get_my_session_ratings, but the scope 'trip' is clear.

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

Usage Guidelines4/5

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

Provides clear contextual conditions: ratings are 'given after the trip is completed, optional', and 'trips:roster is not required', signaling when this tool applies. It doesn't name an alternative sibling or state when NOT to use it, so it falls short of the top score.

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

invite_trip_participantCreate Participant Invite LinkA
Destructive
Inspect

Generate and return a SINGLE-USE invite token for an existing participant. Does NOT SEND an email -- you share the link yourself. Params: id (trip uuid), participantId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
participantIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
tokenNo
participantNo

TDQS

A4.4/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 readOnlyHint=false, so the safety profile is covered. The description adds genuine non-obvious context: the token is single-use and no email is dispatched, which explains the non-idempotent and 'destructive' character.

Agents need to know what a tool does to the world before 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 punchy sentences, front-loaded with the core action and scope, then the critical behavioral caveat. 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 shape need not be described, and the destructive/non-idempotent traits are disclosed across annotations and description. Only the participantId meaning is left to the schema, a minor gap for a two-param tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does partially: it labels id as the 'trip uuid', clarifying that the generic uuid is a trip identifier. It leaves participantId as a bare uuid label, so it compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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/return), the exact resource (SINGLE-USE invite token), and the target scope (an existing participant). An agent can distinguish this from add_trip_participant and remove_trip_participant without opening the schemas.

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

Usage Guidelines4/5

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

The explicit exclusion 'Does NOT SEND an email -- you share the link yourself' tells the agent what this tool will not do, which prevents a common misuse. It stops short of naming the sibling (add_trip_participant) as the alternative when adding a brand-new participant.

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

list_collectible_catalogList Collectible CatalogB
Read-only
Inspect

Souvenir magnet (collectible) catalog: ready-made platform magnets + your own magnets. Filters: search, category, country, city, tag, owner (platform|mine).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
cityNo
pageNo
limitNo
ownerNo
searchNo
countryNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
pageNo
limitNo
totalNo

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, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the result spans two ownership pools (platform and mine), which is useful scoping context, but says nothing about ordering, pagination behavior, or result shape.

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 compact sentences with no filler, front-loading the resource identity before the filter list. Dense but every clause carries content; only the lack of a listing verb keeps it from a 5.

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 described, and the description covers most filter axes. But with eight parameters, zero schema descriptions, and pagination parameters unmentioned, an agent still lacks enough to call the tool with full confidence.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate: it names six of the eight filters (search, category, country, city, tag, owner) and clarifies the owner enum values (platform|mine). However, it omits page and limit entirely and gives no format/length semantics for the text filters, leaving the compensation incomplete.

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 the resource clearly ('Souvenir magnet (collectible) catalog') and its two scopes (ready-made platform magnets + your own magnets), which distinguishes it from the link/unlink collectible siblings. The verb 'list' is only implied via 'catalog' and the title, but the noun and scope are specific enough for selection.

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 names filterable dimensions but never states when to use this tool, when not to, or what alternatives exist. With no sibling that lists collectibles, the agent must infer usage entirely from the tool name and filters.

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

list_my_departuresList My DeparturesA
Read-only
Inspect

History of PAST live tour runs grouped by run (how many sessions and participants each repeat run had). It does NOT list scheduled or upcoming trips; for upcoming departures, dates, capacity and spots left use list_my_trips.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond the annotations by disclosing the grouping semantics and what each group reports (session and participant counts), though it says nothing about pagination or result size.

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

Conciseness5/5

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

Two sentences with no waste. The core behavior is front-loaded and the exclusion plus alternative follow 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 not be explained. The description covers scope, aggregation shape, and the boundary with the sibling tool, leaving nothing an agent needs in order to call it correctly.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The schema is empty and the description correctly adds no parameter details, since there are none to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource (past live tour runs) and a specific aggregation (grouped by run with session and participant counts). It explicitly distinguishes itself from list_my_trips, so an agent can pick the right tool 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?

Explicitly states the negative case ('does NOT list scheduled or upcoming trips') and names the alternative (list_my_trips) with the condition that selects it (upcoming departures, dates, capacity, spots left). Nothing 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.

list_my_programsList Travel ProgramsA
Read-only
Inspect

Your travel programs (itineraries / draft trip plans) + the ones your company shares.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds genuine scope context by disclosing that results include both personal and company-shared programs, but says nothing about pagination, ordering or result size limits.

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

Conciseness5/5

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

A single compact sentence that front-loads the resource and immediately qualifies it with the shared-scope note. No filler and nothing that could be cut.

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 the description is not obligated to explain return values, and the annotations cover safety. What remains missing is the routing information relative to sibling list tools, which is the one thing an agent would still need.

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

Parameters4/5

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

The tool takes zero parameters, which sets the baseline at 4. There is no parameter surface for the description to illuminate, and it correctly avoids inventing filter semantics that the empty schema does not support.

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 resource and disambiguates the term 'program' as itineraries/draft trip plans, and defines the scope as the caller's own plus company-shared ones. It does not contrast itself with the nearby get_my_program, list_my_trips or list_my_templates siblings, so the differentiation is only partial.

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

Usage Guidelines2/5

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

No when-to-use guidance is given. The description never says when to reach for this list tool versus get_my_program for a single program, or versus list_my_trips/list_my_templates, all of which sit in the same sibling cluster and would plausibly be confused by an agent.

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

list_my_ratingsList My RatingsA
Read-only
Inspect

Ratings listeners left after your live tour sessions (feed across all your sessions; trip ratings come from get_my_trip_ratings). Listener names are not returned. Filters: minRating, maxRating (1-5), hasComment ('true'|'false'), flagged ('true'|'false'), search, dateFrom, dateTo (YYYY-MM-DD), sort (newest|oldest|highest|lowest). Pagination: page/limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNo
limitNo
dateToNo
searchNoCase-insensitive text search in the comment and the participant name.
flaggedNo'true' = only ratings flagged for moderation, 'false' = only unflagged ones.
dateFromNo
maxRatingNoHighest star rating to include (1-5).
minRatingNoLowest star rating to include (1-5).
hasCommentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
pageNo
limitNo
totalNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds non-obvious behavioral context: the result set spans all sessions and, notably, 'Listener names are not returned' — a privacy/return-content constraint not derivable from the schema. It does not mention auth or rate limits, but for a read-only list tool that is acceptable.

Agents need to know what a tool does to the world before 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 scope and the sibling exclusion before the filter enumeration. Three sentences, no filler — every clause carries either a routing constraint, a behavioral caveat, or a parameter format.

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 an output schema present, return values need no explanation. All 10 parameters are accounted for via the filter/pagination enumeration, the resource is scoped, and the trip-ratings boundary is drawn — nothing an agent needs to call this 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 only 40%, so the description must compensate, and it largely does: it enumerates every filter with format hints (minRating/maxRating 1-5, hasComment 'true'|'false', flagged 'true'|'false', sort newest|oldest|highest|lowest, dateFrom/dateTo YYYY-MM-DD) and notes pagination via page/limit. It stops short of stating defaults (page=1, limit=20) or the limit cap of 100, which the schema does expose.

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

Purpose5/5

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

States a specific verb (List) and resource (ratings) with the exact scope: 'Ratings listeners left after your live tour sessions,' plus 'feed across all your sessions.' It also explicitly names the sibling it is not, get_my_trip_ratings, so an agent can distinguish the two 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?

Clearly routes the agent away from this tool for trip ratings by naming get_my_trip_ratings as the alternative. However, it is silent on the other obvious siblings for this same resource — get_my_ratings_summary, get_my_ratings_trend, and get_my_session_ratings — so the when-to-use-versus-those decision 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.

list_my_sessionsList My Tour SessionsA
Read-only
Inspect

List your own completed tours (sessions), newest first, up to 500: name, date, duration, online/local, participant counts, slides and stops shown, rating average and count. No listener records.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: ordering ('newest first'), a hard cap ('up to 500'), and an explicit exclusion ('No listener records').

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 dense sentence, front-loaded with the core action and scope, then a colon-delimited field list. Every clause carries information, though the return-field enumeration is somewhat redundant given an output schema exists.

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, zero-parameter list tool with annotations covering safety and a present output schema, the description supplies the ordering, cap, and scope an agent needs. Nothing critical is missing, though an explicit sibling pointer would improve routing.

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

Parameters4/5

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

The schema has zero parameters, so there is nothing for the description to disambiguate; the 0-param baseline of 4 applies. No parameter guidance is needed or missing.

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 with clear scope: 'List your own completed tours (sessions)'. The qualifiers 'your own' and 'completed' plus the enumerated return fields make the purpose unambiguous, though it never names a sibling tool to differentiate from get_my_session or list_my_trips.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not guidance, and no alternatives named (e.g. get_my_session for a single session). Usage is only weakly implied by the described contents. The closest to routing help is the 'No listener records' exclusion.

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

list_my_templatesList Tour TemplatesB
Read-only
Inspect

Your tour templates (+ org templates your active company shares with you). Filters: q, category, country, city, hasCollectible.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
cityNo
countryNo
categoryNo
hasCollectibleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context by disclosing that org-shared templates are included in results, which the annotations do not convey. It says nothing about ordering, pagination, or result size.

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 terse sentences with the scope statement front-loaded and the filter list compact. Nothing is padded, though the parenthetical about org templates is syntactically awkward and the filter list is left as bare names.

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 described, and the read-only annotations cover the safety profile. The remaining gap is filter semantics: with 0% schema coverage, an agent has no basis for constructing a meaningful q/country/city/category query, which is the one thing this description should have supplied.

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

Parameters2/5

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

Schema description coverage is 0% across all five parameters, so the description must compensate and largely does not. It signals that the parameters act as filters, which the schema itself does not state, but gives no meaning for 'q' (search over what fields?), no hint that country/city/category are exact vs partial matches, and no clarification of hasCollectible's true/false semantics.

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

Purpose4/5

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

Names the resource precisely ('tour templates') and clarifies scope: the caller's own templates plus org templates shared by the active company. This distinguishes it from the singular get_my_template and from list_my_programs/list_my_trips without needing the schema, though it never states the verb 'list' or that results are returned as a collection.

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

Usage Guidelines2/5

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

No when-to-use guidance, no mention of when to prefer get_my_template for a single template, and no prerequisites. The scope sentence implies a browse/overview use case but never states it explicitly.

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

list_my_tripsList TripsA
Read-only
Inspect

List your trips: the scheduled departures of your programs (upcoming, active and past), each with dates, status (draft|active|completed|cancelled), capacity (maxParticipants, null = unlimited) and participantCount. Use this for questions about upcoming departures, availability or spots left (spots left = maxParticipants - participantCount).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds substantive behavior beyond that: the status enum values, the null-equals-unlimited capacity convention, and the derived spots-left computation. It does not mention pagination or ordering for a potentially long list.

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

Conciseness5/5

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

Two dense sentences with no filler; the resource definition comes first and the routing/usage guidance second. Every clause (status enum, null semantics, spots-left formula) 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 an output schema present, the description need not explain return values, yet it adds helpful semantic notes anyway; annotations cover the safety profile. The only shortfall is that the sibling overlap with list_my_departures is left unaddressed, which matters for an agent choosing between them.

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

Parameters4/5

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

There are no input parameters, so the baseline is 4. The description instead characterizes the response fields (status values, capacity semantics), which is useful even though the output schema already carries the authoritative shape.

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?

Names a specific verb (List) and resource (your trips) and defines the resource precisely as 'the scheduled departures of your programs'. It enumerates the returned fields (dates, status, capacity, participantCount), so the agent knows what it gets. It does not, however, distinguish itself from the very similar sibling list_my_departures, which is a real ambiguity given the description's own use of the word 'departures'.

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

Usage Guidelines4/5

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

Explicitly states when to reach for it: 'questions about upcoming departures, availability or spots left', and even gives the spots-left formula. No exclusions or sibling routing are provided, so it does not resolve the overlap with list_my_departures or get_my_trip.

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

publish_tripPublish Trip (Draft to Active)A
Destructive
Inspect

PUBLISH a draft trip (draft -> active): the trip is listed on the company website and opens for booking. NO notification is sent to participants (it is not an announcement). Params: id (trip uuid). Works only on a draft trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
statusNo
endDateNo
guideIdNo
joinCodeNo
timezoneNo
createdAtNoISO 8601 timestamp
joinTokenNo
programIdNo
startDateNo
updatedAtNoISO 8601 timestamp
cancelledAtNoISO 8601 timestamp
completedAtNoISO 8601 timestamp
cancelReasonNo
coverImageUrlNo
coverThumbUrlNo
organizationIdNo
stableLiveCodeNo
maxParticipantsNo
changedNotifiedAtNoISO 8601 timestamp
weatherCardsEnabledNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true). The description adds value beyond them by disclosing that no participant notification is sent and that the operation is restricted to draft trips, both of which are non-obvious behaviors.

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?

Short and front-loaded: the action and its effect come first, then the notification caveat, then the parameter and precondition. No filler, though the all-caps emphasis and the 'Params: id' line are slightly redundant with structured fields.

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-parameter mutation with an output schema, the description covers purpose, effect, non-notification behavior, and the draft-only precondition. It leaves error/response behavior to the output schema and annotations, which is reasonable.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does name the single parameter and its role — 'id (trip uuid)' — which is adequate compensation for a one-parameter tool, though it adds nothing beyond the schema's uuid format/pattern hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (PUBLISH), the resource (a draft trip), and the resulting state transition (draft -> active) plus its concrete effect: listed on the website and open for booking. This is far more than a restatement of the name and clearly separates it from sibling mutation tools like update_trip.

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

Usage Guidelines4/5

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

The description gives a clear precondition — 'Works only on a draft trip' — and rules out the announcement use case with 'NO notification is sent to participants.' It does not, however, name alternative tools or explain what to do when the trip is not a draft.

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

remove_trip_participantRemove Trip ParticipantA
DestructiveIdempotent
Inspect

Remove a participant from a trip (status='removed'). Params: id (trip uuid), participantId (uuid).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
participantIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo

TDQS

A3.8/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 safety profile is covered. The description adds genuinely new information by revealing that removal is a soft delete ('status=removed') rather than a hard delete, which materially changes how an agent should reason about the operation; it omits auth/permission requirements and any cascade effects.

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

Conciseness4/5

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

Two tightly packed sentences with the operation and its behavioral outcome front-loaded before the parameter list. Nothing is wasted, though restating self-evident parameter names is marginally redundant given 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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The description supplies the soft-delete semantics and both parameter meanings, leaving only permission requirements and error conditions unstated.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does name both parameters and disambiguates the vague 'id' as the trip uuid rather than a participant id. It still leaves open whether participantId is a membership id or a user id, so it compensates well but not fully.

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 a participant from a trip') and adds the key semantic that removal is a status change rather than a hard delete. It does not explicitly differentiate itself from the closest sibling add_trip_participant or invite_trip_participant, so it is clear but not sibling-routing.

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 the CRUD-like verb and the '(status=\'removed\')' note, but there is no explicit when-to-use guidance, no statement of prerequisites (e.g. must be trip owner), and no named alternative. Adequate for an obvious mutation, but nothing is spelled out.

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

reorder_program_info_cardsReorder Program Info CardsC
Idempotent
Inspect

Reorder program info cards. Params: id (uuid) + body { cardIds: [...] }.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations cover the safety profile (idempotentHint=true, destructiveHint=false), so the bar is lower, but the description adds no behavioral context at all. For a reorder operation the crucial behavior — whether cardIds must enumerate every card or whether omitted cards are appended/dropped — is unstated.

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

Conciseness3/5

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

Short and front-loaded, which is good, but the second sentence merely paraphrases the input schema rather than adding meaning. It is efficient in size but not in information density.

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

Completeness2/5

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

An output schema exists so return values need no explanation, but for a two-parameter nested mutation with 0% schema coverage the description leaves the central question (ordering semantics and completeness of cardIds) unanswered. It is too thin for this tool's complexity.

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

Parameters2/5

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

Schema description coverage is 0% and the body is a nested object, so the description must carry the semantic load. It only restates the schema shape ('id (uuid) + body { cardIds: [...] }') without explaining that array order defines the new ordering, or whether the list must be exhaustive.

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 (reorder) and resource (program info cards), which distinguishes it from update_program_info_card and delete_program_info_card. It does not, however, distinguish it from the other reorder siblings (reorder_program_items, reorder_template_info_cards), which the agent must infer from the resource noun 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?

There is no statement of when to use this tool versus alternatives, nor any prerequisite or precondition. Nothing tells the agent when a reorder is appropriate instead of an update, or that the program must already have these cards.

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

reorder_program_itemsReorder Program ItemsA
Idempotent
Inspect

Reorder program stops. Params: id (uuid) + body { itemIds: [...] } -- ALL item ids, in the new order, without duplicates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish it is a non-read-only, idempotent, non-destructive, closed-world mutation. The description adds a genuinely useful behavioral constraint beyond the annotations: the list must contain ALL item ids in the new order with no duplicates, which defines the replacement semantics of the call. Auth requirements and error behavior on missing/invalid ids remain unspecified.

Agents need to know what a tool does to the world before 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 purpose and immediately followed by the parameter contract. No filler; every clause adds information.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile and idempotency. Given the low-complexity two-parameter shape, the description supplies what an agent needs, missing only error/permission behavior.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden, and it does: it documents id as a uuid and defines body.itemIds as the complete ordered set of item ids with no duplicates. That is meaningfully more than the raw schema conveys, though it doesn't spell out the array item type (uuid) explicitly.

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 ('Reorder') and resource ('program stops'), so the operation is unambiguous. It doesn't explicitly contrast itself with the other reorder_* siblings (reorder_slides, reorder_program_info_cards, reorder_trip_items), though the resource name in the tool name conveys the distinction.

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 explains the mechanics but gives no when-to-use or when-not-to-use guidance and never names an alternative tool. Usage must be inferred from the name and the sibling set.

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

reorder_slidesReorder SlidesA
Idempotent
Inspect

Reorder slides. Params: id (uuid) + body { slideIds: [...] } -- ALL slide ids of the template, in the new order, without duplicates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: the body must contain ALL slide ids of the template, in the new order, with no duplicates — a full-replacement ordering contract an agent could easily get wrong.

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

Conciseness5/5

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

Two compact sentences, action and the critical ordering constraint front-loaded, zero filler. Everything written earns its place.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. For a 2-parameter mutation with a nested body, the description supplies the one detail that matters most (full ordered, deduplicated list), leaving nothing essential 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 0%, so the description must carry the load, and it does: it maps 'id (uuid)' and the body shape { slideIds: [...] }, and critically explains the semantics of slideIds (complete set, ordered, deduplicated). It stops short of stating explicitly that 'id' is the template id.

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 ('Reorder slides') and clarifies via 'of the template' that the slides belong to a template, which helps separate it from the many reorder_* siblings. It does not, however, explicitly name which sibling it is not, so an agent still has to infer the parent entity.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g. must slides already exist, must you own the template), and no mention of alternative tools. The only usage signal is implied by the name.

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

reorder_template_info_cardsReorder Template Info CardsA
Idempotent
Inspect

Reorder info cards. Params: id (uuid) + body { ids: [...] } -- ALL card ids, in the new order.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and readOnlyHint=false. The description adds a genuinely non-obvious behavioral rule: the body must contain ALL card ids in the new order, not just the moved one. It still doesn't say what happens if the list is partial or stale.

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?

Extremely terse and front-loaded – the operative constraint (ALL ids, new order) is stated in the second half of a single compact line. There is no filler, though the dash-separated param note reads more like a schema restatement than a sentence.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, the description leaves open whether 'id' is the template id or a card id, and what failure modes exist for incorrect or partial id lists – meaningful gaps for a mutation tool with a nested body.

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 0% and the body is a nested object, so the description carries the burden. It correctly explains that 'body { ids: [...] }' means the complete ordered set of card ids, which is far more than the schema's bare 'array of uuid, minItems 1'. The 'id' parameter is only restated as uuid, which is already in the schema.

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

Purpose4/5

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

The name and description state a specific verb+resource (reorder template info cards) and clarify that the reorder is by replacement ordering. It does not mention sibling tools like reorder_program_info_cards, reorder_slides, or reorder_trip_items, so an agent must infer the scoping from the name 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?

No when-to-use guidance, no prerequisites, no reference to alternatives such as update_template_info_card (which would be used to change a single card) versus this full reorder. 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.

reorder_template_schedule_stopsReorder Template Schedule StopsB
Idempotent
Inspect

Reorder schedule stops. Params: id (uuid) + body { ids: [...] } -- ALL stop ids, in the new order.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so safety is covered. The description adds the genuinely important behavioral constraint that the body must contain ALL stop ids in the new order, which tells the agent this is a full-ordering replacement rather than a single move. It omits only minor details like 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?

Two terse sentences with no waste and the core constraint front-loaded. The telegraphic "Params: ..." style is efficient though slightly clipped.

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. The description covers the key mutation constraint but leaves the agent without usage context (when to prefer this over update_template_schedule_stop) or error/precondition behavior.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It names both parameters (id uuid, body.ids array) and the critical semantics of ids (all stops, in new order), but adds no format detail beyond the schema types and never explains what the top-level id identifies.

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 ("Reorder schedule stops") that clearly separates it from sibling reorder tools like reorder_slides or reorder_trip_items. It does not explicitly name siblings, but the domain specificity is enough for an agent to identify it.

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 prerequisites, and does not distinguish this from update_template_schedule_stop (single-stop edit) versus this full-reorder operation. 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.

reorder_trip_itemsReorder Trip StopsA
Idempotent
Inspect

Reorder trip stops. Params: id (uuid) + body { itemIds: [...] } -- ALL item ids, in the new order. NO notification is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true: the action succeeded.

TDQS

A3.9/5.0
Behavior4/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 largely covered. The description adds a non-obvious behavioral fact: no notification is sent to participants, which is not derivable from annotations and matters for agents reasoning about side effects.

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

Conciseness5/5

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

Three terse clauses, front-loaded with the action, then parameters, then the side-effect caveat. Zero filler; every phrase carries information.

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

Completeness4/5

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

An output schema exists, so return values need not be described. The description covers the action, required inputs, ordering semantics, and the notification behavior. It omits preconditions (e.g., must the trip be unpublished, do ids need to match existing items), which would round it out for a mutation tool with a nested required object.

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

Parameters4/5

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

With 0% schema description coverage, the description must carry the parameter burden, and it does map both required params (id, body.itemIds) and clarifies the critical semantics of itemIds — it must be the complete ordered list. It does not restate the uuid format, but that is inferable from 'id (uuid)' and the schema pattern.

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 ('Reorder trip stops'), and the sibling set contains several parallel reorder_* tools, so the resource disambiguation is implicit in the name. It stops short of explicitly distinguishing itself from reorder_program_items or reorder_slides, but an agent can tell which domain this operates on.

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 adds an important usage rule — the body must contain ALL item ids in the new order, not just the moved ones — which is genuine operational guidance. It says nothing about prerequisites (ownership, draft state) or when to prefer this over update_trip_item.

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

set_template_visibilitySet Template VisibilityA
DestructiveIdempotent
Inspect

Switch a template between personal <-> company-shared. Params: id (uuid) + body { visibility: personal|org }. org only for a company owner/manager. Only changes who can see it INSIDE your own Your Next Tours company workspace; nothing becomes public and nothing is sent outside the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
guideIdNo
categoryNo
languageNo
tourTypeNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
tourFormatNo
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
adoptionCountNo
broadcastModeNo
collectibleIdNo
coverImageUrlNo
organizationIdNo
routerProfileIdNo
sourceTemplateIdNo
estimatedDurationNo

TDQS

A4.4/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, but the description adds value beyond them by disclosing that the change is confined to the company workspace, that nothing becomes public, and that nothing leaves the account. It does not explain why the operation is flagged destructive (e.g., whether existing viewers lose access), leaving one meaningful gap.

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

Conciseness5/5

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

Three dense sentences with the action front-loaded, followed by params, then permission and blast-radius scope. No filler or repetition.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and annotations carry the safety profile. The description covers permissions and scope well, but omits what happens to current viewers when a template reverts to personal, which matters for a destructive-flagged mutation.

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

Parameters4/5

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

With schema description coverage at 0%, the description compensates by naming both params and their shapes: id (uuid) and body { visibility: personal|org }. It partially duplicates the schema's format and enum constraints and never says explicitly that id is the template identifier, but it is enough for an agent to construct the call.

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

Purpose5/5

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

States a specific verb and resource ('Switch a template between personal <-> company-shared'), which is a distinct operation from the sibling update_template. An agent can identify this as the visibility-toggle 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?

Provides a clear permission precondition ('org only for a company owner/manager') that gates the operation. It does not name an alternative tool or explicitly state when-not to use it, but the scope clarification covers the main selection ambiguity.

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

set_trip_item_statusSet Trip Stop StatusA
Destructive
Inspect

Record the on-site status of a trip stop: done | cancelled | skipped. Params: id (trip uuid), itemId (uuid) + body { status }. NO notification is sent (a stop cancellation announcement requires trips:announce).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
itemIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
kindNo
labelNo
notesNo
statusNo
tripIdNo
actualAtNoISO 8601 timestamp
createdAtNoISO 8601 timestamp
dayNumberNo
imageUrlsNo
sortOrderNo
startTimeNo
templateIdNo
durationMinNo
locationLatNo
locationLngNo
locationTextNo
sourceItemIdNo
headsetPolicyNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the mutation profile is covered. The description adds genuinely non-obvious behavior: 'NO notification is sent' and that a cancellation announcement requires the separate trips:announce permission. It does not, however, address reversibility or permission requirements for the write itself.

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 compact sentences, front-loaded with the purpose, then parameters, then the no-notification caveat. It is terse and mostly earns its place, though folding parameter listings into prose is slightly less scannable than a separate schema description.

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

Completeness3/5

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

For a destructive three-parameter mutation, the description covers purpose, params, and the notification side effect, and an output schema exists so return values need not be explained. It still leaves gaps on permission/auth requirements and the effect on a stop whose status changes, which matter for a destructiveHint tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does enumerate all three parameters with types: id (trip uuid), itemId (uuid), and body { status }. However its status list ('done | cancelled | skipped') omits planned and in_progress, which are valid enum values in the schema, so it under-specifies rather than fully compensating.

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 and resource ('Record the on-site status of a trip stop') plus the illustrative values, so an agent knows exactly what the tool does. It is distinguishable from update_trip_item by its status-only, on-site scope, 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 Guidelines3/5

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

Usage is implied by 'record the on-site status', and the note that no notification is sent hints at when this differs from announcement flows, but there is no explicit when-to-use/when-not guidance or named alternative tool. The agent must infer that this is the status-only path versus update_trip_item.

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

update_programUpdate Travel ProgramA
DestructiveIdempotent
Inspect

Update program metadata. Params: id (uuid) + body (the create fields, all optional). Changing visibility (personal|org) is allowed only for the program's CREATOR. Visibility only controls access INSIDE your own Your Next Tours company workspace; programs never become public through this tool and nothing is sent outside the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
categoryNo
languageNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
ownerGuideIdNo
adoptionCountNo
coverImageUrlNo
coverThumbUrlNo
estimatedDaysNo
organizationIdNo
sourceItineraryIdNo

TDQS

A3.7/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 openWorldHint=false; the description adds genuinely new context beyond them: the creator-only permission gate on visibility and the clarification that visibility is workspace-internal and never public. It does not explain what data gets destroyed or that body fields can be nulled/cleared, which is the main residual gap.

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?

Purpose is front-loaded, followed by parameter notes and behavioral caveats, with no filler sentences. The parenthetical parameter summary is dense but efficient.

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

Completeness4/5

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

For a mutation tool with an output schema present and annotations covering safety/idempotency, the description covers permission and visibility scope well. It is only slightly short on clarifying that omitted vs null fields behave differently, which matters for a partial-update 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?

With schema coverage at 0% and a nested body object, the description does meaningful work by noting body holds "the create fields, all optional" and that id is a uuid, implying a partial update. However none of the ten nested fields (city, name, tags, visibility, etc.) receive any semantic explanation in either schema or description.

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

Purpose4/5

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

"Update program metadata" states a specific verb and resource, and "metadata" implicitly distinguishes it from sibling mutators on sub-entities like update_program_item and update_program_info_card. It does not name any sibling explicitly, so the differentiation is inferable 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 Guidelines3/5

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

The description gives one concrete condition (visibility changes require CREATOR) but no explicit when-to-use/when-not guidance relative to the many update_* siblings. Usage is implied by "program metadata" rather than articulated.

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

update_program_info_cardUpdate Program Info CardC
DestructiveIdempotent
Inspect

Update a program info card. Params: id (program uuid), cardId (uuid) + body { kind, title, body }.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
cardIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
bodyNo
kindNo
titleNo
imageUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
updatedAtNoISO 8601 timestamp
itineraryIdNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=true, so the safety profile is partly covered. However, the description adds nothing beyond restating the operation: it does not explain whether this is a partial or full replacement of the card (critical given destructiveHint=true), what happens to fields omitted from the body, or what authorization is required. For a destructive mutation the behavioral disclosure 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 compact sentences, front-loaded with the action and then the parameter overview. There is no filler, though the inline param list is terse rather than structured.

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

Completeness3/5

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

An output schema exists so return values need not be described, and the description covers the basic call shape. But with 0% schema coverage and a destructive, idempotent mutation on nested content, the absence of partial-vs-full update semantics and field-level meaning leaves real gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden, and it does name the three params with the program uuid, the card uuid, and the nested body fields (kind, title, body). It omits that kind is an enum restricted to info/rule and gives no maxLength or nullability hints, so it only partially compensates for the empty 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 (Update) and resource (program info card), so an agent can identify the operation immediately. It does not differentiate from closely named siblings such as update_template_info_card or update_program_item, but the resource noun is precise enough to distinguish it from most.

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 provides no when-to-use guidance, no prerequisites, and no mention of alternatives or when this differs from add_program_info_card or update_template_info_card. The agent must infer the appropriate context entirely.

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

update_program_itemUpdate Program ItemA
DestructiveIdempotent
Inspect

Update a program stop. Params: id (program uuid), itemId (uuid) + body (label/dayNumber/notes/kind/startTime/location*/durationMin/headsetPolicy). headsetPolicy (null clears) = { level: required|recommended|optional, groupThreshold? (int 1..500, applies to groups LARGER than this), reason (1..300, short rule summary or rationale, in the content's language), sourceUrl? (https only; REQUIRED when level=required), sourceLabel? (1..120) }. Only set level=required when a written rule exists and you have its https source; never invent rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
itemIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
kindNo
labelNo
notesNo
createdAtNoISO 8601 timestamp
dayNumberNo
imageUrlsNo
sortOrderNo
startTimeNo
templateIdNo
durationMinNo
itineraryIdNo
locationLatNo
locationLngNo
locationTextNo
headsetPolicyNo

TDQS

A3.7/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 safety profile is covered. The description adds behavior the annotations cannot: 'headsetPolicy (null clears)' documents null semantics, and 'sourceUrl ... REQUIRED when level=required' documents a conditional requirement not expressed in the schema. It still does not say what the destructive update overwrites or what permissions are needed, but it earns credit above the annotation baseline.

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

Conciseness4/5

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

Front-loads the purpose in one clause and then packs parameters densely with no filler sentences. It is somewhat run-on with heavy parenthetical nesting, but every clause conveys usable constraint information rather than restating the schema.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the nested headsetPolicy contract is well covered. The gaps are the update tool's key unknowns: whether unspecified fields are preserved or nulled, and how this differs from update_trip_item / update_template_schedule_stop. For a destructive, nested-object mutation these are meaningful omissions.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden and largely does: it enumerates body fields, explains the nested headsetPolicy shape with ranges and a non-obvious semantic ('applies to groups LARGER than this'), and flags the sourceUrl precondition. The shorthand 'location*' is weaker than the schema's locationLat/locationLng/locationText split, and unspecified-field/partial-update semantics are not addressed.

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?

Opens with a specific verb+resource: 'Update a program stop.' An agent can tell it mutates an existing program item rather than creating or reordering one. It does not, however, differentiate itself from the closely-named siblings update_trip_item or update_template_schedule_stop, which share the same verb.

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 statement of when to use this over the sibling updaters, nor any when-not guidance. The one conditional rule given ('Only set level=required when a written rule exists and you have its https source; never invent rules') is a genuine usage constraint but is scoped only to the headsetPolicy sub-field, not the tool's overall applicability.

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

update_slide_captionUpdate Slide CaptionB
DestructiveIdempotent
Inspect

Update a slide's caption/text. Params: id (template uuid), slideId (uuid) + body { caption } (null = clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
slideIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
typeNoOne of: image, text
captionNo
mediaUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
templateIdNo
thumbnailUrlNo

TDQS

B3.3/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 carried structurally. The description adds the meaningful 'null = clear' behavior, which explains how the destructive path is triggered, but it omits permission requirements and what happens to other slide fields alongside the caption.

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 purpose in one clause, then enumerates parameters compactly with zero filler. The 'Params:' telegraphic style is efficient, though slightly dense for skimming.

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 annotations cover the mutation profile. What is missing is context an agent needs before calling: auth/permission requirements on the template, and whether the update is partial or replaces the whole caption set.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must supply the meaning of all three parameters, and it does: id as template uuid, slideId as uuid, and body.caption with null meaning clear. Only the schema's maxLength(2000) constraint is left undocumented in prose, which is a minor gap.

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 ('Update a slide's caption/text'), which is unambiguous about what is being changed. It does not explicitly differentiate from siblings like reorder_slides or update_template, but the caption-targeting is distinctive enough that an agent can route correctly.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g. template ownership), and no mention of alternatives such as delete_slide when a caption is no longer wanted. The only conditional behavior given is the 'null = clear' semantics, which is parameter-level rather than usage guidance.

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

update_templateUpdate Tour TemplateA
DestructiveIdempotent
Inspect

Update template metadata. Params: id (uuid) + body (the create fields except visibility, all optional; category/country/city/region/routerProfileId null = clear). visibility is not accepted here and is dropped silently; change it with set_template_visibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
cityNo
nameNo
tagsNo
regionNo
statusNo
countryNo
guideIdNo
categoryNo
languageNo
tourTypeNo
createdAtNoISO 8601 timestamp
isCuratedNo
updatedAtNoISO 8601 timestamp
tourFormatNo
visibilityNo
descriptionNo
publishedAtNoISO 8601 timestamp
adoptionCountNo
broadcastModeNo
collectibleIdNo
coverImageUrlNo
organizationIdNo
routerProfileIdNo
sourceTemplateIdNo
estimatedDurationNo

TDQS

A4/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, but the description adds genuine value beyond them: visibility is "dropped silently" (a silent-data-loss trait an agent must know) and null clears category/country/city/region/routerProfileId. It still doesn't clarify replace-vs-merge semantics for omitted fields, so it isn't fully transparent for a destructive mutation.

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 action, then dense but informative parameter notes; every clause (id shape, optionality, null=clear, visibility exclusion, alternative tool) carries a distinct fact. The parenthetical is packed tightly, which slightly reduces readability but wastes nothing.

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 no explanation, and the visibility silent-drop and null-clearing semantics are covered. The remaining gap is replace-vs-merge behavior for fields the caller omits, which matters for a tool flagged destructiveHint=true.

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 description coverage at 0%, the description carries the burden and delivers: id is a uuid, body takes the create fields minus visibility, fields are all optional, and null explicitly clears the geo/category/routerProfileId fields. It weakens slightly by referring to "the create fields" without enumerating them, forcing a cross-reference with create_template.

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 ("Update template metadata"), and "metadata" usefully implies the template entity itself rather than its cards/schedule stops, which are covered by sibling update_* tools. It does not explicitly name those siblings, 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?

Explicitly routes the agent to an alternative: visibility is not accepted here and "change it with set_template_visibility." That is a clear when-not-use rule with a named replacement. It leaves the other update_* siblings unaddressed, so it stops short of full 5-level routing.

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

update_template_info_cardUpdate Template Info CardC
DestructiveIdempotent
Inspect

Update an info card. Params: id (template uuid), cardId (uuid) + body (title/description/triggerType/linkedScheduleStopId).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
cardIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
titleNo
imageUrlNo
createdAtNoISO 8601 timestamp
sortOrderNo
templateIdNo
descriptionNo
triggerTypeNo
linkedScheduleStopIdNo

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already disclose the safety profile (destructiveHint=true, idempotentHint=true, readOnlyHint=false), so the description need not restate that. It adds essentially no behavioral context beyond the annotations — nothing about required permissions, what happens to omitted body fields, or the effect of changing triggerType.

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 compact sentences, front-loaded with the action followed by a terse parameter list. Nothing is wasted, though the parameter shorthand is dense at the cost of explanation.

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?

It is a mutation tool with a nested object body and an output schema (so return values need not be described). The description covers the basic parameter mapping but omits usage guidance and deeper field semantics, leaving it only minimally 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 0%, so the description must compensate, and it does partially: it clarifies that 'id' is a template uuid and enumerates the body fields (title/description/triggerType/linkedScheduleStopId). However, it gives no semantics for the triggerType enum values or what linkedScheduleStopId references, leaving key meaning unstated.

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 clear specific verb+resource ('Update an info card') and identifies the template scope via 'id (template uuid)'. It does not, however, differentiate itself from the near-identical sibling update_program_info_card, so an agent cannot tell them apart from the description 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?

There is no when-to-use guidance, no exclusions, and no reference to alternatives among the many related siblings (update_program_info_card, add/delete_template_info_card, reorder_template_info_cards). Usage must be inferred entirely from the name.

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

update_template_schedule_stopUpdate Template Schedule StopA
DestructiveIdempotent
Inspect

Update a schedule stop. Params: id (template uuid), stopId (uuid) + body (title/description/estimatedTime/latitude/longitude/headsetPolicy/...). headsetPolicy (null clears) = { level: required|recommended|optional, groupThreshold? (int 1..500, applies to groups LARGER than this), reason (1..300, short rule summary or rationale, in the content's language), sourceUrl? (https only; REQUIRED when level=required), sourceLabel? (1..120) }. Only set level=required when a written rule exists and you have its https source; never invent rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
stopIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
titleNo
latitudeNo
createdAtNoISO 8601 timestamp
longitudeNo
sortOrderNo
templateIdNo
descriptionNo
estimatedTimeNo
headsetPolicyNo
linkedInfoCardIdNo
linkedSlideIndexNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is partly covered. The description adds meaningful behavioral rules beyond annotations: headsetPolicy null clears the value, sourceUrl is required when level=required, and required rules must be backed by a written source rather than invented.

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 purpose before parameter details, and every sentence carries relevant constraint or semantics. It is dense but appropriately sized for a tool with a complex nested policy object, though the nested parenthetical formatting is somewhat packed.

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

Completeness3/5

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

With an output schema present, the description need not explain return values, and annotations cover much of the safety profile. However, it omits partial-update semantics, does not describe linkedInfoCardId or linkedSlideIndex, and gives no routing against sibling add/delete/reorder tools, leaving clear gaps for a destructive nested update operation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does for the main parameters and the complex nested headsetPolicy object. It explains id and stopId types, lists body fields, and gives constraints for level, groupThreshold, reason, sourceUrl, and sourceLabel. It does not cover linkedInfoCardId or linkedSlideIndex, preventing a 5.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Update a schedule stop.' This clearly distinguishes it from sibling tools such as add_template_schedule_stop, delete_template_schedule_stop, and update_template_info_card. 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 Guidelines2/5

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

The description does not state when to use this tool versus alternatives like add_template_schedule_stop, delete_template_schedule_stop, or reorder_template_schedule_stops. The conditional rule for headsetPolicy.level is useful parameter guidance, but it is not tool-selection guidance.

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

update_tripUpdate TripA
DestructiveIdempotent
Inspect

Update trip metadata. Params: id (uuid) + body { name, startDate, endDate (YYYY-MM-DD), maxParticipants (null = unlimited), timezone (IANA name, e.g. 'Europe/Istanbul'), weatherCardsEnabled (boolean, turns the trip's weather cards on or off), stableLiveCode (boolean, keeps the same live broadcast link and join code for the whole trip; the code itself is assigned by the server) }. startDate/endDate/maxParticipants/timezone accept null to clear. NO notification is sent to participants.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
statusNo
endDateNo
guideIdNo
joinCodeNo
timezoneNo
createdAtNoISO 8601 timestamp
joinTokenNo
programIdNo
startDateNo
updatedAtNoISO 8601 timestamp
cancelledAtNoISO 8601 timestamp
completedAtNoISO 8601 timestamp
liveJoinUrlNo
cancelReasonNo
liveJoinCodeNo
coverImageUrlNo
coverThumbUrlNo
organizationIdNo
stableLiveCodeNo
maxParticipantsNo
changedNotifiedAtNoISO 8601 timestamp
weatherCardsEnabledNo

TDQS

A3.8/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, and the description adds real context beyond them: null clears startDate/endDate/maxParticipants/timezone, the live code is server-assigned, and no participant notification is sent. That side-effect disclosure is valuable for a mutation tool.

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

Conciseness4/5

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

The core action is front-loaded in the first sentence, followed by a dense but purposeful param block where every clause conveys distinct meaning. It is tight given the number of fields it must document.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and annotations cover the safety profile; combined with the thorough param documentation, an agent has nearly everything needed. Only the absence of sibling routing keeps it from a 5.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: it documents every body field plus semantics the schema omits, e.g. maxParticipants null = unlimited, timezone must be an IANA name, date format YYYY-MM-DD, and which fields accept null to clear.

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 ('Update trip metadata'), and the word 'metadata' scopes it away from sibling update_trip_item, which edits trip items. It is clear what it does, though it never names the alternative tools 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 or when-not-to-use guidance, and no reference to any of the many siblings (update_trip_item, publish_trip, delete_trip). The 'NO notification' line is a behavioral fact, not routing guidance.

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

update_trip_itemUpdate Trip StopB
DestructiveIdempotent
Inspect

Update a trip stop. Params: id (trip uuid), itemId (uuid) + body (same fields as add_trip_item; headsetPolicy null clears). NO notification is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
itemIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
kindNo
labelNo
notesNo
statusNo
tripIdNo
actualAtNoISO 8601 timestamp
createdAtNoISO 8601 timestamp
dayNumberNo
imageUrlsNo
sortOrderNo
startTimeNo
templateIdNo
durationMinNo
locationLatNo
locationLngNo
locationTextNo
sourceItemIdNo
headsetPolicyNo

TDQS

B3.2/5.0
Behavior3/5

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

The description adds two genuinely useful traits not present in annotations: 'headsetPolicy null clears' (a non-obvious null-semantics rule) and 'NO notification is sent' (side-effect disclosure). However, annotations already declare destructiveHint=true and idempotentHint=true, and the description never explains what the destructive behavior destroys or whether the body is a full replace or a partial merge.

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?

Very compact and front-loaded: purpose first, then params, then the side-effect note. No filler sentences. The telegraphic 'Params: ...' fragment is slightly terse but still readable and earns its space.

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 described. For a destructive, nested-body mutation the description covers IDs, null-clearing, and notification behavior, but leaves the critical replace-vs-merge question unanswered and offloads most field semantics to a sibling tool's description.

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% across three params, including a large nested body object, so the description must compensate and only partly does. It clarifies id as trip uuid, itemId as uuid, delegates body fields to add_trip_item, and documents one important null behavior for headsetPolicy. The remaining body fields (kind enum, dayNumber, times, coordinates) get no meaning beyond the schema's type constraints.

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 ('Update a trip stop') and implicitly parallels add_trip_item by referencing its field set, which helps separate it from delete_trip_item and reorder_trip_items. It never names set_trip_item_status or explains how it differs from that sibling, so differentiation is incomplete.

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 and no named alternative. The mention of add_trip_item is only for field semantics, not for routing ('use this instead of X when Y'). The agent must infer usage from the name alone.

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. 4 tool updates
    • Changedget_my_session45 fields changed
      • removedOutput schema / properties / clientSessionId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / droppedAudioFrames
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / durationEstimate
        Removed value: -{
        -  "description": "One of: activity, typical",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / guideId
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / itineraryItemId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / lastActiveAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / organizationId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / pacerDepthMax
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / pacerDepthP50
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / participants / items
        Removed value: -{
        -  "properties": {
        -    "browser": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "clientKind": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "clientVersion": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "country": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "deviceType": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "displayName": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "durationSeconds": {
        -      "type": [
        -        "number",
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "id": {
        -      "type": "string"
        -    },
        -    "joinedAt": {
        -      "description": "ISO 8601 timestamp",
        -      "type": "string"
        -    },
        -    "language": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "leftAt": {
        -      "description": "ISO 8601 timestamp",
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "listenerKey": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "reconnections": {
        -      "type": [
        -        "number",
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "sessionId": {
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedOutput schema / properties / participants / properties
        Added value: +{
        +  "averageDurationSeconds": {
        +    "type": [
        +      "number",
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "byCountry": {
        +    "items": {
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "byDevice": {
        +    "items": {
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "byLanguage": {
        +    "items": {
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "total": {
        +    "type": [
        +      "number",
        +      "string",
        +      "null"
        +    ]
        +  }
        +}
      • changedOutput schema / properties / participants / type
        Previous value: -"array"New value: +"object"
      • removedOutput schema / properties / ratings / items / properties / comment / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • removedOutput schema / properties / ratings / items / properties / flaggedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / ratings / items / properties / flaggedBy
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / ratings / items / properties / flaggedReason
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / ratings / items / properties / id / type
        Removed value: -"string"
      • removedOutput schema / properties / ratings / items / properties / isFlagged / type
        Removed value: -"boolean"
      • removedOutput schema / properties / ratings / items / properties / moderationStatus / type
        Removed value: -"string"
      • removedOutput schema / properties / ratings / items / properties / participantName
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / ratings / items / properties / ratedAt / description
        Removed value: -"ISO 8601 timestamp"
      • removedOutput schema / properties / ratings / items / properties / ratedAt / type
        Removed value: -"string"
      • removedOutput schema / properties / ratings / items / properties / rating / type
        Removed value: -[
        -  "number",
        -  "string",
        -  "null"
        -]
      • removedOutput schema / properties / ratings / items / properties / reportReason / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • removedOutput schema / properties / ratings / items / properties / reportedAt / description
        Removed value: -"ISO 8601 timestamp"
      • removedOutput schema / properties / ratings / items / properties / reportedAt / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • removedOutput schema / properties / ratings / items / properties / reportedBy
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / ratings / items / properties / sessionId / type
        Removed value: -"string"
      • removedOutput schema / properties / ratings / items / properties / syncedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": "string"
        -}
      • removedOutput schema / properties / rawDurationSeconds
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / rawEndedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / relayNodeId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / syncedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": "string"
        -}
      • removedOutput schema / properties / translationUsage / items / properties / audioInputSeconds / type
        Removed value: -[
        -  "number",
        -  "string",
        -  "null"
        -]
      • removedOutput schema / properties / translationUsage / items / properties / costUsd / type
        Removed value: -"string"
      • removedOutput schema / properties / translationUsage / items / properties / createdAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": "string"
        -}
      • removedOutput schema / properties / translationUsage / items / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / translationUsage / items / properties / inputTokens
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / translationUsage / items / properties / language / type
        Removed value: -"string"
      • removedOutput schema / properties / translationUsage / items / properties / model
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / translationUsage / items / properties / outputTokens
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / translationUsage / items / properties / sessionId
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / translationUsage / items / properties / status / type
        Removed value: -"string"
      • removedOutput schema / properties / translationUsage / items / properties / tokenDetails
        Removed value: -{}
      • removedOutput schema / properties / tripItemId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
    • Changedget_my_session_ratings6 fields changed
      • removedOutput schema / properties / items / items / properties / flaggedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / flaggedBy
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / flaggedReason
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / participantName
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / reportedBy
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / syncedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": "string"
        -}
    • Changedlist_my_ratings1 field changed
      • removedOutput schema / properties / data / items / properties / participantName
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
    • Changedlist_my_sessions14 fields changed
      • removedOutput schema / properties / items / items / properties / clientSessionId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / droppedAudioFrames
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / durationEstimate
        Removed value: -{
        -  "description": "One of: activity, typical",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / guideId
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / itineraryItemId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / lastActiveAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / organizationId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / pacerDepthMax
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / pacerDepthP50
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / rawDurationSeconds
        Removed value: -{
        -  "type": [
        -    "number",
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / rawEndedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / relayNodeId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / syncedAt
        Removed value: -{
        -  "description": "ISO 8601 timestamp",
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / tripItemId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
  2. 1 tool update
    • Changedlist_my_ratings4 fields changed
      • addedInput schema / properties / flagged / description
        Added value: +"'true' = only ratings flagged for moderation, 'false' = only unflagged ones."
      • addedInput schema / properties / maxRating / description
        Added value: +"Highest star rating to include (1-5)."
      • addedInput schema / properties / minRating / description
        Added value: +"Lowest star rating to include (1-5)."
      • addedInput schema / properties / search / description
        Added value: +"Case-insensitive text search in the comment and the participant name."
  3. 2 tool updates
    • Changedget_my_session4 fields changed
      • addedOutput schema / properties / durationEstimate
        Added value: +{
        +  "description": "One of: activity, typical",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / lastActiveAt
        Added value: +{
        +  "description": "ISO 8601 timestamp",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / rawDurationSeconds
        Added value: +{
        +  "type": [
        +    "number",
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / rawEndedAt
        Added value: +{
        +  "description": "ISO 8601 timestamp",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedlist_my_sessions4 fields changed
      • addedOutput schema / properties / items / items / properties / durationEstimate
        Added value: +{
        +  "description": "One of: activity, typical",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / items / items / properties / lastActiveAt
        Added value: +{
        +  "description": "ISO 8601 timestamp",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / items / items / properties / rawDurationSeconds
        Added value: +{
        +  "type": [
        +    "number",
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / items / items / properties / rawEndedAt
        Added value: +{
        +  "description": "ISO 8601 timestamp",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  4. 42 tool updates
    • Changedadd_program_info_card1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedadd_program_item2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedadd_template_info_card1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedadd_template_schedule_stop2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedadd_text_slide1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedadd_trip_item2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedcreate_program1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedcreate_template1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedcreate_trip1 field changed
      • addedOutput schema / properties / stableLiveCode
        Added value: +{
        +  "type": "boolean"
        +}
    • Changeddelete_program3 fields changed
      • addedOutput schema / properties / deletedTrips / properties
        Added value: +{
        +  "count": {
        +    "type": [
        +      "number",
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "names": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +}
      • changedOutput schema / properties / deletedTrips / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"object"
      • changedOutput schema / properties / keptCompletedTrips / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changeddelete_slide1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedduplicate_program1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedduplicate_template1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_audience4 fields changed
      • changedOutput schema / properties / byCountry / items / properties / count / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / byDevice / items / properties / count / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / byLanguage / items / properties / count / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / total / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_program3 fields changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / infoCards / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / items / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_ratings_summary7 fields changed
      • changedOutput schema / properties / averageRating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / properties / 1 / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / properties / 2 / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / properties / 3 / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / properties / 4 / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / properties / 5 / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / totalRatings / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_ratings_trend2 fields changed
      • changedOutput schema / properties / items / items / properties / avgRating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / items / items / properties / count / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_session4 fields changed
      • changedOutput schema / properties / ratings / items / properties / rating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / translationUsage / items / properties / audioInputSeconds / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / translationUsage / items / properties / inputTokens / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / translationUsage / items / properties / outputTokens / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_session_ratings1 field changed
      • changedOutput schema / properties / items / items / properties / rating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_stats5 fields changed
      • changedOutput schema / properties / avgDuration / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / avgParticipants / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / totalDuration / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / totalParticipants / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / totalTours / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_template4 fields changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / infoCards / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / scheduleStops / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / slides / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedget_my_trip9 fields changed
      • changedOutput schema / properties / infoCards / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / items / items / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / liveJoinCode
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / liveJoinUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / progress / properties / cancelled / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / progress / properties / done / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / progress / properties / percent / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / progress / properties / total / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / stableLiveCode
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedget_my_trip_ratings4 fields changed
      • changedOutput schema / properties / count / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / distribution / additionalProperties / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / participants / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / ratings / items / properties / stars / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_collectible_catalog3 fields changed
      • changedOutput schema / properties / limit / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / page / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / total / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_my_departures2 fields changed
      • changedOutput schema / properties / items / items / properties / sessionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / items / items / properties / totalParticipants / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_my_programs1 field changed
      • changedOutput schema / properties / items / items / properties / itemCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_my_ratings4 fields changed
      • changedOutput schema / properties / data / items / properties / rating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / limit / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / page / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / total / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_my_sessions2 fields changed
      • changedOutput schema / properties / items / items / properties / averageRating / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / items / items / properties / ratingCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedlist_my_templates1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "properties": {
        -      "items": {
        -        "items": {
        -          "properties": {
        -            "adoptionCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "broadcastMode": {
        -              "type": "string"
        -            },
        -            "category": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "city": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "collectibleId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "country": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "coverImageUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "createdAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "description": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "estimatedDuration": {
        -              "type": [
        -                "number",
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "guideId": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "isCurated": {
        -              "type": "boolean"
        -            },
        -            "isFavorite": {
        -              "type": "boolean"
        -            },
        -            "language": {
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "organizationId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "publishedAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "region": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "routerProfileId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "slides": {
        -              "items": {
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "sourceTemplateId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "status": {
        -              "type": "string"
        -            },
        -            "tags": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": [
        -                "array",
        -                "null"
        -              ]
        -            },
        -            "tourFormat": {
        -              "type": "string"
        -            },
        -            "tourType": {
        -              "type": "string"
        -            },
        -            "updatedAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "visibility": {
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "items"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "data": {
        -        "items": {
        -          "properties": {
        -            "adoptionCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "broadcastMode": {
        -              "type": "string"
        -            },
        -            "category": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "city": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "collectibleId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "country": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "coverImageUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "createdAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "description": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "estimatedDuration": {
        -              "type": [
        -                "number",
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "guideId": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "isCurated": {
        -              "type": "boolean"
        -            },
        -            "isFavorite": {
        -              "type": "boolean"
        -            },
        -            "language": {
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "organizationId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "publishedAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "region": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "routerProfileId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "slides": {
        -              "type": "array"
        -            },
        -            "sourceTemplateId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "status": {
        -              "type": "string"
        -            },
        -            "tags": {
        -              "type": [
        -                "array",
        -                "null"
        -              ]
        -            },
        -            "tourFormat": {
        -              "type": "string"
        -            },
        -            "tourType": {
        -              "type": "string"
        -            },
        -            "updatedAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "visibility": {
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "total": {
        -        "type": [
        -          "number",
        -          "string"
        -        ]
        -      }
        -    },
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "items": {
        +        "items": {
        +          "properties": {
        +            "adoptionCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "broadcastMode": {
        +              "type": "string"
        +            },
        +            "category": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "city": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "collectibleId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "country": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "coverImageUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "createdAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "description": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "estimatedDuration": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "guideId": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isCurated": {
        +              "type": "boolean"
        +            },
        +            "isFavorite": {
        +              "type": "boolean"
        +            },
        +            "language": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "organizationId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "publishedAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "region": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "routerProfileId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "slides": {
        +              "items": {
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "sourceTemplateId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "status": {
        +              "type": "string"
        +            },
        +            "tags": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": [
        +                "array",
        +                "null"
        +              ]
        +            },
        +            "tourFormat": {
        +              "type": "string"
        +            },
        +            "tourType": {
        +              "type": "string"
        +            },
        +            "updatedAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "visibility": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "data": {
        +        "items": {
        +          "properties": {
        +            "adoptionCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "broadcastMode": {
        +              "type": "string"
        +            },
        +            "category": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "city": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "collectibleId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "country": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "coverImageUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "createdAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "description": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "estimatedDuration": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "guideId": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isCurated": {
        +              "type": "boolean"
        +            },
        +            "isFavorite": {
        +              "type": "boolean"
        +            },
        +            "language": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "organizationId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "publishedAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "region": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "routerProfileId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "slides": {
        +              "type": "array"
        +            },
        +            "sourceTemplateId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "status": {
        +              "type": "string"
        +            },
        +            "tags": {
        +              "type": [
        +                "array",
        +                "null"
        +              ]
        +            },
        +            "tourFormat": {
        +              "type": "string"
        +            },
        +            "tourType": {
        +              "type": "string"
        +            },
        +            "updatedAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "visibility": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "total": {
        +        "type": [
        +          "number",
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedlist_my_trips1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "properties": {
        -      "items": {
        -        "items": {
        -          "properties": {
        -            "coverImageUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "coverThumbUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "createdAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "endDate": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "itemCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "maxParticipants": {
        -              "type": [
        -                "number",
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "participantCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "programId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "startDate": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "status": {
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "items"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "data": {
        -        "items": {
        -          "properties": {
        -            "coverImageUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "coverThumbUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "createdAt": {
        -              "description": "ISO 8601 timestamp",
        -              "type": "string"
        -            },
        -            "endDate": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "itemCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "maxParticipants": {
        -              "type": [
        -                "number",
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "participantCount": {
        -              "type": [
        -                "number",
        -                "string"
        -              ]
        -            },
        -            "programId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "startDate": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "status": {
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "total": {
        -        "type": [
        -          "number",
        -          "string"
        -        ]
        -      }
        -    },
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "items": {
        +        "items": {
        +          "properties": {
        +            "coverImageUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "coverThumbUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "createdAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "endDate": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "itemCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "maxParticipants": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "participantCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "programId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "startDate": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "data": {
        +        "items": {
        +          "properties": {
        +            "coverImageUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "coverThumbUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "createdAt": {
        +              "description": "ISO 8601 timestamp",
        +              "type": "string"
        +            },
        +            "endDate": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "itemCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "maxParticipants": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "participantCount": {
        +              "type": [
        +                "number",
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "programId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "startDate": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "total": {
        +        "type": [
        +          "number",
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpublish_trip1 field changed
      • addedOutput schema / properties / stableLiveCode
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedset_template_visibility1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedset_trip_item_status2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_program1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_program_info_card1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_program_item2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_slide_caption1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_template1 field changed
      • changedOutput schema / properties / adoptionCount / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_template_info_card1 field changed
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_template_schedule_stop2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedupdate_trip4 fields changed
      • addedInput schema / properties / body / properties / stableLiveCode
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / liveJoinCode
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / liveJoinUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / stableLiveCode
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedupdate_trip_item2 fields changed
      • changedOutput schema / properties / headsetPolicy / properties / groupThreshold / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sortOrder / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
  5. 60 tool updates
    • First observedadd_program_info_card
    • First observedadd_program_item
    • First observedadd_template_info_card
    • First observedadd_template_schedule_stop
    • First observedadd_text_slide
    • First observedadd_trip_item
    • First observedadd_trip_participant
    • First observedcreate_program
    • First observedcreate_template
    • First observedcreate_trip
    • First observeddelete_program
    • First observeddelete_program_info_card
    • First observeddelete_program_item
    • First observeddelete_slide
    • First observeddelete_template
    • First observeddelete_template_info_card
    • First observeddelete_template_schedule_stop
    • First observeddelete_trip
    • First observeddelete_trip_item
    • First observedduplicate_program
    • First observedduplicate_template
    • First observedget_my_audience
    • First observedget_my_program
    • First observedget_my_ratings_summary
    • First observedget_my_ratings_trend
    • First observedget_my_session
    • First observedget_my_session_ratings
    • First observedget_my_stats
    • First observedget_my_template
    • First observedget_my_trip
    • First observedget_my_trip_ratings
    • First observedinvite_trip_participant
    • First observedlink_collectible_to_template
    • First observedlist_collectible_catalog
    • First observedlist_my_departures
    • First observedlist_my_programs
    • First observedlist_my_ratings
    • First observedlist_my_sessions
    • First observedlist_my_templates
    • First observedlist_my_trips
    • First observedpublish_trip
    • First observedremove_trip_participant
    • First observedreorder_program_info_cards
    • First observedreorder_program_items
    • First observedreorder_slides
    • First observedreorder_template_info_cards
    • First observedreorder_template_schedule_stops
    • First observedreorder_trip_items
    • First observedset_template_visibility
    • First observedset_trip_item_status
    • First observedunlink_template_collectible
    • First observedupdate_program
    • First observedupdate_program_info_card
    • First observedupdate_program_item
    • First observedupdate_slide_caption
    • First observedupdate_template
    • First observedupdate_template_info_card
    • First observedupdate_template_schedule_stop
    • First observedupdate_trip
    • First observedupdate_trip_item

Publisher details

Operator
First Point Yazılım Ltd. Şti. (Your Next Tours) · Publisher source
Operator website
https://yournext.tours
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Your Next Tours account (free sign-up). Website builder tools are available only to organizations on the Enterprise plan.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources