Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TOTP MCP Servergenerate a code for my github account"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 installConfiguration
Create a secrets file (e.g.,
~/.nutrie-secrets):GOOGLE_TOTP_SECRET=JBSWY3DPEHPK3PXPUpdate
SECRETS_FILEpath inindex.jsif neededAdd accounts to the
ACCOUNTSobject inindex.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 secondslist_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 secondsSync time (Linux):
sudo timedatectl set-ntp trueSync 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_accountsto see all configured account namesAccount names are case-sensitive (
google≠Google)
Secrets file not found
Verify the
SECRETS_FILEpath inindex.jspoints to your actual secrets fileConfirm 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 installin the totp directory to ensure dependencies are installedTest manually:
node index.js— any startup errors will print to stderrVerify the path in
.mcp.jsonis 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