MCPLow riskUnclaimed

totem

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

thebriangaothebriangao/totem★ 125Updated Jun 12, 2026

server.json

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "io.github.thebriangao/totem",
  "description": "Totem — talk to your wearables with AI. Today: full Whoop access (48 tools).",
  "repository": {
    "url": "https://github.com/thebriangao/totem",
    "source": "github"
  },
  "version": "1.4.4",
  "packages": [
    {
      "registryType": "npm",
      "identifier": "@thebriangao/totem",
      "version": "1.4.4",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "description": "Whoop 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.",
          "isRequired": true,
          "format": "string",
          "isSecret": true,
          "name": "WHOOP_IOS_BEARER_TOKEN"
        },
        {
          "description": "Whoop 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.",
          "isRequired": true,
          "format": "string",
          "isSecret": true,
          "name": "WHOOP_COGNITO_REFRESH_TOKEN"
        },
        {
          "description": "Your Whoop account email. Used only by `totem auth` — the running server reads tokens, not credentials.",
          "isRequired": true,
          "format": "string",
          "name": "WHOOP_EMAIL"
        },
        {
          "description": "Your numeric Whoop user ID. Optional — used by whoop_profile and whoop_leaderboard. Avoids one redundant bootstrap call per session if set.",
          "format": "string",
          "name": "WHOOP_USER_ID"
        },
        {
          "description": "IANA 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).",
          "format": "string",
          "name": "WHOOP_TIMEZONE"
        }
      ]
    }
  ]
}

Permissions

DeclaredDetected
Runs code—node
Installs—npm:@thebriangao/totem@1.4.4
Runs install scripts—None
NetworkNoneNone
Needs credentialsWHOOP_COGNITO_REFRESH_TOKENWHOOP_IOS_BEARER_TOKENWHOOP_COGNITO_REFRESH_TOKENWHOOP_IOS_BEARER_TOKEN
Outside the workspace—None
Agent tools—None

Checks

Low risk · Nothing worth a warning was found.

Not reviewed by a person · Checked by rules; the model review is not switched on yet.

Versions

  1. #11.4.4latestOct 7, 2026