Whoop MCP

Servidor MCP local que expõe dados de recuperação, sono e esforço do Whoop para agentes de IA

Documentação

Servidor Whoop MCP

Servidor MCP que expõe seus dados de condicionamento físico do Whoop (recuperação, sono, strain, treinos) para o Claude usar como um treinador diário.

Pré-requisitos

  • Python 3.10+
  • Uma conta de Desenvolvedor Whoop com um aplicativo registrado
  • O Client ID e o Client Secret do seu aplicativo Whoop

Configuração do Painel do Desenvolvedor Whoop

  1. Acesse developer.whoop.com e faça login
  2. Crie um novo aplicativo
  3. Defina o Redirect URI como: http://localhost:8080/callback
  4. Ative estes escopos: read:recovery, read:cycles, read:sleep, read:profile, read:body_measurement
    • Observação: read:workout e offline podem não estar disponíveis em todos os aplicativos de desenvolvedor. O servidor lida com escopos ausentes de forma graciosa.
  5. Anote seu Client ID e Client Secret

Instalação

cd whoop-mcp
pip install -r requirements.txt

Autorização (Configuração Única)

Exporte as credenciais do seu aplicativo e execute o script de configuração:

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

Isso abre um navegador para a página de autorização do Whoop. Após aprovar, os tokens são criptografados e armazenados em ~/.whoop_mcp/. Se o escopo offline foi concedido, os tokens são renovados automaticamente. Caso contrário, execute este script novamente quando o token expirar.

Configuração do MCP no Claude Desktop / Cowork

Adicione isto à sua configuração MCP do 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"
      }
    }
  }
}

Substitua /absolute/path/to/whoop-mcp pelo caminho real na sua máquina.

Ferramentas Disponíveis

FerramentaDescrição
whoop_check_authVerifica se os tokens são válidos e não expiraram
whoop_get_latest_recoveryPontuação de recuperação mais recente, FCV, FC de repouso, SpO2
whoop_get_recovery_rangeDados de recuperação para um intervalo de datas
whoop_get_latest_sleepÚltima sessão de sono com detalhamento por estágios
whoop_get_sleep_rangeDados de sono para um intervalo de datas
whoop_get_latest_strainStrain do ciclo atual, FC média/máx, quilojoules
whoop_get_strain_rangeStrain dos últimos N dias com média
whoop_get_workoutsTreinos com ID do esporte, strain, zonas de FC
whoop_get_profilePerfil do usuário e medidas corporais
whoop_get_training_summaryResumo agregado de coaching (comece por aqui)

Exemplos de Prompts

Depois de conectado, você pode perguntar ao Claude coisas como:

  • "Qual foi minha recuperação ontem?"
  • "Quanto strain acumulei na semana passada?"
  • "Estou tendendo ao overtraining?"
  • "Como minha FCV mudou nas últimas duas semanas?"
  • "Quais foram meus estágios de sono ontem à noite?"
  • "Compare meu strain com minha recuperação nos últimos 7 dias."
  • "Devo fazer um treino pesado hoje?"

Fluxo de Trabalho do Treinador

Comece cada sessão chamando whoop_get_training_summary para uma visão geral do status de recuperação, carga de strain recente, qualidade do sono e uma avaliação de prontidão para treino.

Armazenamento de Tokens

Os tokens são armazenados criptografados em ~/.whoop_mcp/:

  • .encryption_key — Chave de criptografia Fernet (chmod 600)
  • tokens.enc — Tokens OAuth criptografados (chmod 600)
  • Permissões do diretório: chmod 700

Se a renovação do token falhar, execute novamente python scripts/setup_auth.py.