Skip to content

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.

Deletes · 5

20 tools: 5 can delete or cancel things and 15 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.