Skip to main content
Glama
aimharder-mcp
by fvena

prepare_planned_bookings

Read-only

Preview planned class bookings for each gym-local date in a 14-day range, reporting ready, booked, waitlisted, or not-yet-open statuses without writes.

Instructions

Preview booking the account holder's planned classes (AIMHARDER_BOOKING_PLAN: weekday, class name and start time entries; a weekday may have several) for every gym-local date in a range of up to 14 days, such as "book next week". Use it when the account holder asks to book without naming exact classes. Each planned class on each date is one entry, and each date without one reports not-planned; entries report ready (with its own single-use actionReference), already-booked, waitlisted, not-yet-open (with bookingOpensAt), missing, ambiguous or unsupported. Sends no write. Show the whole list, then execute each ready day separately with execute_booking_creation under the same writeConfirmationRequired rules as prepare_booking_creation. Ask about the other days instead of choosing a different class.

Input Schema

NameRequiredDescriptionDefault
endDateYesLast gym-local date, inclusive. At most 14 calendar dates in all.
startDateYesFirst gym-local date, inclusive (YYYY-MM-DD).

Output Schema

NameRequiredDescriptionDefault
gymYes
daysYes
planYes
actionYes
endDateYes
noticesYes
startDateYes
writeConfirmationRequiredYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Sends no write.' Beyond that, it discloses the full status vocabulary each entry can return (ready, already-booked, waitlisted, not-yet-open with bookingOpensAt, missing, ambiguous, unsupported), the single-use nature of each actionReference, and the per-date not-planned reporting for empty days — behavior an agent cannot infer from annotations alone.

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?

Purpose and trigger condition are front-loaded, which is correct, and no sentence is filler. However, the middle section is a single dense run-on enumerating statuses and the second half bundles procedural instructions, so it is slightly heavier than ideal for scanning.

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?

Despite having an output schema, the description still explains the meaning of each return status, the actionReference handoff, and the two-step preview-then-execute workflow — everything an agent needs to drive a multi-day booking plan correctly.

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%, with both startDate and endDate fully documented including the 14-date cap. The description restates the 14-day limit and offers the 'book next week' example, but adds no new syntax or format guidance beyond the schema, so the baseline 3 is appropriate.

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 opens with a specific verb+resource: 'Preview booking the account holder's planned classes', and immediately anchors it to a data source (AIMHARDER_BOOKING_PLAN). It also disambiguates from the sibling tools by noting that actual writes happen via execute_booking_creation and that confirmation rules mirror prepare_booking_creation.

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?

It states the exact triggering condition ('Use it when the account holder asks to book without naming exact classes'), which is the key differentiator from prepare_booking_creation. It also prescribes the follow-up flow ('Show the whole list, then execute each ready day separately with execute_booking_creation') and an explicit fallback ('Ask about the other days instead of choosing a different class').

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