Skip to main content
Glama

Cancel a reservation

cancel_booking
DestructiveIdempotent

Cancels in two steps. The first mode takes reservation_number and phone_last4, emails a code and returns cancel_id. The second mode takes cancel_id and code, cancels the reservation, releases the room and notifies staff and guest. Automated cancellation is available more than 48 hours before check-in during office hours; other cancellations are handled by the property by phone. Cancellation codes have a separate budget of three per reservation in a rolling 24 hours and, by default, five across the portfolio in a rolling 24 hours, unaffected by booking traffic. The portfolio ceiling is configurable. Unavailable or over-budget cancellations give the property phone without a booking link. The published cancellation policy applies. No payment or refund is processed.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "cancel_booking"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeNoThe six-digit code received by the guest by email.
cancel_idNoOpaque identifier returned by the first step.
phone_last4NoLast four digits of the booking contact phone number.
reservation_numberNoReservation number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=true, openWorld=true and readOnly=false, so the safety profile is covered; the description adds substantial context beyond that: the emailed code, that the room is released and staff and guest are notified, two separate rate-limit budgets, and explicitly that no payment or refund is processed. The only gap is that repeated invocation with the same cancel_id/code is claimed idempotent by annotations but consumes step-two budget, a nuance the text leaves ambiguous.

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 structure is well front-loaded: the two-step protocol leads, then operational gating, then policy and scope caveats. A few clauses (portfolio ceiling configurability, 'unaffected by booking traffic') are denser than strictly necessary for an agent choosing the tool, but each still carries operational meaning, so nothing is pure 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, multi-step, open-world tool with no output schema, the description covers what an agent needs: step-one return value (cancel_id), step-two side effects, eligibility windows, budget limits, and the explicit note that no payment or refund is processed. Return-shape detail is unnecessary because step one's output is named inline and no output schema exists to defer to.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description earns above that by grouping the four optional parameters into modes: reservation_number plus phone_last4 for step one, cancel_id plus code for step two. With zero required parameters in a flat schema, that conditional pairing is genuinely new information an agent could not infer from the schema alone.

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

Purpose5/5

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

The opening sentence states a specific verb and resource ('Cancels in two steps') and immediately decomposes the operation into its two distinct modes with their respective inputs. This distinguishes it cleanly from siblings like confirm_booking, get_booking, and start_booking, which an agent can rule out from the first line alone.

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

Usage Guidelines5/5

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

The description states explicit eligibility conditions: automated cancellation works only more than 48 hours before check-in during office hours, and other cancellations are handled by the property by phone. It also says what happens on fallback (unavailable or over-budget returns the property phone without a booking link), so the agent knows both the path and the dead ends.

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