Skip to main content
Glama

Cancel an appointment

cancel_appointment
DestructiveIdempotent

Cancels an appointment, removes it from the staff calendar and stops its reminders. When the customer agreed to texts, LobbyStack texts them that it's cancelled. Cancelling an appointment that is already cancelled returns it unchanged. Confirm with the owner before calling.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "appointment_id": "<appointment_id>"
    },
    "name": "cancel_appointment"
  }
}

Input Schema

NameRequiredDescriptionDefault
appointment_idYesThe appointment id (UUID).

Output Schema

NameRequiredDescriptionDefault
idYesStable identifier (UUID).
notesYesNotes on the appointment. The receptionist can read them to a verified caller.
sourceYesWhere the booking came from, for example voice, web_chat, dashboard or api.
statusYes
ends_atYesISO 8601 timestamp in UTC.
staff_idYesStable identifier (UUID).
timezoneYes
starts_atYesISO 8601 timestamp in UTC.
contact_idYesStable identifier (UUID).
created_atYesISO 8601 timestamp in UTC.
service_idYesStable identifier (UUID).
staff_nameYes
updated_atYesISO 8601 timestamp in UTC.
contact_nameYes
service_nameYes
contact_phoneYes
calendar_sync_statusYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/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 openWorldHint=false, so safety and idempotency are structured data. The description still earns credit for the concrete blast radius (calendar removal, reminder cancellation) and the customer-facing SMS side effect, which no annotation conveys. It does not explain authorization requirements or what identifiers are returned, leaving some mutation context implicit.

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

Conciseness4/5

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

Four short sentences, front-loaded with the primary effect and side effects, with no filler. The safety instruction ("Confirm with the owner") is placed last rather than fronted, which slightly weakens scanability for a destructive tool.

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 described, and the definition still explains the idempotent no-op case. For a one-parameter destructive mutation, the effects, customer-visible side effect, and confirmation requirement are all covered.

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

Parameters3/5

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

There is a single parameter with 100% schema description coverage, and the description adds nothing about appointment_id that the schema does not already say. Baseline 3 applies because the schema carries the full parameter burden.

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

Purpose4/5

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

The description opens with a specific verb and resource ("Cancels an appointment") and enumerates concrete effects: removed from the staff calendar, reminders stopped, customer texted when opted in. It is clearly distinct from book_appointment or reschedule_appointment by describing terminal-state consequences, though it never names those siblings explicitly.

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

Usage Guidelines4/5

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

It supplies a real usage precondition — "Confirm with the owner before calling" — plus the edge-case behavior for re-cancelling an already-cancelled appointment, which tells the agent it need not pre-check state. It stops short of stating when to prefer reschedule_appointment over cancellation.

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