Status: live. 10 read-only MCP tools на Whoop API v2.
Як це працює
Whoop інтеграція – Shared App OAuth. Brama тримає один Whoop developer app; ти просто натискаєш Connect, проходиш Whoop consent, і агент отримує read-only доступ до твоїх Whoop-даних. Brama персистить access + refresh токени зашифрованими (envelope encryption, ключ поза базою). Whoop ротує refresh-токен при кожному оновленні; Brama персистить ротовані токени автоматично – повторний consent при звичайній роботі не потрібен.Раніше підключені tenant’и: інтеграція мігрувала з Full BYO (per-tenant dev app) на Shared App 2026-05-30. Якщо ти підключав Whoop до цього – підключи знову через Connect (попередні токени були видані твоїм власним Whoop-app і не сумісні з новим Brama-app).
Підключення
1. Connect
app.brama.work → Integrations → Whoop → натисни Connect Whoop.
Тебе перенаправить на Whoop consent screen – підтвердиш доступ до recovery / sleep / cycles / workout / profile / body measurements (read-only). Brama отримає токени, зашифрує їх і поверне тебе на сторінку інтеграції зі статусом active.
2. Запит
У своєму MCP клієнті (Claude Desktop, Gemini CLI – див. Connect a client):Який у мене recovery score сьогодні за Whoop?Агент викличе
brama_whoop_get_recovery_summary і поверне recovery score, HRV та resting heart rate.
MCP tools (live)
Усі 10 tools – read-only, на Whoop API v2. Нічого не змінюють у Whoop.Recovery
brama_whoop_get_recovery_summary
Останні recovery-записи tenant’а:
recovery_score (0–100), HRV (RMSSD, ms), resting heart rate (bpm), дата.Параметри: limit (optional – default 1, max 25) – скільки останніх записів повернути.brama_whoop_get_recovery_for_cycle
Recovery-запис для конкретного фізіологічного циклу.Параметри:
cycle_id (required, int64) – з brama_whoop_get_cycle_summary чи brama_whoop_get_recovery_summary.Sleep
brama_whoop_get_sleep_summary
Останні sleep-записи: performance / efficiency / consistency (%), тривалість у ліжку та за стадіями (light / REM / slow-wave), respiratory rate, кількість disturbances.Параметри:
limit (optional – default 1, max 25).brama_whoop_get_sleep_by_id
Конкретна sleep-активність за UUID – повний розклад стадій +
sleep_needed.Параметри: sleep_id (required, UUID) – з brama_whoop_get_sleep_summary.Cycles
brama_whoop_get_cycle_summary
Останні фізіологічні цикли (від початку сну до наступного початку сну): day strain (0–21), kilojoules, avg / max heart rate.Параметри:
limit (optional – default 1, max 25).brama_whoop_get_cycle_by_id
Конкретний цикл за int64 ID.Параметри:
cycle_id (required, int64).Workouts
brama_whoop_get_workouts
Останні тренування: strain (шкала 0–21), avg / max heart rate, спалені kilojoules, дистанція, altitude.Параметри:
limit (optional – default 3, max 25).brama_whoop_get_workout_by_id
Конкретне тренування за UUID – з тривалістю за heart-rate зонами.Параметри:
workout_id (required, UUID) – з brama_whoop_get_workouts.Profile
brama_whoop_get_profile
Whoop user profile tenant’а:
user_id, email, first_name, last_name.Параметри: немає.brama_whoop_get_body_measurements
Body measurements: height (m), weight (kg), max heart rate (bpm).Параметри: немає.
Безпека
- Shared App – Brama тримає один OAuth app; client_id / secret лежать у env (не в твоєму tenant blob’і). Твої access + refresh токени належать тільки тобі.
- Токени зашифровані at rest, ключі поза базою; на диск не пишуться, у пам’яті лише на час запиту; у логи не потрапляють.
- Whoop ротує refresh-токен при кожному оновленні – Brama персистить ротовані токени, тому повторний consent при звичайній роботі не потрібен.
- Кожен tenant ізольований – твої Whoop-дані недосяжні іншим tenant’ам.
- Read-only – tools нічого не змінюють у Whoop.
Питання
Питання? Напишиviktor@brama.work.