Skip to main content
Glama

GymFlexa Gym Management

Book a gym session

book_appointment
DestructiveIdempotent

Use this when someone asks to book a member into a session, class or personal training at their gym. Returns the new session with its time, trainer and services; it takes the gym's usual session length and reminders, so the gym's reminder messages go to the member. Not for finding free slots.

Input Schema

NameRequiredDescriptionDefault
noteNoA note for the gym team.
gymIdNoId of the gym, from list_gyms. Leave it out when the user has one gym.
memberIdYesId of the member, from list_members or create_member.
requestIdYesA unique id you choose for this booking, such as a UUID. Calling again with the same requestId returns the first booking instead of booking twice.
startTimeYesStart as an ISO 8601 time with the gym's UTC offset, such as 2026-11-20T10:00:00+01:00.
serviceIdsNoIds of the services booked, from list_services.
providerIdsNoIds of the trainers who take it, from list_trainers. Leave it out when the gym has one trainer or the user is the trainer.
durationMinutesNoLength in minutes. Leave it out for the gym's usual session length.

Output Schema

NameRequiredDescriptionDefault
statusYes
appointmentYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the mutation side (readOnlyHint=false, destructiveHint=true) and idempotency, so the description's added value is in disclosing that gym defaults for session length and reminders are applied and that reminder messages will go to the member — a real consequence the agent can relay. It still doesn't cover failure behavior such as a slot already being taken or permission requirements.

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, front-loaded with the usage trigger, then the return value, then the default/reminder side effect, then the exclusion. Every clause does work and nothing is redundant.

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?

With an output schema present, return values need not be spelled out, and the description still summarizes them; combined with the defaults and idempotency context this covers most of what an agent needs for an 8-parameter mutation. Gaps remain around conflict/failure handling, which matters given destructiveHint=true.

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 description coverage is 100% and the parameters are well documented (including requestId idempotency and the gymId/providerIds omission rules), so the schema carries the load and a 3 is the baseline. The description only echoes the durationMinutes default and adds the reminder implication, not new per-parameter meaning.

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?

The description pairs a specific verb ("book") with a precise resource ("a member into a session, class or personal training at their gym") and immediately frames itself as the booking action, distinct from cancel, reschedule, and availability siblings. An agent can route requests correctly 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?

It gives an explicit trigger ("when someone asks to book a member into a session") and one explicit exclusion ("Not for finding free slots"), which cleanly routes slot-discovery to get_gym_availability. It does not name reschedule_appointment or cancel_appointment as the alternatives for existing bookings, leaving that inference to the agent.

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