Skip to main content
Glama
Claude.md12.9 kB
# Claude.md - Mindbody MCP Server v2.0 ## Overview This is the Mindbody MCP Server - a comprehensive Model Context Protocol server that provides AI assistants with complete access to the Mindbody API for fitness/wellness studio management. Perfect for yoga studios, pilates studios, gyms, and wellness centers. ## Core Capabilities - **Complete Class Management**: View, book, cancel, substitute teachers, manage waitlists - **Client Management**: Add/update clients, track visits, memberships, balances - **Sales & Commerce**: Process payments, sell packages, memberships, products - **Staff Management**: View schedules, manage appointments, track availability - **Site Operations**: Manage locations, programs, resources, session types - **Appointments**: Book, update, find available slots - **Enrollments**: Manage courses, workshops, series registrations ## Available Tools (50+ endpoints) ### 📅 Class Management #### `getClasses` Get all classes with comprehensive filtering options. **Parameters:** - `startDate` (optional): Start date in YYYY-MM-DD format - `endDate` (optional): End date in YYYY-MM-DD format - `locationIds` (optional): Array of location IDs - `classDescriptionIds` (optional): Array of class type IDs - `staffIds` (optional): Array of instructor IDs **Returns:** List of classes with availability, instructor, location, and booking status #### `getClassDescriptions` Get all class types offered (Vinyasa, Hatha, Hot Yoga, etc.). **Returns:** Complete list of class types with descriptions and prerequisites #### `getClassSchedules` Get recurring class schedules/templates. **Parameters:** - `locationIds` (optional): Filter by locations - `classDescriptionIds` (optional): Filter by class types - `staffIds` (optional): Filter by instructors - `programIds` (optional): Filter by programs #### `addClientToClass` Book a client into a class. **Parameters:** - `clientId` (required): Client ID - `classId` (required): Class ID to book - `requirePayment` (optional): Require payment (default true) - `waitlist` (optional): Add to waitlist if full #### `removeClientFromClass` Cancel a client's class booking. **Parameters:** - `clientId` (required): Client ID - `classId` (required): Class ID - `lateCancel` (optional): Mark as late cancellation #### `getWaitlistEntries` View waitlist entries for classes. **Parameters:** - `classScheduleIds` (optional): Class schedule IDs - `classIds` (optional): Specific class IDs - `clientIds` (optional): Filter by clients #### `substituteClassTeacher` Substitute an instructor for a class. **Parameters:** - `classId` (required): Class ID - `originalTeacherId` (required): Original instructor ID - `substituteTeacherId` (required): Substitute instructor ID ### 👥 Client Management #### `getClients` Search and retrieve client information. **Parameters:** - `searchText` (optional): Search by name/email/phone - `clientIds` (optional): Specific client IDs - `lastModifiedDate` (optional): Recently modified clients - `isProspect` (optional): Filter prospects **Returns:** Client details including contact info, emergency contacts, membership status #### `addClient` Register a new client. **Parameters:** - `firstName` (required): First name - `lastName` (required): Last name - `email` (optional): Email address - `mobilePhone` (optional): Mobile phone - `birthDate` (optional): Birth date - Plus address, emergency contact, and preference fields #### `updateClient` Update existing client information. **Parameters:** - `clientId` (required): Client ID - `updates` (required): Object with fields to update #### `getClientVisits` Get client's attendance history. **Parameters:** - `clientId` (required): Client ID - `startDate` (optional): Start date - `endDate` (optional): End date **Returns:** Visit history with attendance stats, no-shows, late cancels #### `getClientMemberships` View client's active memberships. **Parameters:** - `clientId` (required): Client ID - `locationId` (optional): Filter by location #### `addClientArrival` Check in a client at the studio. **Parameters:** - `clientId` (required): Client ID - `locationId` (required): Location ID #### `getClientAccountBalances` Get client's account and credit balances. **Parameters:** - `clientId` (required): Client ID #### `getClientContracts` View client's contracts and auto-renewing memberships. **Parameters:** - `clientId` (required): Client ID ### 💰 Sales & Commerce #### `getServices` Get available services (class packages, memberships). **Parameters:** - `programIds` (optional): Filter by programs - `sessionTypeIds` (optional): Filter by session types - `locationId` (optional): Filter by location - `classId` (optional): Services for specific class #### `getPackages` Get class package options. **Parameters:** - `locationId` (optional): Filter by location - `classScheduleId` (optional): Packages for specific class #### `getProducts` Get retail products (mats, blocks, apparel). **Parameters:** - `productIds` (optional): Specific products - `searchText` (optional): Search products - `categoryIds` (optional): Filter by category - `sellOnline` (optional): Online products only #### `getContracts` Get membership contract types. **Parameters:** - `contractIds` (optional): Specific contracts - `soldOnline` (optional): Online contracts only - `locationId` (optional): Filter by location #### `checkoutShoppingCart` Process a complete purchase transaction. **Parameters:** - `clientId` (required): Client ID - `items` (required): Array of items to purchase - `payments` (required): Payment methods - `promotionCode` (optional): Discount code - `sendEmail` (optional): Send receipt #### `purchaseContract` Purchase a membership/contract. **Parameters:** - `clientId` (required): Client ID - `contractId` (required): Contract type ID - `startDate` (required): Start date - `firstPaymentOccurs` (optional): Payment timing - `promotionCode` (optional): Discount code ### 🏢 Site & Location Management #### `getSites` Get business/site information. **Returns:** Site details, payment settings, branding, timezone #### `getLocations` Get all studio locations. **Returns:** Locations with addresses, hours, amenities, coordinates #### `getPrograms` Get programs offered (Yoga, Pilates, Barre, etc.). **Parameters:** - `scheduleType` (optional): Filter by type (Class/Enrollment/Appointment) - `onlineOnly` (optional): Online programs only #### `getResources` Get resources (rooms, equipment). **Parameters:** - `sessionTypeIds` (optional): Filter by session type - `locationId` (optional): Filter by location - `startDateTime` (optional): Available from - `endDateTime` (optional): Available until #### `getSessionTypes` Get session types (class formats, appointment types). **Parameters:** - `programIds` (optional): Filter by programs - `onlineOnly` (optional): Online sessions only #### `getStaff` Get all staff members. **Parameters:** - `staffIds` (optional): Specific staff IDs - `filters` (optional): Apply filters - `sessionTypeIds` (optional): Staff for session types - `locationIds` (optional): Staff at locations #### `getTeacherSchedule` Get a teacher's complete schedule. **Parameters:** - `teacherName` (required): Teacher's name - `startDate` (optional): Start date - `endDate` (optional): End date **Returns:** Detailed schedule with classes, locations, and availability ### 📆 Appointments #### `getStaffAppointments` View staff appointment schedules. **Parameters:** - `staffIds` (required): Staff member IDs - `locationIds` (optional): Filter by location - `startDate` (optional): Start date - `endDate` (optional): End date #### `addAppointment` Book a new appointment. **Parameters:** - `clientId` (required): Client ID - `staffId` (required): Staff member ID - `locationId` (required): Location ID - `sessionTypeId` (required): Service type ID - `startDateTime` (required): Start time (ISO format) - `notes` (optional): Appointment notes #### `updateAppointment` Modify an existing appointment. **Parameters:** - `appointmentId` (required): Appointment ID - `staffId` (optional): Change staff - `startDateTime` (optional): New time - `notes` (optional): Update notes #### `getBookableItems` Find available appointment slots. **Parameters:** - `sessionTypeIds` (required): Service types - `locationIds` (optional): Locations - `staffIds` (optional): Specific staff - `startDate` (optional): Search from - `endDate` (optional): Search until #### `getActiveSessionTimes` Get recurring availability patterns. **Parameters:** - `scheduleType` (optional): Type filter - `sessionTypeIds` (optional): Session types - `days` (optional): Days of week #### `getScheduleItems` Get detailed schedule availability. **Parameters:** - `locationIds` (optional): Locations - `staffIds` (optional): Staff members - `startDate` (optional): Start date - `endDate` (optional): End date ### 🎓 Enrollments (Courses/Workshops) #### `getEnrollments` Get available enrollments (workshops, courses, series). **Parameters:** - `locationIds` (optional): Filter by location - `staffIds` (optional): Filter by instructor - `programIds` (optional): Filter by program - `startDate` (optional): Starting from - `endDate` (optional): Ending by **Returns:** Enrollment options with availability and pricing #### `addClientToEnrollment` Register client for course/workshop. **Parameters:** - `clientId` (required): Client ID - `classScheduleIds` (required): Course IDs - `enrollmentDates` (optional): Specific dates - `waitlist` (optional): Add to waitlist #### `getClientEnrollments` View client's enrollments. **Parameters:** - `clientId` (required): Client ID **Returns:** Current and past enrollments with attendance ## Architecture & Performance ### High Performance - Built on Bun runtime for 4x faster execution - Intelligent caching system (5-min classes, 60-min static data) - Automatic retry with exponential backoff - Rate limit aware (2000 req/hour limit) ### Authentication - OAuth 2.0 with automatic token refresh - Secure credential management via environment variables - Site-specific authentication support ### Error Handling - User-friendly error messages - Graceful API failure handling - Detailed debug logging available ## Common Use Cases ### Daily Operations ``` "Show me today's yoga classes" "Check in Sarah Johnson" "Book John into the 6pm Vinyasa class" "Who's on the waitlist for tomorrow's Hot Yoga?" ``` ### Staff Management ``` "Get Alexia's teaching schedule this week" "Find a substitute for Maria's Thursday class" "Show me which instructors teach Pilates" "What appointments does Dr. Smith have today?" ``` ### Client Services ``` "Add new client Jennifer Wilson" "What's Michael's attendance this month?" "Show Sarah's active memberships" "Get client balance for ID 12345" ``` ### Sales Operations ``` "What class packages are available?" "Show me unlimited membership options" "Process purchase of 10-class package for Amy" "What products do we sell online?" ``` ### Business Analytics ``` "How many spots available in this week's classes?" "Show class attendance by instructor" "Get waitlist counts by class type" "List all studio locations and hours" ``` ## Configuration ### Required Environment Variables ``` MINDBODY_API_KEY=your_api_key MINDBODY_SITE_ID=your_site_id MINDBODY_SOURCE_NAME=your_source_name MINDBODY_SOURCE_PASSWORD=your_source_password ``` ### Optional Settings ``` MINDBODY_API_URL=https://api.mindbodyonline.com/public/v6 CACHE_TTL_MINUTES=5 MCP_SERVER_NAME=mindbody-mcp MCP_SERVER_VERSION=2.0.0 ``` ## Best Practices ### Searching - Use exact names when known for better performance - Provide date ranges to limit data returned - Use IDs instead of names when available ### Booking - Always check availability before booking - Handle waitlist scenarios gracefully - Verify payment requirements ### Caching - Class data cached for 5 minutes - Static data (locations, staff) cached for 60 minutes - Cache clears automatically on write operations ## Troubleshooting ### Common Issues **"Teacher not found"** - Check exact spelling - Try first name only or last name only - Use getStaff to list all teachers **"Class is full"** - Check waitlist availability - Suggest alternative times - Show similar classes **Rate limits** - Implement request throttling - Use caching effectively - Batch operations when possible **Empty results** - Verify date ranges - Check location filters - Ensure teacher has scheduled classes ## Future Enhancements - AI-powered substitute recommendations - Predictive attendance analytics - Automated waitlist management - Multi-site synchronization - Advanced reporting tools - Webhook integration for real-time updates - Mobile app integration - Revenue optimization suggestions ## Support For issues or questions about the MCP server, please check the repository documentation or contact support.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vespo92/MindbodyMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server