Mindbody MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Read Mindbody classes, schedules, clients, staff and sales; book clients and appointments.
20 tools: 5 can delete or cancel things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads15Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mindbody https://mindbody.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
20 tools
Deletes or cancels 5Claude Code: deny
mindbody_add_appointmentBook an appointment for a client with a staff member at a location.No findings
Why it is in this group
- The name "mindbody_add_appointment" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Book an appointment
- destructiveHint: true
mindbody_add_clientCreate a new client record (first and last name required; the site may require more — Mindbody reports which).No findings
Why it is in this group
- The name "mindbody_add_client" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Add a client
- destructiveHint: true
mindbody_add_client_to_classBook a client into a class (or onto its waiting list).No findings
Why it is in this group
- The name "mindbody_add_client_to_class" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Book a client into a class
- destructiveHint: true
mindbody_update_appointmentReschedule 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, arr…No findings
Why it is in this group
- The name "mindbody_update_appointment" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Update an appointment
- destructiveHint: true
mindbody_update_clientUpdate fields on an existing client record — only the fields you pass change.No findings
Why it is in this group
- The name "mindbody_update_client" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Update a client
- destructiveHint: true
Only reads 15Claude Code: allow
mindbody_get_class_visitsGet one class with its visits — the roster of clients booked into it, with sign-in / late-cancel status.No findings
Why it is in this group
- The name "mindbody_get_class_visits" says "get": a word for reading.
Description, as the server wrote it Get one class with its visits — the roster of clients booked into it, with sign-in / late-cancel status. Mindbody: GET /class/classvisits.
Annotations the server declares
- title: Get a class's visits (roster)
- readOnlyHint: true
mindbody_get_client_account_balancesGet the account balance for one or more clients (what they owe or hold in credit), optionally as of a date.No findings
Why it is in this group
- The name "mindbody_get_client_account_balances" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get client account balances
- readOnlyHint: true
mindbody_list_bookable_itemsFind appointment availability — which staff can deliver the given session types, where, and in which time windows.No findings
Why it is in this group
- The name "mindbody_list_bookable_items" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Find bookable appointment slots
- readOnlyHint: true
mindbody_list_class_schedulesList recurring class schedules (the templates that generate class occurrences) — days, times, teacher, location and date span.No findings
Why it is in this group
- The name "mindbody_list_class_schedules" says "list": a word for reading.
Description, as the server wrote it List recurring class schedules (the templates that generate class occurrences) — days, times, teacher, location and date span. Mindbody: GET /class/classschedules.
Annotations the server declares
- title: List class schedules
- readOnlyHint: true
mindbody_list_classesList scheduled class occurrences in a date range — time, class description, teacher, location, capacity, booked/waitlist counts and cancellation status.No findings
Why it is in this group
- The name "mindbody_list_classes" says "list": a word for reading.
Description, as the server wrote it List scheduled class occurrences in a date range — time, class description, teacher, location, capacity, booked/waitlist counts and cancellation status. Mindbody: GET /class/classes.
Annotations the server declares
- title: List scheduled classes
- readOnlyHint: true
mindbody_list_client_membershipsList a client's active memberships (auto-renewing pricing options) with remaining counts and expiry.No findings
Why it is in this group
- The name "mindbody_list_client_memberships" says "list": a word for reading.
Description, as the server wrote it List a client's active memberships (auto-renewing pricing options) with remaining counts and expiry. Mindbody: GET /client/activeclientmemberships.
Annotations the server declares
- title: List a client's active memberships
- readOnlyHint: true
mindbody_list_client_visitsList a client's past and scheduled visits (class and appointment attendance) in a date range, optionally only unpaid ones.No findings
Why it is in this group
- The name "mindbody_list_client_visits" says "list": a word for reading.
Description, as the server wrote it List a client's past and scheduled visits (class and appointment attendance) in a date range, optionally only unpaid ones. Mindbody: GET /client/clientvisits.
Annotations the server declares
- title: List a client's visits
- readOnlyHint: true
mindbody_list_clientsSearch or fetch client records by name/email text or by client ids (max 20 ids) — contact details, status, alerts, home location.No findings
Why it is in this group
- The name "mindbody_list_clients" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search clients
- readOnlyHint: true
mindbody_list_locationsList the business's locations (studios / branches) with address, phone and amenities.No findings
Why it is in this group
- The name "mindbody_list_locations" says "list": a word for reading.
Description, as the server wrote it List the business's locations (studios / branches) with address, phone and amenities. Location ids are needed to book appointments. Mindbody: GET /site/locations.
Annotations the server declares
- title: List locations
- readOnlyHint: true
mindbody_list_salesList completed sales at the site in a date/time range — purchased items, payments and client.No findings
Why it is in this group
- The name "mindbody_list_sales" says "list": a word for reading.
Description, as the server wrote it List completed sales at the site in a date/time range — purchased items, payments and client. Read only. Mindbody: GET /sale/sales.
Annotations the server declares
- title: List sales
- readOnlyHint: true
mindbody_list_servicesList the pricing options (services — class packs, drop-ins, intro offers) for sale at the site, with price, online price, count and expiry.No findings
Why it is in this group
- The name "mindbody_list_services" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List pricing options
- readOnlyHint: true
mindbody_list_session_typesList the session types (the bookable kinds of class or appointment, e.g.No findings
Why it is in this group
- The name "mindbody_list_session_types" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List session types
- readOnlyHint: true
mindbody_list_sitesList the Mindbody sites (businesses) your developer account can access, or details for specific site ids.No findings
Why it is in this group
- The name "mindbody_list_sites" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List sites
- readOnlyHint: true
mindbody_list_staffList staff members (instructors, practitioners).No findings
Why it is in this group
- The name "mindbody_list_staff" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List staff
- readOnlyHint: true
mindbody_list_staff_appointmentsList booked appointments in a date range, by staff member, client or appointment id — the appointment book.No findings
Why it is in this group
- The name "mindbody_list_staff_appointments" says "list": a word for reading.
Description, as the server wrote it List booked appointments in a date range, by staff member, client or appointment id — the appointment book. Mindbody: GET /appointment/staffappointments.
Annotations the server declares
- title: List appointments
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http mindbody https://mindbody.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mindbody__mindbody_list_sites",
"mcp__mindbody__mindbody_list_locations",
"mcp__mindbody__mindbody_list_session_types",
"mcp__mindbody__mindbody_list_classes",
"mcp__mindbody__mindbody_list_class_schedules",
"mcp__mindbody__mindbody_get_class_visits",
"mcp__mindbody__mindbody_list_bookable_items",
"mcp__mindbody__mindbody_list_staff_appointments",
"mcp__mindbody__mindbody_list_clients",
"mcp__mindbody__mindbody_list_client_visits",
"mcp__mindbody__mindbody_list_client_memberships",
"mcp__mindbody__mindbody_get_client_account_balances",
"mcp__mindbody__mindbody_list_staff",
"mcp__mindbody__mindbody_list_services",
"mcp__mindbody__mindbody_list_sales"
],
"ask": [],
"deny": [
"mcp__mindbody__mindbody_add_client_to_class",
"mcp__mindbody__mindbody_add_appointment",
"mcp__mindbody__mindbody_update_appointment",
"mcp__mindbody__mindbody_add_client",
"mcp__mindbody__mindbody_update_client"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mindbody. Review it before you use it.