Mindbody MCP Server

Interactúa con la API de Mindbody para gestionar estudios de fitness y bienestar.

Documentación

🧘 Mindbody MCP Server

npm version CI License: MIT MCP SDK

Un servidor completo del Model Context Protocol (MCP) que proporciona a los asistentes de IA acceso completo a la API de Mindbody para la gestión de estudios de fitness y bienestar. Perfecto para estudios de yoga, estudios de pilates, gimnasios y centros de bienestar.

✨ Características

  • Más de 50 herramientas que cubren todos los aspectos de las operaciones del estudio
  • Gestión completa de clases - Ver horarios, reservar clientes, gestionar listas de espera, sustituir profesores
  • Gestión de clientes - Añadir/actualizar clientes, realizar seguimiento de visitas, membresías y saldos
  • Ventas y comercio - Procesar pagos, vender paquetes, membresías y productos minoristas
  • Gestión del personal - Ver horarios, gestionar citas, realizar seguimiento de disponibilidad
  • Soporte multi-ubicación - Gestiona múltiples ubicaciones de estudio sin problemas
  • Alto rendimiento - Construido sobre el runtime de Bun con caché inteligente
  • Seguridad de tipos - Soporte completo de TypeScript con tipos exhaustivos
  • Soporte de transporte dual - STDIO para desarrollo local, SSE para despliegue en producción

🚀 Inicio rápido

Instalación con npx (Node.js)

# Run directly without installation
npx @vespo92/mindbody-mcp

# Or install globally
npm install -g @vespo92/mindbody-mcp

Instalación con bunx (Bun - 4 veces más rápido)

# Run directly without installation  
bunx @vespo92/mindbody-mcp

# Or install globally with Bun
bun install -g @vespo92/mindbody-mcp

Instalar desde GitHub

# Using npx
npx github:vespo92/MindbodyMCP

# Using bunx (recommended for performance)
bunx github:vespo92/MindbodyMCP

# Or clone and run locally
git clone https://github.com/vespo92/MindbodyMCP.git
cd MindbodyMCP
bun install # or npm install
bun run start # or npm start

📋 Requisitos previos

  • Node.js 18+ o Bun 1.0+
  • Credenciales de la API de Mindbody (Clave de API, ID de sitio, credenciales de origen)
  • Claude Desktop o cualquier cliente compatible con MCP

⚙️ Configuración

1. Obtener credenciales de la API de Mindbody

  1. Regístrate para obtener una Cuenta de desarrollador de Mindbody
  2. Crea una nueva aplicación para obtener tus credenciales de API
  3. Anota tu ID de sitio (usa -99 para pruebas en sandbox)

2. Configurar variables de entorno

Crea un archivo .env en la raíz de tu proyecto:

# Copy the example file
cp .env.example .env

# Edit with your credentials
MINDBODY_API_KEY=your_api_key_here
MINDBODY_SITE_ID=-99  # 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

3. Configurar Claude Desktop

Añade a tu configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mindbody": {
      "command": "bunx",
      "args": ["@vespo92/mindbody-mcp"],
      "env": {
        "MINDBODY_API_KEY": "your_api_key",
        "MINDBODY_SITE_ID": "-99",
        "MINDBODY_SOURCE_NAME": "your_source_name",
        "MINDBODY_SOURCE_PASSWORD": "your_source_password"
      }
    }
  }
}

O usa el repositorio de GitHub directamente:

{
  "mcpServers": {
    "mindbody": {
      "command": "bunx",
      "args": ["github:vespo92/MindbodyMCP"],
      "env": {
        "MINDBODY_API_KEY": "your_api_key",
        "MINDBODY_SITE_ID": "-99",
        "MINDBODY_SOURCE_NAME": "your_source_name",
        "MINDBODY_SOURCE_PASSWORD": "your_source_password"
      }
    }
  }
}

🛠️ Herramientas disponibles

El servidor proporciona más de 50 herramientas en 7 categorías:

📅 Gestión de clases

  • getClasses - Ver todas las clases con filtros
  • getClassDescriptions - Listar tipos de clases
  • getClassSchedules - Ver horarios recurrentes
  • addClientToClass - Reservar clientes en clases
  • removeClientFromClass - Cancelar reservas
  • getWaitlistEntries - Gestionar listas de espera
  • substituteClassTeacher - Gestionar sustituciones

👥 Gestión de clientes

  • getClients - Buscar y recuperar clientes
  • addClient - Registrar nuevos clientes
  • updateClient - Actualizar información del cliente
  • getClientVisits - Ver historial de asistencia
  • getClientMemberships - Consultar membresías activas
  • addClientArrival - Registrar entrada de clientes
  • getClientAccountBalances - Ver saldos de cuenta
  • getClientContracts - Ver contratos

💰 Ventas y comercio

  • getServices - Ver servicios disponibles
  • getPackages - Listar paquetes de clases
  • getProducts - Explorar productos minoristas
  • getContracts - Ver opciones de membresía
  • checkoutShoppingCart - Procesar compras
  • purchaseContract - Vender membresías

🏢 Sitio y ubicaciones

  • getSites - Obtener información del negocio
  • getLocations - Listar todas las ubicaciones
  • getPrograms - Ver programas ofrecidos
  • getResources - Gestionar recursos
  • getSessionTypes - Listar tipos de sesión
  • getStaff - Ver todos los miembros del personal
  • getTeacherSchedule - Horarios de profesores

📆 Citas

  • getStaffAppointments - Ver citas
  • addAppointment - Reservar citas
  • updateAppointment - Modificar citas
  • getBookableItems - Encontrar espacios disponibles
  • getActiveSessionTimes - Comprobar disponibilidad
  • getScheduleItems - Ver horarios

🎓 Inscripciones

  • getEnrollments - Ver cursos/talleres
  • addClientToEnrollment - Inscribirse en cursos
  • getClientEnrollments - Ver inscripciones de clientes

💬 Ejemplo de uso en Claude

Una vez configurado, puedes preguntar a Claude:

"Show me today's yoga classes"
"Book Sarah Johnson into the 6pm Vinyasa class"
"Who's on the waitlist for tomorrow's Hot Yoga?"
"Add a new client named Jennifer Wilson"
"What's Michael's attendance this month?"
"Process a 10-class package purchase for Amy"
"Find a substitute for Maria's Thursday class"

🏗️ Desarrollo

Desarrollo local

# Clone the repository
git clone https://github.com/vespo92/MindbodyMCP.git
cd MindbodyMCP

# Install dependencies
bun install  # or npm install

# Run in development mode
bun run dev  # or npm run dev

# Run tests
bun test  # or npm test

# Build for production
bun run build  # or npm run build

Estructura del proyecto

MindbodyMCP/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── api/               # API client and auth
│   ├── tools/             # Tool implementations
│   ├── types/             # TypeScript types
│   ├── cache/             # Caching layer
│   └── utils/             # Utility functions
├── tests/                 # Test files
├── .github/workflows/     # CI/CD pipelines
└── CLAUDE.md             # Detailed documentation

🌐 Despliegue SSE (Producción)

El servidor admite transporte SSE (Server-Sent Events) para el despliegue en producción, lo que permite clientes basados en web y acceso remoto.

Inicio rápido con SSE

# Start with SSE transport
bun run start:sse

# Or with environment variable
MCP_TRANSPORT=sse bun start

# With custom port
bun run src/index.ts --transport sse --port 8080

Despliegue con Docker

# Using Docker Compose
docker-compose up -d

# Or manually
docker build -t mindbody-mcp .
docker run -d -p 3000:3000 -e MCP_TRANSPORT=sse mindbody-mcp

Configuración de producción

Configura mediante variables de entorno:

  • MCP_TRANSPORT=sse - Habilitar transporte SSE
  • MCP_PORT=3000 - Puerto del servidor
  • MCP_HOST=0.0.0.0 - Host del servidor
  • MCP_CORS_ORIGIN=https://yourdomain.com - Configuración CORS
  • MCP_SSL_CERT=/path/to/cert.pem - Certificado SSL (opcional)
  • MCP_SSL_KEY=/path/to/key.pem - Clave privada SSL (opcional)

Endpoints

  • /health - Endpoint de verificación de salud
  • /info - Información del servidor
  • /sse - Flujo de eventos SSE para comunicación MCP

Para instrucciones detalladas de despliegue, consulta la Guía de despliegue SSE.

🧪 Pruebas

# Run all tests
bun test

# Test SSE connection
bun run test:sse

# Test specific tool
bun run test:tool

# Run benchmarks
bun run benchmark

# Type checking
bun run typecheck

📦 Publicación

El paquete está disponible en:

🔒 Seguridad

  • Las credenciales de API se almacenan de forma segura mediante variables de entorno
  • Autenticación OAuth 2.0 con renovación automática de tokens
  • No se registran ni exponen credenciales
  • Auditorías de seguridad periódicas mediante GitHub Actions

⚡ Rendimiento

  • Runtime de Bun: inicio 4 veces más rápido que Node.js
  • Caché inteligente: caché de 5 minutos para datos dinámicos, 60 minutos para estáticos
  • Reintento automático: retroceso exponencial para solicitudes fallidas
  • Limitación de velocidad: respeta el límite de 2000 solicitudes/hora de Mindbody

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Pull Request.

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Haz push a la rama (git push origin feature/AmazingFeature)
  5. Abre una Pull Request

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

  • Mindbody API por proporcionar APIs completas para estudios de fitness
  • Anthropic MCP SDK por el Model Context Protocol
  • Bun por el runtime de JavaScript increíblemente rápido

📞 Soporte

🚀 Hoja de ruta

  • Soporte de webhooks para actualizaciones en tiempo real
  • Herramientas avanzadas de informes y análisis
  • Sincronización multi-sitio
  • Recomendaciones impulsadas por IA
  • Integración con aplicaciones móviles
  • Capa de API GraphQL

Hecho con ❤️ para estudios de yoga y centros de bienestar de todo el mundo