Skip to main content
Glama

🏃 Servidor MCP de WHOOP

Conecta tus datos de fitness de WHOOP a Claude Desktop a través del Protocolo de Contexto de Modelo (MCP)

License: MIT Python 3.8+ MCP

Transforma tus datos de fitness de WHOOP en información útil mediante consultas en lenguaje natural en Claude Desktop. Haz preguntas sobre tus entrenamientos, recuperación, patrones de sueño y más, todo mientras mantienes tus datos seguros y privados.

🚀 NUEVO: ¡Prueba la versión alojada en Smithery para una implementación sin configuración!

✨ Características

🔐 Integración OAuth segura - Conexión segura a la cuenta de WHOOP con almacenamiento local cifrado 🏃 Acceso completo a datos - Entrenamientos, recuperación, sueño, ciclos e información de perfil 🤖 Consultas en lenguaje natural - Pregúntale a Claude sobre tus datos de fitness en inglés sencillo ⚡ Caché inteligente - Rendimiento optimizado con almacenamiento en caché de datos inteligente 🛡️ Privacidad primero - Todos los datos permanecen en tu máquina, nunca se envían a terceros 🔄 Actualización automática de tokens - Experiencia fluida con renovación automática de autenticación

Related MCP server: Whoop MCP Server

🚀 Inicio rápido

🎯 Elige tu método de implementación

Opción A: Alojado en Smithery (Recomendado para principiantes)

  • ✅ Cero complejidad de instalación

  • ✅ Actualizaciones y mantenimiento automáticos

  • ✅ Alojamiento de nivel empresarial

  • ➡️ Comienza con Smithery

Opción B: Instalación local (Usuarios avanzados)

  • ✅ Control total y privacidad

  • ✅ Sin dependencias externas

  • ✅ Personaliza y extiende

  • ➡️ Continúa con la configuración local a continuación


📦 Instalación local

1. Requisitos previos

  • Python 3.8+

  • Claude Desktop

  • Cuenta de WHOOP activa

2. Instalación

git clone https://github.com/romanevstigneev/whoop-mcp-server.git
cd whoop-mcp-server
pip install -r requirements.txt

3. Configuración

Opción A: Configuración interactiva (Recomendado)

Ejecuta la configuración interactiva:

python setup.py

Esto hará lo siguiente:

  • Abrirá tu navegador para la autorización OAuth de WHOOP

  • Guardará tus tokens de forma segura localmente

  • Proporcionará la configuración para Claude Desktop

Opción B: Configuración manual de OAuth de WHOOP

Si la configuración interactiva no funciona, puedes obtener tus tokens de WHOOP manualmente:

  1. Abre la página de OAuth de WHOOP: 👉 Haz clic aquí para autorizar el acceso a WHOOP

  2. Autoriza tu cuenta:

    • Inicia sesión con tus credenciales de WHOOP

    • Concede permisos para los alcances solicitados:

      • read:profile - Acceso a la información de tu perfil

      • read:workout - Acceso a los datos de entrenamiento

      • read:recovery - Acceso a los datos de recuperación

      • read:sleep - Acceso a los datos de sueño

      • offline - Token de actualización para acceso continuo

  3. Copia el código de autorización:

    • Después de la autorización, verás una página de éxito

    • Copia el código de autorización completo (cadena larga que comienza con letras/números)

    • Se ve así: ABC123...XYZ789 (mucho más largo)

  4. Intercambia el código por tokens:

    python -c "
    import sys
    sys.path.insert(0, './src')
    from auth_manager import TokenManager
    import requests
    
    # Paste your authorization code here
    auth_code = 'YOUR_AUTHORIZATION_CODE_HERE'
    
    # Exchange for tokens
    url = f'https://personal-integrations-462307.uc.r.appspot.com/api/get-tokens/{auth_code}'
    response = requests.get(url, timeout=30)
    
    if response.status_code == 200:
        token_data = response.json()
        if token_data.get('success'):
            # Save tokens
            token_manager = TokenManager()
            token_manager.save_tokens(token_data)
            print('✅ Tokens saved successfully!')
        else:
            print('❌ Token exchange failed')
    else:
        print(f'❌ HTTP Error: {response.status_code}')
    "
  5. Verifica la configuración:

    python -c "
    import sys
    sys.path.insert(0, './src')
    from whoop_client import WhoopClient
    client = WhoopClient()
    print(f'✅ Auth status: {client.get_auth_status()}')
    "

4. Configura Claude Desktop

Agrega esto a tu configuración de Claude Desktop:

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

{
  "mcpServers": {
    "whoop": {
      "command": "/opt/miniconda3/bin/python",
      "args": ["/path/to/whoop-mcp-server/src/whoop_mcp_server.py"],
      "env": {
        "PYTHONPATH": "/path/to/whoop-mcp-server/src"
      }
    }
  }
}

⚠️ Importante: Usa la ruta completa de Python (encuentra la tuya con which python3)

5. Reinicia Claude Desktop

Después de agregar la configuración, reinicia Claude Desktop para cargar el servidor de WHOOP.

💡 Ejemplos de uso

Una vez configurado, puedes preguntarle a Claude:

  • "Show my WHOOP profile"

  • "What were my workouts this week?"

  • "How is my recovery trending?"

  • "Show my sleep data for the last 7 days"

  • "What's my HRV looking like?"

  • "Compare my recovery to last month"

🛠️ Herramientas disponibles

get_whoop_profile

Obtén la información de tu perfil de usuario de WHOOP.

get_whoop_workouts

Obtén datos de entrenamiento con filtros opcionales:

  • start_date (AAAA-MM-DD)

  • end_date (AAAA-MM-DD)

  • limit (número de resultados)

get_whoop_recovery

Obtén datos de recuperación con filtros opcionales:

  • start_date (AAAA-MM-DD)

  • end_date (AAAA-MM-DD)

  • limit (número de resultados)

get_whoop_sleep

Obtén datos de sueño con filtros opcionales:

  • start_date (AAAA-MM-DD)

  • end_date (AAAA-MM-DD)

  • limit (número de resultados)

get_whoop_cycles

Obtén ciclos fisiológicos (datos diarios) con filtros opcionales:

  • start_date (AAAA-MM-DD)

  • end_date (AAAA-MM-DD)

  • limit (número de resultados)

get_whoop_auth_status

Verifica el estado de autenticación y la información del token.

clear_whoop_cache

Borra los datos en caché para forzar nuevas llamadas a la API.

🔐 Seguridad

  • Cifrado de tokens: Todos los tokens están cifrados en reposo mediante cifrado AES

  • Almacenamiento local: Los tokens se almacenan localmente en tu máquina, nunca se envían a terceros

  • Permisos seguros: Los archivos de token tienen permisos restringidos (600)

  • Actualización automática: Los tokens se actualizan automáticamente cuando caducan

📊 Almacenamiento en caché de datos

  • Caché inteligente: Las respuestas de la API se almacenan en caché durante 5 minutos para mejorar el rendimiento

  • Limitación de tasa: Limitación de tasa integrada para respetar los límites de la API de WHOOP

  • Control de caché: Borrado manual de caché disponible

🔧 Configuración

Variables de entorno (opcionales):

  • LOG_LEVEL: Nivel de registro (DEBUG, INFO, WARNING, ERROR)

  • LOG_FILE: Ruta del archivo de registro (predeterminado: solo consola)

🆚 Comparación de implementación

Característica

Alojado en Smithery

Instalación local

Tiempo de configuración

⚡ 2 minutos

⏱️ 10-15 minutos

Complejidad

🟢 Apto para principiantes

🟡 Requiere configuración técnica

Mantenimiento

✅ Cero (actualizaciones automáticas)

🔧 Requiere actualizaciones manuales

Rendimiento

🚀 Alojamiento optimizado

💻 Depende de la configuración local

Privacidad

🌐 Plataforma alojada

🔒 Totalmente local

Dependencias

❌ Ninguna

🐍 Python, paquetes, OAuth

Solución de problemas

📞 Soporte de plataforma

🛠️ Autoservicio

📁 Estructura de archivos

whoop-mcp-server/
├── src/                       # Python local installation
│   ├── whoop_mcp_server.py    # Main MCP server
│   ├── whoop_client.py        # WHOOP API client
│   ├── auth_manager.py        # Token management
│   └── config.py              # Configuration
├── smithery/                  # TypeScript source files
│   └── src/
│       ├── index.ts           # Smithery MCP server
│       ├── whoop-client.ts    # TypeScript WHOOP client
│       └── types.ts           # Type definitions
├── storage/                   # Local installation only
│   ├── tokens.json            # Encrypted tokens (auto-generated)
│   └── .encryption_key        # Encryption key (auto-generated)
├── package.json               # Node.js dependencies (Smithery)
├── smithery.yaml              # Smithery configuration (root required)
├── tsconfig.json              # TypeScript configuration
├── setup.py                   # Interactive setup script
└── requirements.txt           # Python dependencies

🐛 Solución de problemas

"No valid access token available"

  • Ejecuta python setup.py para volver a autorizar

  • Verifica que tu cuenta de WHOOP esté activa

"Authentication failed"

  • Es posible que tus tokens hayan caducado más allá de la actualización

  • Ejecuta python setup.py para obtener nuevos tokens

"Rate limit exceeded"

  • Espera un minuto antes de realizar más solicitudes

  • Considera usar datos en caché o reducir la frecuencia de las solicitudes

Claude Desktop no ve el servidor

  • Usa la ruta completa de Python: Cambia "command": "python" a "command": "/opt/miniconda3/bin/python" (usa which python3 para encontrar la tuya)

  • Verifica el archivo de configuración correcto: Edita ~/Library/Application Support/Claude/claude_desktop_config.json (no .claude.json)

  • Usa rutas absolutas: Rutas completas como /Users/username/whoop-mcp-server/src/whoop_mcp_server.py

  • Revisa los registros: tail -f ~/Library/Logs/Claude/mcp-server-whoop.log

  • Reinicia Claude Desktop después de los cambios de configuración

🔄 Actualización de tokens

El servidor actualiza automáticamente los tokens caducados usando el token de actualización. Si esto falla, deberás volver a autorizar:

python setup.py

📝 Registro (Logging)

Los registros se escriben en la consola de forma predeterminada. Para registrar en un archivo:

export LOG_FILE="/path/to/whoop-mcp.log"
export LOG_LEVEL="INFO"

🤝 Contribución

  1. Haz un fork del repositorio

  2. Crea una rama de características

  3. Realiza tus cambios

  4. Agrega pruebas si corresponde

  5. Envía una solicitud de extracción (pull request)

📄 Licencia

Este proyecto tiene licencia MIT; consulta el archivo LICENSE para obtener más detalles.

⚠️ Descargo de responsabilidad

Esta es una integración no oficial con WHOOP. Utiliza la API oficial de WHOOP pero no está respaldada por WHOOP.

📞 Soporte

  • Revisa la sección de solución de problemas anterior

  • Abre un issue en GitHub

  • Revisa la documentación de la API de WHOOP en https://developer.whoop.com/

🎯 Hoja de ruta

  • [ ] Análisis de datos históricos

  • [ ] Consultas de rango de fechas personalizadas

  • [ ] Funcionalidad de exportación de datos

  • [ ] Soporte de Webhook para actualizaciones en tiempo real

  • [ ] Análisis e información avanzada

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects WHOOP fitness data to Claude Desktop, enabling natural language queries about workouts, recovery, sleep patterns, and health metrics while keeping data secure and private.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes Whoop fitness data (recovery, sleep, strain, workouts) to Claude for use as a daily training coach, enabling natural language queries about your health metrics and training readiness.
    MIT

View all related MCP servers

Related MCP Connectors

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

View all MCP Connectors

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/RomanEvstigneev/whoop-mcp-server'

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