Skip to main content
The Zoom MCP Server reads its configuration from a .env file in the project root. You must provide three Zoom OAuth credentials for the server to authenticate with the Zoom API. Beyond those required values, a set of optional variables lets you control token refresh timing, logging verbosity, and how the server locates your Claude Desktop config.
Never commit your .env file to version control. It contains your Zoom OAuth credentials, which give API access to your Zoom account. Add .env to your .gitignore if you have not already.

Setting up the .env file

Copy the example file to get started:
cp .env.example .env
The example file looks like this:
# Zoom MCP Server example .env
# Copy to .env and fill in real values:

# Zoom Server-to-Server OAuth credentials (required to fetch access token)
ZOOM_CLIENT_ID="your_zoom_client_id_here"
ZOOM_CLIENT_SECRET="your_zoom_client_secret_here"
ZOOM_ACCOUNT_ID="your_zoom_account_id_here"

# The access token is written by get_zoom_token.sh; you usually don't set this manually.
# ZOOM_ACCESS_TOKEN="your_existing_access_token_if_you_have_one"

# Optional: override Claude config file path, MCP server name, or env key
# CLAUDE_CONFIG_FILE="/Users/you/Library/Application Support/Claude/claude_desktop_config.json"
# CLAUDE_MCP_SERVER_NAME="zoom"
# CLAUDE_ZOOM_ENV_KEY="ZOOM_ACCESS_TOKEN"
Open .env and fill in your three required values. See Set up your Zoom API credentials for how to obtain them.

Required variables

These three variables must be set before the server can authenticate with the Zoom API:
VariableDescription
ZOOM_CLIENT_IDYour Zoom OAuth app client ID
ZOOM_CLIENT_SECRETYour Zoom OAuth app client secret
ZOOM_ACCOUNT_IDYour Zoom account ID

Auto-managed variable

VariableDescription
ZOOM_ACCESS_TOKENThe active API access token. Written automatically by get_zoom_token.sh each time the server fetches or refreshes a token. You do not normally set this by hand.

Optional variables

You can override default behavior by setting any of the following variables in your .env file or as environment variables when invoking the server.
VariableDefaultDescription
CLAUDE_CONFIG_FILEmacOS standard locationOverride the path to your Claude Desktop config JSON file.
CLAUDE_MCP_SERVER_NAMEzoomOverride the MCP server name used in the Claude config.
ZOOM_TOKEN_THRESHOLD60How many seconds before expiration the token is treated as needing refresh.
ZOOM_AUTO_REFRESH_THRESHOLD300 (5 minutes)Seconds before expiration at which the running MCP server triggers an automatic token refresh.
ZOOM_TOKEN_DISPLAY_INTERVAL60How often (in seconds) the server prints a token status update to the terminal. Set to 0 to disable the periodic display.
ZOOM_CHECK_VERBOSE(unset)Enable verbose logging. Set to any non-empty value to turn on.
ZOOM_CHECK_LOGFILE./logs/zoom_token.logPath to the token log file.
ZOOM_APP_AUTOSTART(enabled)Electron app only. Set to 0 to prevent the MCP server from starting automatically when the app launches.

Setting optional variables inline

You can pass optional variables on the command line without editing .env. For example, to display token status every 30 seconds:
ZOOM_TOKEN_DISPLAY_INTERVAL=30 ./run.sh
Or to display token status every 2 minutes:
ZOOM_TOKEN_DISPLAY_INTERVAL=120 ./run.sh