ZOOM_ACCESS_TOKEN not found in .env file
ZOOM_ACCESS_TOKEN not found in .env file
Error message:Your
.env file either doesn’t exist or doesn’t contain a ZOOM_ACCESS_TOKEN entry. Fetch a new token to populate it:Verify your .env file exists
Check that If the file is missing, copy the example and fill in your credentials:
.env is present in the project root and contains your Zoom OAuth credentials:Token expired
Token expired
Error message:Your token has passed its expiration time. Fetch a fresh one:The script checks the existing token before making an API call, so it will only request a new one if the current token is actually expired or missing.
Token expires too quickly
Token expires too quickly
Zoom Server-to-Server OAuth tokens are valid for approximately one hour. The MCP server monitors expiration in the background and automatically refreshes the token when it has less than 5 minutes remaining — no action is required on your part.If you need to manage the token manually, use these commands:
| Command | Behavior |
|---|---|
./scripts/get_zoom_token.sh | Smart fetch — only requests a new token if the current one is expired |
./scripts/get_zoom_token.sh -f | Force fetch — always requests a new token regardless of current validity |
./run.sh -f | Force fetch a new token, then start the server |
Token not updating in .env
Token not updating in .env
If the token fetch appears to succeed but the new token isn’t reflected in your Check file permissions to ensure the script can write to
.env file, check the following:Verify the token was written (the character count should be greater than 600):.env:If you see partial writes or the token appears truncated, ensure the project directory is writable and not locked by a sync service. Check file permissions with
ls -l .env.Token validation fails after refresh
Token validation fails after refresh
Symptom: Running You can also verify the token length directly in the file:The character count should be greater than 100. A shorter result indicates the token is malformed or truncated.
check_zoom_token.sh reports the token as expired immediately after you fetched a new one.This usually means your shell environment still holds the old token value. Reload the environment and re-run the check:Stuck in auto-refresh loop
Stuck in auto-refresh loop
The server has built-in protection against refresh loops: it enforces a 30-second cooldown between attempts and disables auto-refresh after 3 consecutive failures. When auto-refresh is disabled, you’ll see this message in the terminal:To recover manually, force a new token and update the Claude Desktop config in one step:After running this command, restart Claude Desktop so it picks up the new token.
python3 not found
python3 not found
The token validation scripts use Python 3 to parse the JWT expiration claim. If Alternatively, install Verify the installation:
python3 is not available on your system, the scripts fall back to a token refresh for safety, but you’ll see an error.Install Python 3 via Homebrew on macOS:jq for JSON parsing: