Skip to content
Agentmart
Submit a tool

Totem

Totem — talk to your wearables with AI.

Connector by thebriangao · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 135
Write a review

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.

We use your email only for this newsletter. Privacy

About

Totem — talk to your wearables with AI. Today: full Whoop access (48 tools).

Use cases: data-analysis, api-integration

No 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_communities
  • whoop_compare
  • whoop_endpoints
  • whoop_journal_catalog
  • whoop_lift_catalog
  • whoop_preferences
  • whoop_sleep_need
  • whoop_sports_catalog
  • whoop_weekly_plan

Write 13 · Create, change, send or run things.

  • whoop_activity_create
  • whoop_cycle_log
  • whoop_hidden_metric
  • whoop_hr_zones_set
  • whoop_journal_autopop
  • whoop_journal_log
  • whoop_lift_custom_exercise
  • whoop_lift_log
  • whoop_lift_template_save
  • whoop_profile_update
  • whoop_sleep_edit
  • whoop_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_now
  • whoop_behavior_impact
  • whoop_calendar
  • whoop_coach_ask
  • whoop_cycle
  • whoop_daily_brief
  • whoop_day
  • whoop_hr_zones
  • whoop_journal
  • whoop_leaderboard
  • whoop_lift_exercise
  • whoop_lift_history
Show 20 more tools
  • whoop_lift_library
  • whoop_lift_overview
  • whoop_lift_progression
  • whoop_lift_prs
  • whoop_live_hr
  • whoop_live_state
  • whoop_live_stress
  • whoop_performance_assessment
  • whoop_profile
  • whoop_raw
  • whoop_recovery
  • whoop_sleep
  • whoop_smart_alarm
  • whoop_strain
  • whoop_stress
  • whoop_today
  • whoop_trend
  • whoop_trend_pack
  • whoop_workout
  • whoop_workouts

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • WHOOP_COGNITO_REFRESH_TOKEN
  • WHOOP_IOS_BEARER_TOKEN

Other settings (environment variables or headers).

  • WHOOP_EMAIL
  • WHOOP_TIMEZONE
  • WHOOP_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_create

    WRITE: 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_delete

    WRITE / DESTRUCTIVE: delete a workout/activity. Preview unless confirm:true.

  • whoop_activity_now

    Fresh live activity snapshot. Select state, heart_rate, and/or stress; no completed live value is cached.

  • whoop_behavior_impact

    How 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_calendar

    Month-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_ask

    WRITE (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_communities

    Lists 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_compare

    Compare 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_cycle

    Current 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_log

    WRITE: 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_brief

    Compact daily context. Request only the recovery, sleep, strain, sleep_plan, and activity sections needed; avoids heavy timelines and shares source reads.

  • whoop_day

    Composite 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_endpoints

    Search the bundled catalog of Whoop iOS API endpoints. Call before whoop_raw to discover paths.

  • whoop_hidden_metric

    WRITE: show or hide a dashboard metric. metric: BODY_COMP or HEALTHSPAN. action: hide or show.

  • whoop_hr_zones

    Current heart-rate zones + max HR + last updated.

Show 40 more tools
  • whoop_hr_zones_set

    WRITE: 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_journal

    Your journal entry for a date: tracked behaviors with values + human-readable names (resolved from the bundled catalog).

  • whoop_journal_autopop

    WRITE: trigger Whoop to auto-populate the journal from inferred behaviors (HealthKit data, workout patterns).

  • whoop_journal_catalog

    Search 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_log

    WRITE: 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_leaderboard

    Community 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_catalog

    Search 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_exercise

    WRITE: create a custom Strength Trainer exercise based on an existing official one.

  • whoop_lift_exercise

    Single exercise composite: metadata + recent sessions (sets with reps/weight/medal) + PRs. Pass an ID or exact official exercise name.

  • whoop_lift_history

    Recent 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_library

    Your saved Strength Trainer templates. Pass template_id for full detail of one; omit for the list.

  • whoop_lift_log

    WRITE: 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_overview

    Compact recent strength-workout overview. Uses one upstream list request; use whoop_lift_history only when per-exercise aggregates are needed.

  • whoop_lift_progression

    Multi-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_prs

    All Strength Trainer personal records: per-exercise top weight, units, date, medal.

  • whoop_lift_template_save

    WRITE: 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_hr

    Current heart rate from the strap. Returns is_recording:false + last-known BPM if not actively streaming. Check last_updated_at for staleness.

  • whoop_live_state

    Are you currently in a tracked workout, sleep, or idle? Returns sport name + start time if active.

  • whoop_live_stress

    Current stress level (terse). Cheaper than whoop_stress if you just want the latest reading.

  • whoop_performance_assessment

    Whoop'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_preferences

    Read compact account preferences: journal enabled state and/or notification switches. Read-only; omit sections you do not need.

  • whoop_profile

    Static account + body data: name, email, height, weight, max HR, resting HR, hidden metrics, stealth mode.

  • whoop_profile_update

    WRITE: 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_raw

    ESCAPE 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_recovery

    Recovery 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_sleep

    Last 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_edit

    WRITE: 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_need

    Recommended bedtime/wake time + sleep need breakdown (baseline + debt + strain need) + smart-alarm eligibility.

  • whoop_smart_alarm

    Current Smart Alarm state: schedules (per-day-of-week) + global prefs (lower/upper bounds, goal mode, enabled).

  • whoop_smart_alarm_set

    WRITE: 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_catalog

    Search 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_strain

    Day strain deep-dive: score, calories, avg/max HR, time in 6 HR zones, workouts count, steps, strength activity time.

  • whoop_stress

    Stress monitor for a day: timeline buckets (15-min), current level, baseline, daily min/peak.

  • whoop_symptom_log

    WRITE: 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_today

    Composite snapshot for today: recovery score, sleep performance + stages, day strain so far, workouts logged today, current activity state.

  • whoop_trend

    Trend 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_pack

    Compact trend summaries for up to five requested metrics. Per-day points are omitted unless include_points is true.

  • whoop_weekly_plan

    EXPERIMENTAL: Weekly-plan progress in a compact form. Its upstream endpoint has not yet been verified against a live account.

  • whoop_workout

    Single 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_workouts

    Recent 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
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)