Skip to main content
Glama

Cancel a Phorme gym booking

cancel_gym_booking
Destructive

Use this when a signed-in user wants to give up a class they booked, are on the waitlist for, or asked a gym for on Phorme. Confirm which class with the user first, and set confirmation to true only after they said yes. It cancels that booking for the connected Phorme account and frees the spot for the next person on the waitlist. It takes the booking id, or the class id of the booked class. Sales are final, so a paid class is not refunded. It needs a connected Phorme account with the training:write permission.

Input Schema

NameRequiredDescriptionDefault
class_idNoThe class_id of the booked class, when the booking_id is not known.
booking_idNoThe booking_id from book_gym_class. Give this or class_id.
confirmationYesSet to true only after the user said yes to cancelling this class.

Output Schema

NameRequiredDescriptionDefault
nextYesWhat to tell the user next.
cancelledYes
booking_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already flag destructiveHint and openWorldHint, and the description adds real behavioral context beyond them: it frees a waitlist spot, paid classes are not refunded ('sales are final'), confirmation must be true only after user consent, and the training:write permission is required.

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 trigger and consent requirement, and each sentence carries information (permission, no-refund, waitlist effect). Slightly repetitive on the id parameters, which the schema already covers.

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, open-world mutation with an output schema present, the description supplies everything an agent needs: consent sequencing, auth requirement, refund consequence, and id alternatives. Return values are covered by the output schema.

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 the schema already documents class_id, booking_id and confirmation. The description restates the either/or id choice and the confirmation gate without adding format or edge-case detail beyond what the schema provides, so 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 a Phorme gym booking') and enumerates the covered cases (booked class, waitlist, gym request). An agent can immediately distinguish it from booking-oriented siblings like book_gym_class.

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?

Explicit when-to-use trigger ('when a signed-in user wants to give up a class'), plus a required confirmation workflow and the permission prerequisite. It does not name a direct alternative tool, but the cancellation-vs-booking split is unambiguous from the name and siblings.

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.