Skip to main content
Glama

Norm Booking

Cancel an appointment

cancel_appointment
DestructiveIdempotent

Cancel one of the signed-in client's own appointments. This frees the slot in the real studio calendar and the time becomes available to others — always confirm the exact appointment with the client before calling. Get bookingId from my_appointments.

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": {
      "bookingId": "<bookingId>"
    },
    "name": "cancel_appointment"
  }
}

Input Schema

NameRequiredDescriptionDefault
studioNoStudio of that appointment, from `my_appointments`. Omit to look it up from the client's upcoming visits.
bookingIdYesBooking id from `my_appointments`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description still earns credit by naming the real-world consequence — the slot is freed in the actual studio calendar and becomes bookable by others — which explains why confirmation is required. It stops short of describing failure modes (unknown or already-cancelled bookingId).

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

Conciseness5/5

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

Three short sentences doing distinct work: what it does, why it matters (slot freed), and the confirmation rule plus parameter source. No filler, and the core action is front-loaded.

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

Completeness4/5

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

For a two-parameter mutation with annotations carrying the safety hints and no output schema, the definition covers scope, consequence, and parameter provenance. Only edge-case behavior on errors or stale IDs is left unstated, which is minor.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, including the studio enum and the "omit to look it up" behavior. The description only restates the provenance of bookingId, adding little beyond the schema; the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("Cancel ... appointments") and pins the scope to "one of the signed-in client's own appointments", which immediately separates it from book_appointment and the read-only siblings. An agent knows exactly what this does without opening the schema.

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

Usage Guidelines4/5

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

Gives a concrete prerequisite ("always confirm the exact appointment with the client before calling") and tells the agent where the identifier comes from ("Get `bookingId` from `my_appointments`"). It does not spell out when not to use it — e.g. past or already-cancelled bookings — but the usage context is clear.

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