Skip to main content
Glama

Confirm, move or cancel an appointment

update_appointment
DestructiveIdempotent

Act on one booking from list_appointments (or cancel a registration / enrolment by its claim_id, optionally with refund for a paid place): "confirm" (the visitor is told and reminders start), "reschedule" (new date YYYY-MM-DD and time HH:MM on the business's clock; refused when that time is not open unless override_hours), "suggest_time" (the owner can't do the requested time: moves it to date/time AND confirms it, emailing the visitor the new time with an optional message and a link to pick another), "cancel" (reminders stop and the visitor is emailed — confirm with the owner first), "completed", "no_show".

Input Schema

NameRequiredDescriptionDefault
dateNoFor "reschedule"
timeNoFor "reschedule", business clock
notesNoReplace the booking's notes
actionYes
refundNoWith claim_id + "cancel": also refund a paid place in full. Ask the owner first
messageNoFor "suggest_time" / "cancel": a short note to the visitor, in their email
site_idYesThe site, from list_sites
claim_idNoA registration / enrolment from list_appointments view "registrations" / "enrolments" — action "cancel" only
user_goalNoOptional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details.
booking_idNoFrom list_appointments
override_hoursNoFor "reschedule": keep a time outside the published hours

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / user_goal
      Added value: +{
      +  "description": "Optional: the user's goal behind this call, in one short sentence of plain words (e.g. \"add a page so customers can book tables\"). No names, emails or other personal details.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and idempotentHint=true but say nothing about side effects; the description fills exactly that gap — which actions email the visitor, that reminders start on 'confirm' and stop on 'cancel', that 'suggest_time' both moves and confirms, and that refund is a full refund on a paid place. The 'confirm with the owner first' guardrail adds approval context 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?

Front-loaded with the resource and its source tool, then action-by-action in a single dense sentence. Every clause carries information, though the nested parentheses and run-on structure make it heavier to parse than an equivalent bulleted phrasing would be.

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 an 11-parameter destructive mutation tool with no output schema, the description covers side effects, prerequisites, and failure modes well. Remaining gaps are minor: it doesn't state what the call returns or whether booking_id and claim_id are mutually exclusive.

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 91%, so the baseline is 3, but the description adds cross-parameter conditionality the schema only implies per-field: date/time belong to reschedule, claim_id is cancel-only, override_hours governs reschedule acceptance, message applies to suggest_time/cancel. It also clarifies 'business's clock' for time. It stops short of covering user_goal or notes, hence not 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?

Opens with a specific verb+resource ('Act on one booking from list_appointments') and then enumerates all six actions with their distinct meanings. It clearly separates itself from list_appointments (read) and manage_appointments (config), and the claim_id branch for registrations/enrolments is explicitly scoped.

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?

Each action carries its own selection condition: 'confirm' when the visitor should be told, 'suggest_time' when the owner can't do the requested time, 'cancel' with the explicit prerequisite 'confirm with the owner first'. It also names the refusal condition (time not open) and the escape hatch (override_hours), so an agent knows when an action will fail.

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