Skip to main content
Glama

cancel_booking

Destructive

Cancels the signed-in person's booking, or only the parts listed in component_ids. Call it only after preview_booking_change has shown the person the cancellation terms and they agreed. It asks each provider and reports each part's own outcome: report a cancellation only when the result says it happened. If the outcome is unknown, check get_updates instead of calling again. Booking changes through an assistant are part of Trip Concierge. With Trip Concierge, you can change, rebook or cancel your bookings through whichever way you prefer — Autonomad's concierge, your own autonomous agent, or an assistant like ChatGPT, Claude or Muse. On a trip without Trip Concierge this returns concierge_required and nothing changes; the person can make the change themselves in My Trips on autonomad.ai. Needs the bookings:cancel permission.

Input Schema

NameRequiredDescriptionDefault
noteNoOptional note from the person about the cancellation. Up to 4000 characters.
quote_idsNoFor flights: the cancel quote the person was shown, as { component_id: refund_quote.quote_id } from preview_booking_change. Without it (or if a newer quote exists) nothing is canceled and a fresh quote comes back to show them.
referenceYesThe booking reference the person was given (e.g. ANM-1A2B3C4D), or the trip id.
component_idsNoOnly these parts of the booking (ids from preview_booking_change). Omit for all.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / quote_ids / description
      Previous value: -"For flights: the cancel quote the person was shown, as { component_id: refund_quote.quote_id } from preview_booking_change. Without it (or if a newer quote exists) nothing is cancelled and a fresh quote comes back to show them."New value: +"For flights: the cancel quote the person was shown, as { component_id: refund_quote.quote_id } from preview_booking_change. Without it (or if a newer quote exists) nothing is canceled and a fresh quote comes back to show them."
  2. Changed1 schema field changed
    • addedInput schema / properties / quote_ids
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "For flights: the cancel quote the person was shown, as { component_id: refund_quote.quote_id } from preview_booking_change. Without it (or if a newer quote exists) nothing is cancelled and a fresh quote comes back to show them.",
      +  "type": "object"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (destructive/no-idempotent) by disclosing that cancellations are attempted per provider, that each part reports its own outcome, that a cancellation should only be reported when the result says it happened, and that a trip without Trip Concierge returns concierge_required with nothing changed. It also names the required bookings:cancel permission.

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

Conciseness3/5

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

The operational guidance is front-loaded and tight, but the Trip Concierge marketing passage ('change, rebook or cancel your bookings through whichever way you prefer — Autonomad's concierge, your own autonomous agent, or an assistant like ChatGPT, Claude or Muse') is padding that does not help an agent invoke the tool. Only the trailing 'concierge_required' clause in that block earns its place.

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

Completeness4/5

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

For a destructive, non-idempotent, open-world mutation it covers preconditions, permission, partial-failure reporting, the no-op error case, and the retry rule. With no output schema, the shape of the per-part result is only loosely described ('reports each part's own outcome'), which is the one remaining 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 coverage is already 100%, so baseline is 3, but the description adds cross-parameter meaning: omitting component_ids cancels everything, and quote_ids staleness produces a fresh quote rather than a cancellation. That reinforces rather than merely repeats the schema.

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

Purpose5/5

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

Opens with a specific verb and resource plus scope ('Cancels the signed-in person's booking, or only the parts listed in component_ids'), so an agent knows it is a mutation with optional partial targeting. It is clearly distinct from siblings like preview_booking_change and get_updates, both of which are named.

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?

States an explicit precondition ('Call it only after preview_booking_change has shown the person the cancellation terms and they agreed') and an explicit anti-pattern ('If the outcome is unknown, check get_updates instead of calling again'). The when-not-to-call-again guidance is exactly what prevents duplicate destructive calls.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources