Skip to main content
Glama

Mindbody MCP by usefulapi

Server Details

Read Mindbody classes, schedules, clients, staff and sales; book clients and appointments.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
55.2% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 20 tools

Disambiguation4/5

The add/get/list/update split plus resource-specific nouns makes most tools clearly distinct, and descriptions actively disambiguate tricky pairs (list_classes = occurrences vs list_class_schedules = templates vs get_class_visits = roster; list_services = pricing options vs list_session_types = bookable kinds). Minor overlap remains between mindbody_list_staff (can find available staff for a session type) and mindbody_list_bookable_items, and between the three visit-listing tools, but descriptions resolve these.

Naming Consistency4/5

All 20 tools follow a uniform mindbody_<verb>_<noun> snake_case pattern with a small, predictable verb set (list, get, add, update). The only wart is the get-vs-list split for reads (get_class_visits, get_client_account_balances sit alongside list_clients, list_sales) and list_bookable_items acting as a finder rather than a plain listing, but these are semantically motivated and readable.

Tool Count4/5

Twenty tools is on the heavy side, but the server spans a wide domain (clients, appointments, classes, schedules, sales, staff, site config), so each tool maps to a distinct API endpoint and resource. Nothing looks redundant or padded for the scope covered.

Completeness3/5

Read coverage is strong (clients, visits, classes, schedules, services, sales, staff, locations, sites, session types) and core booking flows exist, but there are notable write-side gaps: no cancel/remove appointment, no removal of a client from a class (explicitly punted to the front desk), and no way to create or edit class schedules, classes, or process checkout sales. These dead ends will block cleanup and checkout workflows for an agent.

Available Tools

20 tools
mindbody_add_appointmentBook an appointmentA
Destructive
Inspect

Book an appointment for a client with a staff member at a location. Find a slot first with mindbody_list_bookable_items. No card is charged; apply_payment (Mindbody's default is true) only applies a pricing option already on the client's account. Pass test: true to validate only. Requires a staff user token. Mindbody: POST /appointment/addappointment.

ParametersJSON Schema
NameRequiredDescriptionDefault
testNoWhen true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
notesNoGeneral notes for the appointment.
durationNoOverride the default duration, in minutes.
staff_idYesThe staff member delivering the appointment.
client_idYesThe client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
send_emailNoSend the site's automatic email.
is_waitlistNoAdd to the appointment waiting list instead.
location_idYesThe location id.
resource_idsNoResource (room/equipment) ids to attach.
apply_paymentNoApply a pricing option already on the client's account (Mindbody default: true).
end_date_timeNoEnd, ISO 8601. Default: start + the default duration.
session_type_idYesThe session type id.
staff_requestedNoThe client asked for this staff member specifically.
start_date_timeYesStart, ISO 8601 (e.g. 2026-10-01T14:00:00).

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation: states that no card is charged, that apply_payment only consumes a pricing option already on the client's account, that test: true rolls the write back, and that a staff user token is required. Auth requirements and the dry-run escape hatch are exactly the kind of behavioral context annotations cannot convey.

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 core action, then prerequisite, then the payment/dry-run caveats and auth note. Dense but every sentence carries information except the trailing 'Mindbody: POST /appointment/addappointment' endpoint reference, which is implementation detail an agent does not act on.

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 14-parameter mutation with no output schema, the description supplies what is missing elsewhere: the required staff token, the prerequisite slot lookup, the payment behavior, and the validation-only mode. An agent has everything needed to call it correctly or safely decline to.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 all 14 parameters and the baseline would be 3. The description nonetheless adds semantics the schema lacks for the highest-risk flag, clarifying that 'No card is charged' under apply_payment and that test:true commits nothing, which materially changes how an agent sets those fields.

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 (book) and resource (appointment) and names the three participating entities: client, staff member, location. It also points to the sibling mindbody_list_bookable_items as the slot-finding precursor, so an agent can separate this write tool from the list/lookup siblings without opening schemas.

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?

Explicitly prescribes the expected workflow: 'Find a slot first with mindbody_list_bookable_items,' and offers the dry-run path via test: true. It gives clear positive context but no explicit 'when not to use' (e.g. rescheduling an existing appointment, which would belong to mindbody_update_appointment).

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

mindbody_add_clientAdd a clientA
Destructive
Inspect

Create a new client record (first and last name required; the site may require more — Mindbody reports which). No card or billing data is accepted. Pass test: true to validate only. Mindbody: POST /client/addclient.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity.
testNoWhen true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
emailNoEmail address.
stateNoState / region.
genderNoGender, as configured at the site (see the site's genders).
countryNoCountry.
last_nameYesLast name.
birth_dateNoDate of birth, ISO 8601 (e.g. 1990-04-12).
first_nameYesFirst name.
home_phoneNoHome phone number.
work_phoneNoWork phone number.
is_prospectNoMark the client as a prospect (only if the site allows prospects).
middle_nameNoMiddle name.
postal_codeNoPostal code.
referred_byNoHow the client was referred (one of the site's referral types).
mobile_phoneNoMobile phone number.
address_line_1NoStreet address, line 1.
address_line_2NoStreet address, line 2.
send_account_emailsNoOpt in/out of account notification emails.
send_schedule_emailsNoOpt in/out of schedule notification emails.
send_promotional_emailsNoOpt in/out of promotional emails.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations carry only destructiveHint:true, so the description does the heavy lifting and does it well: it discloses a data-scope prohibition (no card/billing), server-side validation behavior (the site may require additional fields and Mindbody reports which), and a safe validation path (test:true commits nothing). This is real operational context, not restatement.

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 tight clauses, front-loaded with purpose and requirements, then constraints and dry-run guidance. No filler, and the Mindbody endpoint is a useful trailing detail.

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 21-parameter mutation with no output schema, the description covers the critical unknowns: required fields, extra server-side requirements, the disallowed data class, and dry-run support. It does not describe what a successful creation returns (e.g., new client ID), which is the main remaining gap.

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%, so all 21 parameters are already documented in the schema. The description reinforces the required names and the test flag but adds no syntax, format, or edge-case detail beyond what the schema already says; 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 ('Create a new client record') and immediately bounds the scope by what data it will not take ('No card or billing data is accepted'), which cleanly separates it from mindbody_update_client and mindbody_add_client_to_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?

Gives concrete usage context: minimum required fields, the fact that the site may demand more, and how to dry-run via test:true. It stops short of explicitly naming an alternative tool or stating when not to use this one.

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

mindbody_add_client_to_classBook a client into a classA
Destructive
Inspect

Book a client into a class (or onto its waiting list). Does not take payment: by default no pricing option is required; set require_payment to insist the client has a usable one on account. Undo from the Mindbody front desk. Pass test: true to validate only. Mindbody: POST /class/addclienttoclass.

ParametersJSON Schema
NameRequiredDescriptionDefault
testNoWhen true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
class_idYesThe class id (from mindbody_list_classes).
waitlistNoAdd to the class waiting list instead of the class.
client_idYesThe client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
send_emailNoSend the site's booking confirmation email.
require_paymentNoRequire an active, usable pricing option on the client's account.
client_service_idNoThe id of the pricing option already on the client's account to use for this booking.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only supply destructiveHint=true; the description adds the critical operational fact that this write takes no payment by default, that it can be dry-run via test:true, and that reversal is done 'from the Mindbody front desk' rather than through the API — a genuinely useful irreversibility signal. It omits auth/permission requirements and any rate-limit context.

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 tight sentences, front-loaded with the primary action and scope, then payment semantics, then undo/dry-run behavior. No filler; the endpoint reference is compact.

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 7-parameter mutation tool with no output schema, it covers the key unknowns an agent needs: payment defaults, dry-run, and the absence of an API-side undo. Remaining gaps (auth requirements, response shape, behavior when the class is full) are modest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds default-state semantics not present in the schema (no pricing option needed unless require_payment is set) and frames test:true as a dry run. It does not explain waitlist/send_email/client_service_id interactions beyond what the schema already says.

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 ('Book a client into a class') and immediately extends scope to the waiting list. It is clearly distinguishable from siblings like mindbody_add_appointment and mindbody_add_client.

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?

Explains the default payment behavior, how to opt into requiring a pricing option, and that test:true performs a dry run. It stops short of explicitly contrasting when to use this versus mindbody_add_appointment, so it is clear context without full alternative routing.

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

mindbody_get_class_visitsGet a class's visits (roster)B
Read-only
Inspect

Get one class with its visits — the roster of clients booked into it, with sign-in / late-cancel status. Mindbody: GET /class/classvisits.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_idYesThe class id (from mindbody_list_classes).
last_modified_dateNoOnly visits modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful payload context — the result is a roster of clients with sign-in/late-cancel status — and pins the upstream API (GET /class/classvisits), but says nothing about pagination, volume limits, or auth requirements for a potentially large roster.

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?

Two compact sentences, front-loaded with the resource and immediately followed by a clarifying gloss and the API mapping. Nothing is redundant and nothing is wasted.

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 no output schema, the description does a fair job of characterizing the return (roster plus sign-in/late-cancel status) and the filtering semantics via the schema's last_modified_date. It is close to complete for a two-parameter read tool, missing only pagination/bounding behavior.

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%, so both parameters (class_id, last_modified_date) are already fully documented with format examples and provenance. The description contributes no additional parameter meaning, which is the baseline 3 case when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get one class with its visits') and disambiguates the term by defining visits as 'the roster of clients booked into it, with sign-in / late-cancel status.' It effectively separates itself from the per-client sibling (mindbody_list_client_visits) by scoping to a single class, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no alternatives are mentioned. The only prerequisite signal ('from mindbody_list_classes') lives in the schema, not the description, so an agent reading the description alone gets no routing help.

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

mindbody_get_client_account_balancesGet client account balancesA
Read-only
Inspect

Get the account balance for one or more clients (what they owe or hold in credit), optionally as of a date. Mindbody: GET /client/clientaccountbalances.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
class_idNoBalance relative to this class/event id.
client_idsYesThe client ids to get balances for.
balance_dateNoBalance as of this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint=true annotation already covers the safety profile. The description adds real context by clarifying that a balance can be an amount owed OR a credit held, which affects how results are interpreted, but it says nothing about auth requirements, rate limits, or pagination behavior despite limit/offset parameters existing.

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?

Two compact sentences with the semantic clarification front-loaded before the endpoint reference. The trailing API-endpoint note is somewhat auxiliary but conventional and short; nothing is wasted or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 more of the return-value burden, and it only gestures at the response ('what they owe or hold in credit') without naming fields or explaining the limit/offset paging that the API supports. Adequate for a read-only getter with full annotation coverage, but not complete.

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%, so all five parameters are already documented, including balance_date's ISO 8601 format and default. The description's 'optionally as of a date' merely restates balance_date and adds no syntax or constraint detail beyond the schema, which is the baseline-3 case.

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?

Names a specific verb (Get) and resource (client account balances), and the parenthetical 'what they owe or hold in credit' defines what 'balance' means so the agent isn't guessing. The endpoint mapping (GET /client/clientaccountbalances) and the client-scoped framing clearly distinguish it from sibling list_* tools like list_client_memberships and list_client_visits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for one or more clients ... optionally as of a date' implies the calling context (batch balance lookup, optional point-in-time), but there is no explicit when-to-use/when-not guidance and no named alternative among the many client/billing siblings. Usage is inferable but not stated.

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

mindbody_list_bookable_itemsFind bookable appointment slotsA
Read-only
Inspect

Find appointment availability — which staff can deliver the given session types, where, and in which time windows. Use before mindbody_add_appointment. Mindbody: GET /appointment/bookableitems.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
end_dateNoEnd of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
staff_idsNoOnly these staff ids (omit for all staff).
start_dateNoStart of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
location_idsNoOnly at these location ids.
appointment_idNoExclude this existing appointment (useful when rescheduling).
session_type_idsYesSession type ids to find availability for (see mindbody_list_session_types).
ignore_default_session_lengthNoAlso return availabilities that differ from the session type's default length.
include_resource_availabilityNoInclude resource (room/equipment) availability.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered; the description reinforces this by naming the underlying GET endpoint. It adds no behavioral context beyond that – no pagination behavior, result caps, or auth requirements. Adequate but thin given annotations do the heavy lifting.

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?

Two compact sentences, with the core purpose and return shape front-loaded before the sequencing hint. The trailing 'Mindbody: GET /appointment/bookableitems' is mildly redundant but useful for API mapping.

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 read-only list tool with no output schema, the description reasonably signals the return shape (staff, location, time windows). It does not describe pagination behavior or how results are grouped, which an agent must infer from the schema, but nothing essential to correct invocation is missing.

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%, so all 10 parameters are already documented in the schema, including defaults, formats, and semantics. The description only gestures at the filter dimensions (staff, session types, location, time) without adding format or interplay details beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Find') plus resource ('appointment availability') with an explicit enumeration of what is returned – staff, location, and time windows for the given session types. It distinguishes the tool from mindbody_add_appointment by naming the sequencing relationship, though it does not explicitly contrast with mindbody_list_staff_appointments or mindbody_list_session_types.

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 sequencing guidance: 'Use before mindbody_add_appointment.' It also points to mindbody_list_session_types for obtaining session type ids. No when-not guidance is given (e.g., that this is not for listing already-booked appointments, which is a sibling's job).

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

mindbody_list_classesList scheduled classesA
Read-only
Inspect

List scheduled class occurrences in a date range — time, class description, teacher, location, capacity, booked/waitlist counts and cancellation status. Mindbody: GET /class/classes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
class_idsNoOnly these class ids.
client_idNoView the list as this client (may reveal client-specific pricing).
staff_idsNoOnly taught by these staff ids.
program_idsNoOnly in these program ids.
location_idsNoOnly at these location ids.
end_date_timeNoEnd of the range (default today; compares dates, not times) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
start_date_timeNoStart of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
session_type_idsNoOnly these session type ids.
class_schedule_idsNoOnly classes from these class schedule ids.
last_modified_dateNoOnly classes modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
class_description_idsNoOnly these class description ids.
hide_canceled_classesNoDrop canceled classes from the response.

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safety profile, so the description's job is to add context — and it does, by disclosing the returned dimensions (teacher, location, capacity, booked/waitlist counts, cancellation status) and the underlying GET /class/classes endpoint. It stops short of noting pagination flow or the cost of client_id pricing lookups.

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?

Two tight sentences: the first front-loads scope and return contents, the second records the upstream endpoint. Given there is no output schema, the field enumeration earns its space rather than being padding.

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 14-parameter, zero-required tool with no output schema, the description covers scope and response shape adequately, and the schema carries the per-filter semantics. It omits any mention of paging behavior or result-set size expectations, which is the main remaining gap.

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%, with per-parameter semantics, defaults and formats (ISO 8601 examples, 1-200 limit) already documented in the schema. The description adds only the aggregate notion of a date range, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List scheduled class occurrences in a date range') and enumerates the payload the agent will receive, which is far more informative than the title alone. It never names the sibling tools (list_class_schedules, get_class_visits) that an agent could confuse with it, so differentiation is implicit in 'occurrences' rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The date-range framing and the field list imply the use case (browsing scheduled sessions with booking counts), but there is no explicit when-to-use / when-not-to-use statement and no routing to alternatives like list_class_schedules for templates or get_class_visits for attendance. Usage is inferable but left to the agent.

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

mindbody_list_class_schedulesList class schedulesA
Read-only
Inspect

List recurring class schedules (the templates that generate class occurrences) — days, times, teacher, location and date span. Mindbody: GET /class/classschedules.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
end_dateNoOnly schedules active on or before this day (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
staff_idsNoOnly taught by these staff ids.
start_dateNoOnly schedules active on or after this day (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
program_idsNoOnly in these program ids.
location_idsNoOnly at these location ids.
session_type_idsNoOnly these session type ids.
class_schedule_idsNoOnly these class schedule ids.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context by mapping to the underlying endpoint (GET /class/classschedules) and clarifying that results are templates rather than occurrences, but says nothing about pagination behavior, result volume, or default date-window semantics beyond what the schema carries.

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?

Two tight clauses with the resource definition front-loaded and the endpoint reference appended as compact provenance. No filler sentences, nothing that fails to earn its place.

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 read-only, zero-required-parameter list tool with full schema coverage and no output schema, this is close to sufficient: it identifies the resource, distinguishes it from occurrences, and hints at returned fields. It stops short of noting that results are paged/default-limited, which is the only meaningful gap.

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% across all 9 parameters, including defaults and range notes, so the schema carries the parameter burden. The description's field list (days, times, teacher, location) loosely corresponds to filterable dimensions but adds no syntax, id-format, or combining rules beyond the schema.

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 ('List recurring class schedules') and immediately disambiguates the resource as 'the templates that generate class occurrences', which is exactly the distinction an agent needs against sibling tools like mindbody_list_classes. It also enumerates what a schedule contains (days, times, teacher, location, date span).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use/when-not statement and no sibling tool is named as an alternative. The template-vs-occurrence framing implies the right context (use this for recurring templates, not individual classes), but the agent must infer that routing.

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

mindbody_list_client_membershipsList a client's active membershipsB
Read-only
Inspect

List a client's active memberships (auto-renewing pricing options) with remaining counts and expiry. Mindbody: GET /client/activeclientmemberships.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
client_idYesThe client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
location_idNoOnly memberships usable at this location (not with cross_regional_lookup).
cross_regional_lookupNoSearch up to ten associated sites in the region.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is covered externally. The description adds that results carry remaining counts and expiry, which is useful behavioral context, but says nothing about pagination behavior, the 'active-only' filter semantics, or regional lookup effects.

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?

One compact sentence plus an endpoint reference; the key scope, output contents and API path are front-loaded with no wasted prose. The endpoint citation is mildly redundant but harmless.

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 read-only list tool with full schema coverage and no output schema, the description adequately covers scope and return contents (counts, expiry). Only minor gaps remain around pagination and filtering caveats, which the schema partly addresses.

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%, so all five parameters including client_id, limit, offset, location_id and cross_regional_lookup are already documented in the schema. The description contributes no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a client's active memberships') and even disambiguates what a membership is here ('auto-renewing pricing options'), which separates it from sibling list tools like mindbody_list_clients or mindbody_list_client_visits. It does not explicitly name an alternative, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other client-oriented siblings, nor any prerequisites (e.g., needing a valid client_id/RSSID). Usage is only implied from the resource name.

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

mindbody_list_clientsSearch clientsA
Read-only
Inspect

Search or fetch client records by name/email text or by client ids (max 20 ids) — contact details, status, alerts, home location. Requires a staff user token. Mindbody: GET /client/clients.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
client_idsNoOnly these client ids (max 20).
is_prospectNotrue = only prospects; false = only non-prospects.
search_textNoMatch against first name, last name and email.
include_inactiveNoInclude inactive clients (default false).
last_modified_dateNoOnly clients modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only provide readOnlyHint; the description adds the important behavioral constraint that a staff user token is required, which annotations do not cover. It still omits pagination behavior and default status filtering (include_inactive) beyond what the schema says.

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?

One dense sentence plus an endpoint reference; every clause earns its place and the two selection modes are front-loaded.

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 read-only list tool with a fully documented schema and no output schema, the description covers purpose, modes, auth, and result fields. It stops short of describing pagination semantics or default inactive filtering, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds the max-20-ids constraint and clarifies that search covers name/email while ids are exclusive, reinforcing the two parameter paths. It does not explain limit/offset or date format beyond the schema.

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 specific verbs (search/fetch) and resources (client records), enumerates the two selection modes (text vs ids), and lists returned fields, clearly distinguishing it from siblings like mindbody_get_client_account_balances or mindbody_list_client_visits.

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?

Explicitly presents the two usage modes (name/email text or client ids) with the 20-id cap, which tells the agent when each path applies. It lacks explicit when-not-to-use guidance versus siblings, but the two-mode framing is clear context.

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

mindbody_list_client_visitsList a client's visitsA
Read-only
Inspect

List a client's past and scheduled visits (class and appointment attendance) in a date range, optionally only unpaid ones. Mindbody: GET /client/clientvisits.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
orderNoSort by date: desc = newest first.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
end_dateNoOnly visits on or before this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
client_idYesThe client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
start_dateNoOnly visits on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
unpaids_onlyNoOnly visits not yet paid for.
cross_regional_lookupNoInclude visits at every site in the region.

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read; the description adds that the call is a GET and that results span both past and scheduled visits, which is genuine context. It does not, however, disclose pagination behavior or result ordering beyond what the schema already documents.

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?

Two tight sentences with the core scoping information front-loaded; the Mindbody endpoint reference is mildly redundant but earns its place as an implementation anchor. No wasted prose.

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?

No output schema exists, but the return concept (visits in a date range) is clear and the annotations cover the safety profile. With all 8 parameters fully documented in the schema, the description supplies enough for correct invocation.

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% – every one of the 8 parameters is documented in the schema, including date formats, page sizing, and the RSSID note. The description only echoes the date-range and unpaids_only concepts, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (client's visits), plus scope: past and scheduled class/appointment attendance within a date range. An agent can tell this is client-scoped rather than class-scoped, though it never names the sibling mindbody_get_class_visits to sharpen the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'a client's past and scheduled visits' and the optional unpaid filter, but there is no explicit when-to-use guidance or routing away from alternatives like mindbody_get_class_visits or mindbody_get_client_account_balances.

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

mindbody_list_locationsList locationsA
Read-only
Inspect

List the business's locations (studios / branches) with address, phone and amenities. Location ids are needed to book appointments. Mindbody: GET /site/locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about what the records contain (address, phone, amenities), but says nothing about pagination behavior, result ordering, permissions, or an empty-result case, and no output schema exists to cover returns.

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?

Two tight sentences, front-loaded with the resource and scope, then the downstream motivation. The trailing 'Mindbody: GET /site/locations' is mild implementation noise that does not serve an agent selecting the tool, keeping it just short of a 5.

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 read-only, two-optional-parameter list tool with no output schema, the description says enough: what is listed, what fields come back, and why the ids matter. Only pagination behaviour and the locations-vs-sites distinction are left unaddressed.

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% with two optional paging parameters, so the schema already fully documents limit and offset including defaults and ranges. The description adds no parameter guidance at all, which is the correct baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list the business's locations) and even enumerates the returned fields (address, phone, amenities) plus the downstream purpose of the ids. It does not, however, differentiate itself from the sibling mindbody_list_sites, which an agent could plausibly confuse with locations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'Location ids are needed to book appointments' supplies a workflow cue for why an agent would call this, which is more than nothing. But it names no alternatives (e.g. list_sites) and gives no when-not-to-use or prerequisite conditions, so usage remains implied rather than explicit.

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

mindbody_list_salesList salesA
Read-only
Inspect

List completed sales at the site in a date/time range — purchased items, payments and client. Read only. Mindbody: GET /sale/sales.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
sale_idNoOnly this sale id.
payment_method_idNoOnly sales paid with this payment method id.
end_sale_date_timeNoOnly sales before this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
start_sale_date_timeNoOnly sales after this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already declares the safety profile, and "Read only" restates it rather than adding information. Genuinely new context is limited to the "completed sales" filter and the returned field groups; pagination behavior, result caps, and site/auth scoping (the description says "at the site" but no site parameter exists) are undisclosed.

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?

One tight sentence with the resource and scope front-loaded, followed by a short read-only and endpoint note. Nothing is padded, though the "Mindbody: GET /sale/sales" trailer is developer trivia rather than agent-facing value.

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 no output schema, the description usefully enumerates what comes back (purchased items, payments, client), which compensates for the missing return definition. The main gap is the unexplained "at the site" framing with no site parameter and no pagination note despite limit/offset.

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 limit, offset, sale_id, payment_method_id and the two date bounds are all self-documented. The description only paraphrases the date/time-range filter and adds no format, default, or interaction detail beyond the schema; baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ("List completed sales") with explicit scope (site + date/time range) and a preview of the payload (purchased items, payments, client). It reads clearly against siblings like mindbody_list_client_visits or mindbody_list_services, though it never names those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the date/time-range scope but never stated as guidance: there is no when-to-use, when-not-to-use, or pointer to a sibling tool such as visit or membership listings. The agent must infer the appropriate context from the scope alone.

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

mindbody_list_servicesList pricing optionsB
Read-only
Inspect

List the pricing options (services — class packs, drop-ins, intro offers) for sale at the site, with price, online price, count and expiry. Read only. Mindbody: GET /sale/services.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
class_idNoOnly pricing options usable for this class id.
staff_idNoShow this staff member's per-staff pricing, if the site uses it.
location_idNoCompute TaxRate/TaxIncluded for this location (does not filter).
program_idsNoOnly pricing options in these program ids.
sell_onlineNoOnly pricing options sold online.
service_idsNoOnly these pricing option ids.
session_type_idsNoOnly pricing options for these session type ids.
class_schedule_idNoOnly pricing options usable for this class schedule id.
include_discontinuedNoInclude discontinued pricing options.
hide_related_programsNoOmit pricing options of related programs.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so 'Read only' in the description largely repeats structured data. It does add the upstream endpoint (GET /sale/services) and enumerates returned fields, which is modest extra context, but no auth requirements or pagination behavior are disclosed.

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?

Two tight sentences plus an endpoint tag, all front-loaded with the resource and purpose first. Nothing is padded, though the return-field list could be trimmed against the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 params and no output schema, the description partially compensates by naming returned fields (price, online price, count, expiry), but it omits pagination guidance despite limit/offset params and offers no routing between similarly named listing tools.

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% across all 12 parameters, so the schema already documents each filter's meaning (including caveats like location_id computing TaxRate rather than filtering). The description adds no parameter-level meaning beyond the schema, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (pricing options/services) and clarifies the domain terminology with the parenthetical 'class packs, drop-ins, intro offers', plus the return fields. It does not explicitly differentiate from close siblings like list_bookable_items or list_sales, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative routing is provided. 'For sale at the site' scopes the resource but gives no guidance on choosing this versus list_bookable_items or list_sales.

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

mindbody_list_session_typesList session typesA
Read-only
Inspect

List the session types (the bookable kinds of class or appointment, e.g. '60-min massage') used at the site. Session type ids drive appointment availability and booking. Mindbody: GET /site/sessiontypes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
online_onlyNoOnly session types bookable online.
program_idsNoOnly session types in these program ids.

TDQS

A3.8/5.0
Behavior3/5

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

readOnlyHint=true already declares the safe-read profile, and the description adds useful domain context that ids feed availability and booking. However it says nothing about pagination behavior, result volume, or auth/site-scoping requirements beyond what the annotations and schema already tell the agent.

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?

Two tight sentences: the definition and purpose come first, the underlying endpoint last. No filler or redundancy.

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 read-only list tool with full schema coverage and no output schema, the description covers what the resource is and the endpoint behind it. It stops short of describing filter interaction or result shape, but nothing essential to calling it correctly is missing.

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%, so limit, offset, online_only, and program_ids are all documented in the schema itself. The description adds no parameter-level detail (e.g., how program_ids interacts with online_only), 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 ('List the session types') and immediately disambiguates the resource with a concrete definition ('the bookable kinds of class or appointment, e.g. 60-min massage'), which separates it from siblings like mindbody_list_services and mindbody_list_bookable_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains why the ids matter ('drive appointment availability and booking'), which implies when an agent would want them, but it never names an alternative tool or states when NOT to use this one. Usage is implied rather than guided.

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

mindbody_list_sitesList sitesA
Read-only
Inspect

List the Mindbody sites (businesses) your developer account can access, or details for specific site ids. A cheap way to confirm the API key works. Mindbody: GET /site/sites.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
site_idsNoOnly these site ids (returns more detail per site).

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes this is a safe read. The description adds genuine context beyond that: results are scoped to the developer account's accessible sites, and passing site_ids returns more detail per site. Minor gaps remain around pagination/return shape, but the added behavioral detail is real.

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 tight sentences, front-loaded with the core action, followed by the alternate mode, a usage hint, and the underlying endpoint. No filler; every sentence carries distinct information.

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 no-required-param, read-only list tool with fully documented parameters, the description is nearly sufficient. Since no output schema exists, it does not describe what a site record contains, but for a listing/count tool that omission is minor.

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%, so limit, offset, and site_ids are fully documented in the schema. The description reinforces site_ids ('details for specific site ids') and its detail difference, but adds no syntax beyond the schema. 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?

States a specific verb (List) and resource (Mindbody sites/businesses), with the scope clarified as 'your developer account can access' and an alternate mode for 'specific site ids'. It is the only site-listing tool among the siblings, so disambiguation is trivial for an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers one concrete use case – 'a cheap way to confirm the API key works' – which implies when to reach for it, but there is no explicit when-not-to-use, no prerequisites, and no named alternatives. Usage is implied rather than stated.

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

mindbody_list_staffList staffA
Read-only
Inspect

List staff members (instructors, practitioners). Filter by role, or find who is available for a session type at a location and time (session_type_id + location_id + start_date_time together). Without a staff token only public fields return. Mindbody: GET /staff/staff.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
filtersNoFilters to apply.
staff_idsNoOnly these staff ids.
location_idNoOnly staff available at this location (needs session_type_id and start_date_time).
session_type_idNoOnly staff available for this session type (needs location_id and start_date_time).
start_date_timeNoOnly staff available at this time (needs session_type_id and location_id) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds a genuinely useful auth caveat – that without a staff token only public fields return. It does not discuss pagination behavior or result shape, but the token-scoping disclosure is real added value beyond the annotation.

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?

Four tight sentences, front-loaded with the core purpose and the parameter-cluster constraint, closing with the underlying API route for traceability. No padding.

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 read-only list tool with 7 optional parameters, no output schema and full schema coverage, the description covers purpose, usage modes, and the notable auth caveat. Only return-field/pagination detail is absent, and pagination is already documented in the schema, so nothing critical is missing.

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% and each dependent parameter's description already states which siblings it needs, so the description's restatement of the session_type_id + location_id + start_date_time grouping is largely redundant. The vague 'filter by role' phrasing does not precisely map to the filters enum. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource and even disambiguates what 'staff' means ('instructors, practitioners'). It is clearly separable from siblings like mindbody_list_clients or mindbody_list_staff_appointments, though it never explicitly names a sibling to route the agent.

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?

Gives two concrete usage modes: plain filtering versus availability lookup, and explains the latter requires the three parameters together. It stops short of naming alternatives or stating when not to use this tool, so it is clear context without exclusions.

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

mindbody_list_staff_appointmentsList appointmentsA
Read-only
Inspect

List booked appointments in a date range, by staff member, client or appointment id — the appointment book. Mindbody: GET /appointment/staffappointments.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (request.limit), 1-200. Mindbody defaults to 100.
offsetNoPage offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.
end_dateNoEnd of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
client_idNoOnly this client's appointments.
staff_idsNoOnly these staff ids (omit for all staff).
start_dateNoStart of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.
location_idsNoOnly at these location ids.
appointment_idsNoOnly these appointment ids.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe-read nature is covered. The description adds the appointment-book framing and the upstream endpoint mapping, but discloses no pagination behavior, default handling, or result format, so it contributes moderate value beyond structured fields.

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?

A single front-loaded sentence carrying the resource, scope and filters, followed by a compact endpoint reference. No filler sentences; every clause earns its place.

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 8 fully-described parameters, readOnly annotations, and no output schema to explain, the description covers what an agent needs to invoke the tool. Minor gap: no mention of pagination behavior, though the schema's PaginationResponse.TotalResults note compensates.

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%, so every parameter (limit, offset, dates, client_id, staff_ids, location_ids, appointment_ids) is already documented in the schema. The description only restates the filter axes without adding format or default semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (booked appointments) with the filtering axes (date range, staff, client, appointment id) and an anchoring phrase, 'the appointment book'. It does not explicitly name or distinguish itself from similar siblings like mindbody_get_class_visits or mindbody_list_client_visits, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the filter list (you'd use it to find appointments for a staff member, client, or id), but there is no explicit when-to-use vs alternatives guidance and no prerequisites or exclusions. Adequate but leaves routing to the agent's inference.

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

mindbody_update_appointmentUpdate an appointmentA
Destructive
Inspect

Reschedule or edit an appointment (start/end time, staff, session type, notes — the only fields Mindbody lets you change) and/or move it through its status: confirm, unconfirm, arrive, unarrive, complete. Cancel and late-cancel are deliberately not offered (a late cancel can charge the client). Pass test: true to validate only. Requires a staff user token. Mindbody: POST /appointment/updateappointment.

ParametersJSON Schema
NameRequiredDescriptionDefault
testNoWhen true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
notesNoReplace the appointment notes.
executeNoA status action to apply.
staff_idNoMove to this staff member.
send_emailNoSend the site's automatic email.
end_date_timeNoNew end, ISO 8601.
appointment_idYesThe appointment id (from mindbody_list_staff_appointments).
session_type_idNoChange the session type.
start_date_timeNoNew start, ISO 8601.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true, and the description builds on that with real substance: a required staff user token, a validate-only mode, the fact that cancel is withheld because of a client charge, and a hard statement that only certain fields are mutable. This is the kind of context annotations cannot carry.

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 primary action and reason for the cancel exclusion; the parenthetical enumerations are efficient. The trailing 'Mindbody: POST /appointment/updateappointment' line adds little for an agent choosing or invoking the tool.

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, no-output-schema mutation tool this covers the essentials: what changes, what is forbidden, the required auth context, a dry-run escape hatch, and the underlying endpoint for error mapping. Nothing an agent needs to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds meaning by asserting that start/end time, staff, session type and notes are the only fields Mindbody permits changing, which constrains expectations for the full 9-parameter surface (send_email, execute, test are left to the schema).

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+resource combination ('Reschedule or edit an appointment') and enumerates the two distinct mutation axes: field edits (time, staff, session type, notes) and status transitions (confirm/unconfirm/arrive/unarrive/complete). It is clearly separable from the add/list siblings at a glance.

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 frames when to use it (reschedule/edit and/or status change) and when not to (cancel and late-cancel are deliberately excluded, with the reason: a late cancel can charge the client). Adds a dry-run path via test:true, which routes the agent away from unintended writes.

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

mindbody_update_clientUpdate a clientA
Destructive
Inspect

Update fields on an existing client record — only the fields you pass change. No card or billing data is accepted. cross_regional_update (Mindbody default: true) also updates the client's profiles at the region's other sites. Pass test: true to validate only. Mindbody: POST /client/updateclient.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity.
testNoWhen true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
emailNoEmail address.
stateNoState / region.
genderNoGender, as configured at the site (see the site's genders).
countryNoCountry.
client_idYesThe client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
last_nameNoLast name.
birth_dateNoDate of birth, ISO 8601 (e.g. 1990-04-12).
first_nameNoFirst name.
home_phoneNoHome phone number.
work_phoneNoWork phone number.
is_prospectNoMark the client as a prospect (only if the site allows prospects).
middle_nameNoMiddle name.
postal_codeNoPostal code.
referred_byNoHow the client was referred (one of the site's referral types).
mobile_phoneNoMobile phone number.
address_line_1NoStreet address, line 1.
address_line_2NoStreet address, line 2.
send_account_emailsNoOpt in/out of account notification emails.
send_schedule_emailsNoOpt in/out of schedule notification emails.
cross_regional_updateNoPropagate to the client's profiles at the region's other sites (Mindbody default: true).
send_promotional_emailsNoOpt in/out of promotional emails.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only supply destructiveHint=true, so the description carries most of the load and does so well: it discloses that unset fields are left untouched, that cross_regional_update defaults to true and propagates writes to other sites, and that test=true commits nothing. It does not say whether fields can be cleared, nor what permissions/errors to expect, leaving a real gap for a destructive mutation.

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?

Four compact sentences, front-loaded with the mutation contract before defaults and the dry-run escape hatch. The trailing 'Mindbody: POST /client/updateclient' line is mildly useful for API mapping but is the one element that does not help an agent decide or call.

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 23-parameter destructive update with no output schema, the description covers the essentials: which fields mutate, the site-propagation default, and a safe validate-only path. It leaves open field-clearing behavior and failure/permission conditions, which is a modest but real omission.

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% across all 23 parameters, so the baseline is 3. The description's parameter-level claims (cross_regional_update default, test dry-run) largely restate what the schema descriptions already say, and 'no card or billing data is accepted' documents an absence rather than adding usable semantics.

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 ('Update fields on an existing client record') and immediately pins down the patch semantics with 'only the fields you pass change.' The phrase 'existing client record' implicitly separates it from the sibling mindbody_add_client, so an agent can route 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational guidance: partial-update behavior, a dry-run via 'test: true', and the default-on cross-regional propagation. It never explicitly states when to prefer this over update-adjacent siblings or what prerequisites (permissions, client existence) must hold, so it falls short of the top band.

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.

  1. 20 tool updates
    • Changedmindbody_add_appointment1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_add_client1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_add_client_to_class1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_get_class_visits1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_get_client_account_balances1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_bookable_items1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_class_schedules1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_classes1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_client_memberships1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_client_visits1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_clients1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_locations1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_sales1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_services1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_session_types1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_sites1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_staff1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_list_staff_appointments1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_update_appointment1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedmindbody_update_client1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 20 tool updates
    • First observedmindbody_add_appointment
    • First observedmindbody_add_client
    • First observedmindbody_add_client_to_class
    • First observedmindbody_get_class_visits
    • First observedmindbody_get_client_account_balances
    • First observedmindbody_list_bookable_items
    • First observedmindbody_list_class_schedules
    • First observedmindbody_list_classes
    • First observedmindbody_list_client_memberships
    • First observedmindbody_list_client_visits
    • First observedmindbody_list_clients
    • First observedmindbody_list_locations
    • First observedmindbody_list_sales
    • First observedmindbody_list_services
    • First observedmindbody_list_session_types
    • First observedmindbody_list_sites
    • First observedmindbody_list_staff
    • First observedmindbody_list_staff_appointments
    • First observedmindbody_update_appointment
    • First observedmindbody_update_client

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Mindbody, enabling AI agents to fetch client info, query class schedules, book classes/appointments (env-gated), and process checkout (payment-gated).
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables authenticated management of salon and clinic scheduling data, including appointments, customers, professionals, services, products, finances, loyalty, commissions, and subscription clubs across multiple business units.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables reading Fitbod training history, generating workouts via Fitbod's engine, configuring workout programs, and tracking body composition over time.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.