PluginBench
MCP Server
Active

io.github.briangaoo/totem MCP Server

io.github.briangaoo/totem

What is the io.github.briangaoo/totem MCP server?

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

How to install io.github.briangaoo/totem

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • WHOOP_IOS_BEARER_TOKEN
    required
    secret

    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.

  • WHOOP_COGNITO_REFRESH_TOKEN
    required
    secret

    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.

  • WHOOP_EMAIL
    required

    Your Whoop account email. Used only by `totem auth` — the running server reads tokens, not credentials.

  • WHOOP_USER_ID

    Your numeric Whoop user ID. Optional — used by whoop_profile and whoop_leaderboard. Avoids one redundant bootstrap call per session if set.

  • WHOOP_TIMEZONE

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

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "totem": {
      "command": "npx",
      "args": [
        "-y",
        "@briangaoo/totem"
      ],
      "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>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "totem": {
      "command": "npx",
      "args": [
        "-y",
        "@briangaoo/totem"
      ],
      "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>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "totem": {
      "command": "npx",
      "args": [
        "-y",
        "@briangaoo/totem"
      ],
      "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>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "totem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@briangaoo/totem"
      ],
      "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>"
      }
    }
  }
}
Claude Code
claude mcp add totem --env WHOOP_IOS_BEARER_TOKEN=<YOUR_WHOOP_IOS_BEARER_TOKEN> --env WHOOP_COGNITO_REFRESH_TOKEN=<YOUR_WHOOP_COGNITO_REFRESH_TOKEN> --env WHOOP_EMAIL=<YOUR_WHOOP_EMAIL> --env WHOOP_USER_ID=<YOUR_WHOOP_USER_ID> --env WHOOP_TIMEZONE=<YOUR_WHOOP_TIMEZONE> -- npx -y @briangaoo/totem

Related MCP servers

Full read + write access to your Whoop fitness data via the private iOS API. 48 tools.

85
TypeScript
View repository →