io.github.thebriangao/totem
Officialby thebriangao · TypeScript
Totem — talk to your wearables with AI. Today: full Whoop access (48 tools).
AI interface for wearable device data access, starting with Whoop fitness tracker.
Topics
README not available yet.
Install
Configuration
WHOOP_IOS_BEARER_TOKENrequiredsecretWhoop Cognito access token. Obtain via `totem auth` from the repo, which prompts for your Whoop email + password + SMS MFA code, then writes both tokens to a local .env. Auto-refreshes every ~24h.
WHOOP_COGNITO_REFRESH_TOKENrequiredsecretWhoop Cognito refresh token (~30 day lifetime). Obtained alongside the bearer token from `totem auth`. When this expires, run `totem auth` to get a fresh pair.
WHOOP_EMAILrequiredYour Whoop account email. Used only by `totem auth` — the running server reads tokens, not credentials.
WHOOP_USER_IDYour numeric Whoop user ID. Optional — used by whoop_profile and whoop_leaderboard. Avoids one redundant bootstrap call per session if set.
WHOOP_TIMEZONEIANA timezone (e.g., America/Los_Angeles) for response timestamps. Optional — if unset, the server auto-detects from your Whoop profile's timezone_offset field (refreshed hourly).
claude_desktop_config.json
{
"mcpServers": {
"totem": {
"command": "npx",
"args": [
"-y",
"@thebriangao/totem@1.4.4"
],
"env": {
"WHOOP_IOS_BEARER_TOKEN": "<YOUR_WHOOP_IOS_BEARER_TOKEN>",
"WHOOP_COGNITO_REFRESH_TOKEN": "<YOUR_WHOOP_COGNITO_REFRESH_TOKEN>",
"WHOOP_EMAIL": "<YOUR_WHOOP_EMAIL>",
"WHOOP_USER_ID": "<YOUR_WHOOP_USER_ID>",
"WHOOP_TIMEZONE": "<YOUR_WHOOP_TIMEZONE>"
}
}
}
}