Skip to main content
Glama

TOTP MCP Server

MCP server for generating TOTP (Time-based One-Time Password) 2FA codes for Claude Code automation.

Features

  • Generate 6-digit TOTP codes for configured accounts

  • Codes are valid for ~30 seconds (standard TOTP)

  • Shows remaining validity time

  • Reads secrets from external file (not hardcoded)

Installation

cd ~/.claude/mcp-servers/totp
npm install

Configuration

  1. Create a secrets file (e.g., ~/.nutrie-secrets):

    GOOGLE_TOTP_SECRET=JBSWY3DPEHPK3PXP
  2. Update SECRETS_FILE path in index.js if needed

  3. Add accounts to the ACCOUNTS object in index.js:

    const ACCOUNTS = {
      "google": "GOOGLE_TOTP_SECRET",
      "github": "GITHUB_TOTP_SECRET",
    };

MCP Configuration

Add to your .mcp.json:

{
  "mcpServers": {
    "totp": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/.claude/mcp-servers/totp/index.js"]
    }
  }
}

Tools

get_totp_code

Generate a TOTP code for an account.

Parameters:

  • account (required): Account name (e.g., "google")

Example:

TOTP code for google: 123456
Valid for 24 more seconds

list_totp_accounts

List all configured TOTP accounts and their status.

Security

  • TOTP secrets are stored in an external file, not in the code

  • The secrets file should have restricted permissions (chmod 600)

  • Never commit secrets to git

Troubleshooting

TOTP code is rejected / invalid

TOTP codes are time-sensitive. The most common cause of invalid codes is clock drift.

  • Check system time: date — ensure it's accurate to within a few seconds

  • Sync time (Linux): sudo timedatectl set-ntp true

  • Sync time (macOS): System Settings → General → Date & Time → Set automatically

"Account not found" error

The account name must exactly match a key in the ACCOUNTS object in index.js.

  • Run list_totp_accounts to see all configured account names

  • Account names are case-sensitive (googleGoogle)

Secrets file not found

  • Verify the SECRETS_FILE path in index.js points to your actual secrets file

  • Confirm the file exists: ls -la ~/.nutrie-secrets (or your configured path)

  • Check file permissions allow reading: chmod 600 ~/.nutrie-secrets

MCP server fails to start

  • Run npm install in the totp directory to ensure dependencies are installed

  • Test manually: node index.js — any startup errors will print to stderr

  • Verify the path in .mcp.json is absolute and correct

TOTP secret is wrong / codes always fail

  • Re-scan or re-copy the TOTP secret from your account's 2FA setup page

  • Secrets are base32-encoded — ensure no extra spaces or line breaks in the secrets file

  • Confirm the correct environment variable name is mapped in ACCOUNTS

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Stig-Johnny/totp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server