Totem
Totem — talk to your wearables with AI.
Connector by thebriangao · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/thebriangao-totem
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data-analysis, api-integration
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 9 read · 13 write · 1 delete · 32 not yet classified
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 55
Read from the source code; the running server may list different tools.
Read 9 · Look things up without changing anything.
whoop_communitieswhoop_comparewhoop_endpointswhoop_journal_catalogwhoop_lift_catalogwhoop_preferenceswhoop_sleep_needwhoop_sports_catalogwhoop_weekly_plan
Write 13 · Create, change, send or run things.
whoop_activity_createwhoop_cycle_logwhoop_hidden_metricwhoop_hr_zones_setwhoop_journal_autopopwhoop_journal_logwhoop_lift_custom_exercisewhoop_lift_logwhoop_lift_template_savewhoop_profile_updatewhoop_sleep_editwhoop_smart_alarm_set
Show 1 more tools
whoop_symptom_log
Delete 1 · Delete, drop, revoke or wipe things.
whoop_activity_delete
Not yet classified 32 · We could not tell from the name and description.
whoop_activity_nowwhoop_behavior_impactwhoop_calendarwhoop_coach_askwhoop_cyclewhoop_daily_briefwhoop_daywhoop_hr_zoneswhoop_journalwhoop_leaderboardwhoop_lift_exercisewhoop_lift_history
Show 20 more tools
whoop_lift_librarywhoop_lift_overviewwhoop_lift_progressionwhoop_lift_prswhoop_live_hrwhoop_live_statewhoop_live_stresswhoop_performance_assessmentwhoop_profilewhoop_rawwhoop_recoverywhoop_sleepwhoop_smart_alarmwhoop_strainwhoop_stresswhoop_todaywhoop_trendwhoop_trend_packwhoop_workoutwhoop_workouts
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
WHOOP_COGNITO_REFRESH_TOKENWHOOP_IOS_BEARER_TOKEN
Other settings (environment variables or headers).
WHOOP_EMAILWHOOP_TIMEZONEWHOOP_USER_ID
Files it touches
- Any path the agent passes to its tools
Tools (55)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
whoop_activity_createWRITE: log a generic off-strap activity over a start–end window of at least 1 minute. Pass a sport_id or an exact sport name; preview unless confirm:true.
whoop_activity_deleteWRITE / DESTRUCTIVE: delete a workout/activity. Preview unless confirm:true.
whoop_activity_nowFresh live activity snapshot. Select state, heart_rate, and/or stress; no completed live value is cached.
whoop_behavior_impactHow much your tracked behaviors have historically moved recovery/HRV/sleep. Call with NO behavior_id to list every behavior with its impact_uuid + headline effect; then call again with behavior_id set to that impact_uuid (the long UUID, not a numeric id) for the full breakdown.
whoop_calendarMonth-at-a-glance calendar grid for the month containing the given date: each day's recovery STATE — GREEN (high), YELLOW (medium), or RED (low). The grid only exposes the state, not numeric recovery/sleep/strain scores; for a specific day's numbers use whoop_day.
whoop_coach_askWRITE (creates a coach conversation): ask Whoop Coach a question and poll up to 30s for the reply. context tells the coach which screen you're asking about — one of HOME, RECOVERY, STRAIN, SLEEP, STRESS, CARDIO_DETAILS, WAKE_UP_REPORT (default HOME). Preview unless confirm:true.
whoop_communitiesLists the communities you belong to (teams, friend groups) with member count and optionally your rank, controlled by team_type (ALL, COMMUNITY, TEAM, BUSINESS), metric (strain, sleep, recovery), and period (day, week, month). Use this to discover community IDs, then whoop_leaderboard to drill into one.
whoop_compareCompare two date windows side by side (e.g. 'this week vs last week') — each metric's average in window A vs window B plus the delta. window: week or month. metrics: any of RECOVERY, SLEEP_PERFORMANCE, DAY_STRAIN, HRV, RHR (defaults to all five).
whoop_cycleCurrent menstrual cycle status for a date: phase (e.g. Luteal Phase), cycle day, typical cycle length, and predicted next-period / ovulation dates. Requires women's-health tracking enabled on the account; fields return null if it isn't set up.
whoop_cycle_logWRITE: log a period or ovulation event for a date — pass period:true (optionally period_flow for flow intensity) OR ovulation:true, not both on the same date. Women's-health tracking must be set up on the account first (else the API 400s).
whoop_daily_briefCompact daily context. Request only the recovery, sleep, strain, sleep_plan, and activity sections needed; avoids heavy timelines and shares source reads.
whoop_dayComposite snapshot for any past date: recovery, sleep + stages, day strain, workouts count. Same shape as whoop_today but current_state is always null (not relevant for historical days).
whoop_endpointsSearch the bundled catalog of Whoop iOS API endpoints. Call before whoop_raw to discover paths.
whoop_hidden_metricWRITE: show or hide a dashboard metric. metric: BODY_COMP or HEALTHSPAN. action: hide or show.
whoop_hr_zonesCurrent heart-rate zones + max HR + last updated.
Show 40 more tools
whoop_hr_zones_setWRITE: set your heart-rate zones. mode=max_hr → pass max_hr (bpm) and Whoop recomputes the 5 zones; mode=custom → pass all 5 zones (ZONE_1..ZONE_5, each with min/max bpm).
whoop_journalYour journal entry for a date: tracked behaviors with values + human-readable names (resolved from the bundled catalog).
whoop_journal_autopopWRITE: trigger Whoop to auto-populate the journal from inferred behaviors (HealthKit data, workout patterns).
whoop_journal_catalogSearch the 308-behavior journal catalog to get a behavior_tracker_id and its magnitude type for whoop_journal_log. Filter by substring, magnitude_type (bare, boolean, or magnitude), or category (Drugs & Medication, Health & Symptoms, Hormonal Health, Lifestyle, Mental Wellbeing, Nutrition, Recovery, Sleep & Circadian Health, Supplements).
whoop_journal_logWRITE: log journal behaviors for a date. A behavior is only visible in the app when it is answered, so YES_NO behaviors default to answered_yes:true. Behaviors that accept a magnitude take magnitude_value (e.g. sauna minutes, alcoholic drinks) and an optional time (ISO datetime or epoch seconds) for 'when did you stop'. Entries already answered on that date are preserved unless replace_day:true. The write is confirmed by reading the day back, not by the status code.
whoop_leaderboardCommunity leaderboard ranking + your own position in it. Auto-discovers your first community if community_id is omitted. metric: recovery, sleep, or strain. window: day, week, or month.
whoop_lift_catalogSearch the 372-exercise Strength Trainer catalog to get the exact exercise_id for whoop_lift_log, lift_exercise, or lift_progression. Filter by name substring, muscle, equipment, movement_pattern, or laterality (BILATERAL, LEFT, RIGHT, ALTERNATING), and read the id from the result.
whoop_lift_custom_exerciseWRITE: create a custom Strength Trainer exercise based on an existing official one.
whoop_lift_exerciseSingle exercise composite: metadata + recent sessions (sets with reps/weight/medal) + PRs. Pass an ID or exact official exercise name.
whoop_lift_historyRecent strength workouts with per-exercise aggregates (set count, total reps, tonnage, medals). It does NOT include individual set reps/weights — for those use whoop_lift_exercise, which returns every set for one exercise across your history.
whoop_lift_libraryYour saved Strength Trainer templates. Pass template_id for full detail of one; omit for the list.
whoop_lift_logWRITE: log a finished strength workout — pass exercises by ID or exact name, each with sets (reps and/or weight in kg and/or time_seconds). Preview unless confirm:true.
whoop_lift_overviewCompact recent strength-workout overview. Uses one upstream list request; use whoop_lift_history only when per-exercise aggregates are needed.
whoop_lift_progressionMulti-window volume trend for a single exercise: 30-day, 6-month, year segments with avg volume + change % + per-session points. Pass an ID or exact official exercise name.
whoop_lift_prsAll Strength Trainer personal records: per-exercise top weight, units, date, medal.
whoop_lift_template_saveWRITE: create or save-as a Strength Trainer workout template from exercises by ID or exact name; sets can specify reps and/or weight (kg) and/or time_seconds. Preview unless confirm:true.
whoop_live_hrCurrent heart rate from the strap. Returns is_recording:false + last-known BPM if not actively streaming. Check last_updated_at for staleness.
whoop_live_stateAre you currently in a tracked workout, sleep, or idle? Returns sport name + start time if active.
whoop_live_stressCurrent stress level (terse). Cheaper than whoop_stress if you just want the latest reading.
whoop_performance_assessmentWhoop's performance assessment for a period — recoveries logged vs required, whether an assessment is due, and the next assessment window. period: WEEK or MONTH (default MONTH).
whoop_preferencesRead compact account preferences: journal enabled state and/or notification switches. Read-only; omit sections you do not need.
whoop_profileStatic account + body data: name, email, height, weight, max HR, resting HR, hidden metrics, stealth mode.
whoop_profile_updateWRITE: change any profile field(s) — pass ONLY what you want to change and the tool fetches your current profile and merges, backfilling everything you didn't touch (Whoop's PUT is non-partial and 422s on a sparse body). Weight is kg and height is meters; preview unless confirm:true.
whoop_rawESCAPE HATCH: call any Whoop endpoint directly — use only when no specific tool fits, and look up the exact path with whoop_endpoints first. Mutating methods (POST/PUT/DELETE) require confirm:true.
whoop_recoveryRecovery deep-dive: score, state, HRV and RHR (each with baseline), respiratory rate, SpO2, skin temp, and sleep performance. (The generic contributors[] array and calibration_state are empty in the current tile shape — the per-metric data is in the typed fields.)
whoop_sleepLast night's sleep deep-dive: all 4 stages (REM/light/SWS/wake) with durations + percentages, the full per-stage hypnogram, efficiency, performance, consistency, disturbances, and in-sleep heart rate. (Sleep HRV, respiratory rate, debt, and latency aren't exposed by this endpoint and return null.)
whoop_sleep_editWRITE: change a sleep's start and/or end time. Resolves the sleep's activity_id from `date` (default today); pass start and/or end (ISO-8601, any offset — sent as UTC), an omitted bound keeps the current value. Set resolve_overlaps:true if the new window overlaps an adjacent sleep/nap. Preview unless confirm:true.
whoop_sleep_needRecommended bedtime/wake time + sleep need breakdown (baseline + debt + strain need) + smart-alarm eligibility.
whoop_smart_alarmCurrent Smart Alarm state: schedules (per-day-of-week) + global prefs (lower/upper bounds, goal mode, enabled).
whoop_smart_alarm_setWRITE: update Smart Alarm. To change WHEN the alarm wakes you, use mode=schedule (needs schedule_id + latest_wake_time) — that's the setting that actually controls the wake time. mode=preferences sets the global goal + enable flags, but its lower/upper_time_bound are ignored by the server whenever an explicit schedule exists, so don't use it to set a wake time. master_enable / master_disable turn the whole system on/off. For schedule/preferences, call whoop_smart_alarm first for the schedule_id + current values, then resend with your edits (these replace, not merge).
whoop_sports_catalogSearch the 203-sport catalog (numeric sport_id ↔ name) to get the exact sport_id for whoop_activity_create. Filter by a substring of the sport name and read the id straight from the result rather than guessing one.
whoop_strainDay strain deep-dive: score, calories, avg/max HR, time in 6 HR zones, workouts count, steps, strength activity time.
whoop_stressStress monitor for a day: timeline buckets (15-min), current level, baseline, daily min/peak.
whoop_symptom_logWRITE: log women's-health symptoms for a date via menstruation (none, spotting, light_flow, medium_flow, heavy_flow), cervical_mucus (5 discharge types — see the param enum; omit to clear), and/or symptoms[] referencing behavior_tracker_ids. Women's-health tracking must be set up.
whoop_todayComposite snapshot for today: recovery score, sleep performance + stages, day strain so far, workouts logged today, current activity state.
whoop_trendTrend for one metric across week / month / 6-month windows — per-day points, aggregate stats, and delta vs the prior window. metric is exactly one of: HRV, RHR, RECOVERY, DAY_STRAIN, CALORIES, STEPS, AVERAGE_HR, HOURS_V_NEED, HOURS_V_NEEDED_PERCENT, TIME_IN_BED, SLEEP_PERFORMANCE, SLEEP_EFFICIENCY, SLEEP_CONSISTENCY, SLEEP_DEBT_POST, RESTORATIVE_SLEEP, HR_ZONES_1_3, HR_ZONES_4_5, RESPIRATORY_RATE, STRENGTH_ACTIVITY_TIME, STRESS, STRESS_DURING_SLEEP, STRESS_DURING_NON_STRAIN, VO2_MAX, BODY_COMPOSITION, WEIGHT.
whoop_trend_packCompact trend summaries for up to five requested metrics. Per-day points are omitted unless include_points is true.
whoop_weekly_planEXPERIMENTAL: Weekly-plan progress in a compact form. Its upstream endpoint has not yet been verified against a live account.
whoop_workoutSingle workout full detail: strain, HR curve, HR zone durations, calories, distance, sport. Strength workouts also include MSK summary. Note: a just-created/logged activity stays 'pending' for a while and errors here until Whoop scores it.
whoop_workoutsRecent workouts — sport, start/end, duration, strain, avg/max HR, and calories. Optional sport-name filter, limit (≤25), and start/end date range; use whoop_workout(activity_id) for one workout's full detail (HR curve, zones).
Signals
- Stars
- 135
- Forks
- 37
- Open issues
- 2
- Contributors
- 7
- Last commit
- Sep 16, 2026 (1 month ago)
- Last release
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.thebriangao/totem- Version
- 1.4.4
- Auth
- API key
- Packages
- npm @thebriangao/totem
- License
- License unknown
- Repository
- github.com/thebriangao/totem
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Totem MCP server. Agent Mart. https://agentmart.dev/connectors/thebriangao-totem (last updated 2026-10-24)