Skip to main content
Glama
cotletdev

Fresha MCP Server

Cancel appointment

cancel_appointment
Destructive

Cancels an unpaid Fresha appointment without a charge and can notify the client; also cancels later appointments in a repeating series. Use it when no cancellation fee or paid deposit applies.

Instructions

Cancel an appointment without a charge, optionally telling the client.

Cancels the appointment as Cancel in its drawer does, with one of the business's cancellation reasons. With notify_client (default true) Fresha sends the client a cancellation message, so this can reach the client; false cancels quietly. whole_series also cancels the later appointments of a repeating series. An appointment with a cancellation fee or a paid deposit is refused: cancel it in Fresha. It cannot be undone here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeNothis_appointment (default) or whole_series, for repeating appointments: this and every later one.
reasonNoName of one of the business's cancellation reasons, e.g. Client not available. Default: none.
notify_clientNoSend the client a cancellation message. Default: true.
appointment_idYesAppointment id from list_appointments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

The description goes well beyond the annotations: it discloses irreversibility ("cannot be undone here"), side effects (the client may be messaged), refusal conditions, and series-wide blast radius. However, some of this overlaps the destructiveHint=true / openWorldHint=true annotations, and it never describes what the call returns, which matters given there is no output schema.

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 action and its key caveats, and most sentences carry distinct information. There is mild redundancy between the paragraph text and the schema on whole_series/notify_client defaults.

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 mutation with no output schema, it covers safety, side effects, refusal conditions, and scope. The remaining gap is the return value (e.g., which appointments were cancelled) and how to recover after an unexpected series cancellation.

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 all four parameters are already documented in the input schema. The description restates the notify_client default and the whole_series meaning without adding format, syntax, or edge-case detail beyond the schema, so the baseline 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?

Specific verb + resource ("Cancel an appointment") plus scope qualifiers (single vs whole series) and an explicit analogy to the in-product Cancel action. It is clearly distinguishable from siblings like reschedule_appointment or get_appointment.

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?

Explicitly states the precondition that selects the alternative: an appointment with a cancellation fee or paid deposit is refused and must be cancelled in Fresha instead. It also names the quiet-vs-notify choice so the agent knows which mode to pick per situation.

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