Gymmy
Server Details
Find gyms and studios, see classes and prices, and book with Gymmy.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- zdeadex/gymmy-mcp
- GitHub Stars
- 0
- Server Listing
- Gymmy MCP server
TDQS
Scored across 10 tools
Most tools target distinct resource+action combos (book_class, cancel_booking, get_gym, get_prices, search_gyms). The main overlap is get_schedule (a gym's classes over 14 days) vs my_schedule (the member's gym classes over a week with bookable ids), which could be confused, though the my_ prefix and descriptions help distinguish them.
Names follow two clear, predictable patterns: verb_noun actions (book_class, cancel_booking, get_gym, search_gyms, start_trial) and a my_ prefix for the signed-in member's own data (my_bookings, my_gyms, my_schedule). The split is intentional and readable, though not a single uniform convention.
Ten tools sit squarely in the ideal range and each earns its place: discovery (search_gyms, get_gym, get_prices), member state (my_gyms, my_bookings, my_schedule), and lifecycle actions (book_class, cancel_booking, start_trial). No redundant or filler tools.
The booking lifecycle is well covered (discover gym, view schedule, book, cancel, trial). Minor gaps exist, such as no explicit reschedule/update or single-class detail view, but these are workable via cancel+rebook and get_schedule.
Available Tools
10 toolsbook_classBook a classAInspect
Books a class for the signed-in member with their own membership (or puts them on the waitlist when full, if the gym allows). Uses the gym's booking rules. No payment is taken here.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | No | Gymmy gym id (from my_gyms). Needed only if you belong to several gyms. | |
| date | Yes | Class date (YYYY-MM-DD). | |
| locale | No | Answer language. Default fr. | |
| class_id | Yes | Class id (from my_schedule). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world operation, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: waitlist fallback when the class is full, dependence on the gym's own booking rules, and the fact that no payment is taken here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and immediately followed by the waitlist caveat and payment clarification. 'Uses the gym's booking rules' is slightly vague filler but still informative enough to keep.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a booking mutation with no output schema, the description covers the key outcomes (booking, waitlist, no payment) and the rule source. It omits error/edge cases such as already-booked classes or missing membership, but nothing critical to invoking the tool correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents gym, date, locale, and class_id with sources (my_gyms, my_schedule). The description adds no parameter-level detail such as format or defaults, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Books a class') plus the actor and scope ('signed-in member with their own membership'), which is unambiguous. It does not explicitly distinguish itself from sibling cancel_booking or explain why it is preferred over a waitlist-related tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than spelled out: the reader learns it applies to the signed-in member's own membership and that a waitlist is used when full. There is no explicit when-to-use/when-not-to-use guidance or reference to the sibling tools (cancel_booking, my_bookings) that would route the agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_bookingCancel a bookingADestructiveInspect
Cancels the signed-in member's booking (or waitlist spot) for a class. The gym's cancellation deadline applies; a late cancel may count as used.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | No | Gymmy gym id (from my_gyms). Needed only if you belong to several gyms. | |
| date | Yes | Class date (YYYY-MM-DD). | |
| locale | No | Answer language. Default fr. | |
| class_id | Yes | Class id (from my_schedule). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, idempotent=false, and readOnly=false, but the description adds genuinely useful context beyond them: the cancellation deadline governs the action and a late cancel may count as used, which tells the agent the operation has real consequences. It does not cover error behavior (e.g., no matching booking) but the deadline/consequence detail is a meaningful value-add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences with no waste. The scope is stated first and the deadline caveat follows, so an agent gets the essential information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive cancel tool with annotations that already convey the safety profile and a fully documented schema, the description covers the operation and its key consequence (late-cancel penalty). No output schema is needed and nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (gym, date, locale, class_id) including enums and cross-references to my_gyms/my_schedule. The description adds no parameter-level meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Cancels) and resource (the signed-in member's booking or waitlist spot) with clear scope. It implicitly reads as the inverse of book_class but never names or explicitly contrasts with any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose and the note that the cancellation deadline applies, but there is no explicit when-to-use guidance, no mention of prerequisites (e.g., an existing booking must exist), and no routing to siblings like my_bookings to confirm a booking first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gymGym detailsBRead-onlyIdempotentInspect
Details of a Gymmy gym: description, address, opening hours, sites, how to book, page and join links.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | Yes | Gym identifier: the `gym` value from search_gyms (page slug or Gymmy id). | |
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own: nothing about error handling for an unknown gym id, whether the join/booking links imply authentication, or any caching/rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the resource front-loaded and the returned fields listed without filler. It is a noun phrase rather than a sentence, but every element earns its place and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the returned detail fields, and the annotations cover the read-only safety profile. Missing only edge-case behavior (unknown/mismatched gym id, locale fallback semantics) for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (gym identifier, locale enum with default fr) are fully documented in the schema. The description adds no syntax or format detail beyond that, so the baseline 3 is the right level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('a Gymmy gym') and enumerates the content returned (description, address, opening hours, sites, booking info, links), so the agent knows exactly what it fetches. It does not, however, contrast itself with siblings like search_gyms or my_gyms, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use, when-not-to-use, or alternative-tool guidance. The only routing hint — that the `gym` id comes from search_gyms — lives in the input schema, not the description, so the description itself gives the agent nothing to select on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesPrices and offersARead-onlyIdempotentInspect
Memberships, class packs and trial offers of a Gymmy gym with prices in EUR and a direct sign-up link per offer.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | Yes | Gym identifier: the `gym` value from search_gyms (page slug or Gymmy id). | |
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds currency (EUR) and the presence of per-offer sign-up links, which is useful but modest; it says nothing about how many offers come back, pagination, or behavior for an unknown/foreign gym id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded phrase with no filler; every element (offer types, currency, sign-up link) earns its place and nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does describe the payload's content and key attribute (prices in EUR, sign-up link per offer). It stops short of indicating structure or size of the returned offer list, but is otherwise sufficient for a 2-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: `gym` is documented as the slug/Gymmy id from search_gyms and `locale` documents the fr/en answer language with default fr. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the concrete resource it returns (memberships, class packs, trial offers) with two distinguishing details: prices are in EUR and each offer carries a sign-up link. It's clearly distinct from sibling reads like get_gym or get_schedule, though it never names the verb 'retrieve' or an alternative tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement. Usage is only implied by the mention of a 'direct sign-up link per offer', which suggests it feeds a pre-signup flow (start_trial), but the agent must infer this rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduleClass scheduleARead-onlyIdempotentInspect
Upcoming classes of a Gymmy gym (next 14 days): time, duration, spots left, and a booking link with the class already picked.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | Yes | Gym identifier: the `gym` value from search_gyms (page slug or Gymmy id). | |
| date | No | Only this day (YYYY-MM-DD). | |
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavior beyond that: a fixed 14-day horizon and a booking link with the class pre-picked, which tells the agent what it can do with the result. It stops short of noting rate limits or handling of invalid gym ids.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads scope and then the payload; every clause carries information (horizon, fields, pre-picked booking link). Nothing is padded or restated from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the job of describing the return payload, which it does well. It is slightly incomplete on edge behavior (empty schedule, out-of-window date, default locale), but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents gym, date (YYYY-MM-DD) and locale. The description adds nothing about the date window's interaction (e.g., must fall inside the 14 days) or the locale default, so the 3 baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource with scope ('Upcoming classes of a Gymmy gym (next 14 days)') and enumerates the returned fields (time, duration, spots left, booking link). It is clearly differentiated from get_gym/get_prices, but never explicitly contrasts itself with the sibling my_schedule, which is the closest alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer 'use this to browse a specific gym's schedule', but there is no when-to-use vs when-to-use-something-else guidance, and no mention of my_schedule despite it being the obvious overlapping sibling. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_bookingsMy bookingsARead-onlyIdempotentInspect
The signed-in member's upcoming booked and waitlisted classes (next 2 weeks) at one of their Gymmy gyms.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | No | Gymmy gym id (from my_gyms). Needed only if you belong to several gyms. | |
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower; the description usefully adds scope traits: only the signed-in member's data, only the next 2 weeks, and inclusion of waitlisted as well as booked classes. It does not mention ordering or result size, but the added scope is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that packs resource, personal scope, statuses, and time window with no filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still conveys what comes back (booked and waitlisted classes over a 2-week window for the current member), which is the key information. Minor gaps remain on ordering or volume but nothing essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, and the enum locale is described in the schema. The description adds only loose context ('at one of their Gymmy gyms') for the gym param and nothing for locale, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-like resource ('upcoming booked and waitlisted classes') with clear scope: the signed-in member's own data and a 2-week window. It is distinguishable from write tools like book_class/cancel_booking, though it does not explicitly differentiate itself from the sibling my_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — call this to see the member's own upcoming bookings — and the schema's gym note ('from my_gyms') implicitly routes to the my_gyms tool. However, there is no explicit when/when-not guidance and no statement of how this differs from my_schedule for a caller choosing between the two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_gymsMy gymsBRead-onlyIdempotentInspect
Gyms the signed-in Gymmy member belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds only the personal-scope constraint (signed-in member), with no note on authentication requirements or what happens when the member has no gyms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, and the scoping qualifier is front-loaded. It is arguably too terse, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial, parameterless-required, read-only listing tool whose safety profile is fully covered by annotations and whose only parameter is fully documented in the schema, the description supplies the essential scope. A hint at the returned shape would be nice but is not required without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional parameter (locale) with 100% schema description coverage, including the enum values and default. The description adds nothing about it, but the schema already carries the full burden, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (gyms) and a precise scope (gyms the signed-in member belongs to), which implicitly distinguishes it from search_gyms and get_gym. However, it is delivered as a noun fragment with no verb, so it reads as a label rather than a stated operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus siblings like search_gyms, get_gym, or my_bookings. The agent must infer from the scope phrase alone that this is the personal-membership listing rather than a lookup or search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_scheduleMy gym's scheduleARead-onlyIdempotentInspect
Classes at the signed-in member's gym for a week, with the class ids book_class needs, spots left and whether they are booked.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | No | Gymmy gym id (from my_gyms). Needed only if you belong to several gyms. | |
| week | No | Any day of the week (YYYY-MM-DD). Default this week. | |
| locale | No | Answer language. Default fr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds non-obvious behavioral value by disclosing the returned content (class ids for book_class, remaining spots, and whether each class is already booked), which no structured field provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the scope (member's gym, one week) and then the payload. No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query with no output schema, the description covers what an agent needs: the scope of results, the fact that class ids are returned for book_class, and the availability/booking fields. Output shape is effectively described inline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so gym, week and locale are already documented in the schema. The description only gestures at the week scope ('for a week') and adds no extra format or cross-parameter detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: classes at the signed-in member's gym for one week, and enumerates the returned fields (class ids, spots left, booked status). It implicitly separates itself from get_schedule/my_bookings by scoping to the member's own gym, but never explicitly contrasts with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the class ids book_class needs' implies a downstream booking workflow, which is useful chaining context, but there is no explicit when-to-use guidance or rule for choosing this over get_schedule or my_bookings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gymsSearch gyms and studiosARead-onlyIdempotentInspect
Find gyms and studios (CrossFit, HYROX, fitness, yoga, pilates, boxing, martial arts, dance) in France and Europe, near a point or by name, city or postcode. Gymmy gyms (onGymmy: true) can be booked; others are listed from OpenStreetMap, not bookable, with a claim link. Use the gym value with get_gym, get_schedule, get_prices or start_trial.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude to search around. | |
| lng | No | Longitude to search around. | |
| limit | No | Max results. Default 10. | |
| query | No | Gym name, address, district, city or postcode, e.g. 'Lyon', '12 rue Oberkampf Paris' or 'CrossFit Nantes'. Places are geocoded when no lat/lng is given. | |
| locale | No | Answer language. Default fr. | |
| activity | No | Only this activity (studios not on Gymmy). | |
| radius_km | No | Radius in km, 1 to 50. Default: 10, or fitted to the geocoded place (3 for an address). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond that: Gymmy gyms are bookable, while OpenStreetMap gyms are not bookable and expose a claim link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no wasted language. It front-loads what the tool finds and where, then adds result-type behavior and follow-up tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains the key distinction in results: bookable Gymmy gyms vs non-bookable OpenStreetMap listings with a claim link. It also names the natural follow-up tools, so an agent has enough context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the schema. The description reinforces that search can be by point or geocoded name/city/postcode, but adds little syntax or default detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: find gyms and studios, with concrete activity categories and geographic scope (France and Europe). It also distinguishes two result types, Gymmy bookable gyms vs OpenStreetMap listings, so an agent can tell what it will get without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains search modes (near a point or by name/city/postcode) and routes follow-up actions to get_gym, get_schedule, get_prices, and start_trial. It does not explicitly say when to use this instead of siblings like my_gyms, but the usage context is otherwise strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_trialStart a trial classARead-onlyIdempotentInspect
Gives the link to book a trial class at a Gymmy gym, with the trial offer and optionally the class already picked. The person opens it and confirms with their name and email; nothing is booked or charged by this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| gym | Yes | Gym identifier: the `gym` value from search_gyms (page slug or Gymmy id). | |
| date | No | Class date (YYYY-MM-DD). | |
| locale | No | Answer language. Default fr. | |
| class_id | No | Class id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the tool returns a booking link, a human must confirm with name and email, and no booking or charge occurs — clarifying the human-in-the-loop and side-effect-free nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, fully front-loaded, with no filler. The most important fact — that this only produces a link and nothing is booked — is placed last for emphasis without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with full schema coverage and no output schema, the description covers purpose, the human confirmation flow, and what is returned (a link). An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (gym, date, class_id, locale) is already documented in the schema and the baseline is 3. The description only alludes to 'optionally the class already picked', adding no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gives the link to book a trial class at a Gymmy gym') and scopes exactly what is produced. The closing clause ('nothing is booked or charged by this tool') distinguishes it from the sibling book_class, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the tool as the pre-booking step: it returns a link the person opens and confirms with name and email, and nothing is booked or charged. This makes the boundary with book_class inferable, but the sibling is never named and no explicit 'use this instead of X when Y' guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- First observed
book_class - First observed
cancel_booking - First observed
get_gym - First observed
get_prices - First observed
get_schedule - First observed
my_bookings - First observed
my_gyms - First observed
my_schedule - First observed
search_gyms - First observed
start_trial
Related MCP Connectors
Find and book yoga, pilates and movement classes with independent teachers and small studios.
Plan workouts, find exercises and gyms, log sessions and track progress with Gym Navigator.
Find and book local services, classes and rentals; businesses set up and manage their pages.
Search and book appointments at local businesses. Barbershops, salons, spas, and more.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables searching the EGYM Wellpass fitness network for studios and classes by location, activity, and filters, with optional login-based class booking and cancellation. It exposes studio details and filter values through MCP clients such as Claude Desktop and Claude Code.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to find coach-built training programs, coaching brains, races, gyms, classes and sports clinics, preview and build workouts with exercise demos, swap exercises, and plan around a sport or race. With OAuth it can also save workouts and programs, send coach notes to members, and read a member's logged history, planned sessions and lift progress.MIT
- AlicenseAqualityAmaintenanceEnables MCP clients to query AimHarder for authenticated account context, discover accessible gyms, and select a gym for queries.1831 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query and manage Altea Active memberships through natural language, including schedules, spot availability, instructor sessions, bookings, cancellations, and waitlists.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.