Whoop MCP

Servidor MCP local que expone datos de recuperación, sueño y esfuerzo de Whoop a agentes de IA.

Documentación

Servidor MCP de Whoop

Servidor MCP que expone tus datos de fitness de Whoop (recuperación, sueño, esfuerzo, entrenamientos) a Claude para usarlo como entrenador diario.

Requisitos previos

  • Python 3.10+
  • Una cuenta de Desarrollador de Whoop con una aplicación registrada
  • El ID de cliente y el Secreto de cliente de tu aplicación de Whoop

Configuración del panel de desarrollador de Whoop

  1. Ve a developer.whoop.com e inicia sesión
  2. Crea una nueva aplicación
  3. Establece la URI de redirección a: http://localhost:8080/callback
  4. Habilita estos alcances: read:recovery, read:cycles, read:sleep, read:profile, read:body_measurement
    • Nota: read:workout y offline pueden no estar disponibles en todas las aplicaciones de desarrollador. El servidor maneja los alcances faltantes de forma elegante.
  5. Anota tu ID de cliente y Secreto de cliente

Instalación

cd whoop-mcp
pip install -r requirements.txt

Autorización (Configuración única)

Exporta las credenciales de tu aplicación y ejecuta el script de configuración:

export WHOOP_CLIENT_ID="your-client-id"
export WHOOP_CLIENT_SECRET="your-client-secret"
python scripts/setup_auth.py

Esto abre un navegador en la página de autorización de Whoop. Después de que apruebes, los tokens se cifran y se almacenan en ~/.whoop_mcp/. Si se otorgó el alcance offline, los tokens se renuevan automáticamente. De lo contrario, vuelve a ejecutar este script cuando el token expire.

Configuración MCP de Claude Desktop / Cowork

Agrega esto a tu configuración MCP de Claude:

{
  "mcpServers": {
    "whoop": {
      "command": "python",
      "args": ["/absolute/path/to/whoop-mcp/src/whoop_server.py"],
      "env": {
        "WHOOP_CLIENT_ID": "your-client-id",
        "WHOOP_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Reemplaza /absolute/path/to/whoop-mcp con la ruta real en tu máquina.

Herramientas disponibles

HerramientaDescripción
whoop_check_authVerifica que los tokens sean válidos y no estén vencidos
whoop_get_latest_recoveryPuntaje de recuperación más reciente, VFC, frecuencia cardíaca en reposo, SpO2
whoop_get_recovery_rangeDatos de recuperación para un rango de fechas
whoop_get_latest_sleepÚltima sesión de sueño con desglose por etapas
whoop_get_sleep_rangeDatos de sueño para un rango de fechas
whoop_get_latest_strainEsfuerzo del ciclo actual, FC promedio/máxima, kilojulios
whoop_get_strain_rangeEsfuerzo de los últimos N días con promedio
whoop_get_workoutsEntrenamientos con ID de deporte, esfuerzo, zonas de FC
whoop_get_profilePerfil de usuario y medidas corporales
whoop_get_training_summaryResumen de entrenamiento agregado (comienza aquí)

Ejemplos de indicaciones

Una vez conectado, puedes preguntarle a Claude cosas como:

  • "¿Cuál fue mi recuperación ayer?"
  • "¿Cuánto esfuerzo acumulé la semana pasada?"
  • "¿Estoy tendiendo al sobreentrenamiento?"
  • "¿Cómo ha cambiado mi VFC en las últimas dos semanas?"
  • "¿Cuáles fueron mis etapas de sueño anoche?"
  • "Compara mi esfuerzo con mi recuperación en los últimos 7 días."
  • "¿Debería hacer un entrenamiento intenso hoy?"

Flujo de trabajo del entrenador

Comienza cada sesión llamando a whoop_get_training_summary para obtener una visión general del estado de recuperación, la carga de esfuerzo reciente, la calidad del sueño y una evaluación de preparación para el entrenamiento.

Almacenamiento de tokens

Los tokens se almacenan cifrados en ~/.whoop_mcp/:

  • .encryption_key — Clave de cifrado Fernet (chmod 600)
  • tokens.enc — Tokens OAuth cifrados (chmod 600)
  • Permisos del directorio: chmod 700

Si la renovación del token falla, vuelve a ejecutar python scripts/setup_auth.py.