zoom-agent-cli
Provides tools for managing meetings, recordings, users, webinars, reports, dashboards, chat, and groups through the Zoom API, enabling AI agents to perform operations like listing, creating, updating, and deleting resources, retrieving reports, and sending chat messages.
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., "@zoom-agent-clilist my upcoming meetings"
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.
zoom-agent-cli
CLI and MCP server for the full Zoom API — built for humans and AI agents.
59 commands across meetings, recordings, users, webinars, reports, dashboard, chat, and groups. Every command is available both as a CLI subcommand and as an MCP tool — same schema, same auth, one codebase.
Install
npm install -g zoom-agent-cliRelated MCP server: Zabbix MCP Server
Step 1 — Create a Zoom Server-to-Server OAuth App
This tool uses Server-to-Server OAuth — no browser login, no user interaction. You exchange account credentials for a short-lived access token automatically on every request.
Create the app
Go to marketplace.zoom.us → Develop → Build App
Choose Server-to-Server OAuth
Name it anything (e.g.,
zoom-agent-cli)Under App Credentials, copy your:
Account ID
Client ID
Client Secret
Add required scopes
In your app's Scopes tab, add these scopes based on which command groups you need:
Group | Required Scopes |
meetings |
|
recordings |
|
users |
|
webinars |
|
reports |
|
dashboard |
|
chat |
|
groups |
|
AI summary |
|
Tip: For full access add all scopes. For a read-only agent, add only the
:read:adminvariants.
Activate the app
Click Activate your app in the Marketplace — the app must be active for tokens to be issued.
Step 2 — Configure Credentials
Three ways to provide credentials (checked in this order):
Option A — Environment variables (recommended for agents)
export ZOOM_ACCOUNT_ID="your-account-id"
export ZOOM_CLIENT_ID="your-client-id"
export ZOOM_CLIENT_SECRET="your-client-secret"Option B — Interactive login (recommended for local CLI use)
zoom loginStores credentials in ~/.zoom-agent-cli/config.json (mode 0600).
Option C — Per-command flags
zoom meetings list \
--account-id "..." \
--client-id "..." \
--client-secret "..."Step 3 — Verify
zoom statusCredentials found:
Account ID: 12345678...
Client ID: abcdefgh...
Client Secret: ****
Testing API connection...
Connected as: Jane Doe (jane@example.com)CLI Usage
zoom [options] [command]
Options:
--account-id <id> Zoom Account ID
--client-id <id> Zoom Client ID
--client-secret <sec> Zoom Client Secret
--output <format> json (default) or pretty
--pretty Shorthand for --output pretty
--quiet Exit code only, no output
--fields <fields> Comma-separated fields to return
Commands:
login Store credentials interactively
logout Remove stored credentials
status Test connectivity
mcp Start MCP server (stdio)
meetings Manage meetings (9 commands)
recordings Manage recordings (7 commands)
users Manage users (6 commands)
past-meetings Access past meeting data (2 commands)
webinars Manage webinars (10 commands)
reports Usage and audit reports (6 commands)
dashboard Quality metrics (4 commands)
chat Team Chat channels and messages (8 commands)
groups User groups (7 commands)Examples
# List upcoming meetings
zoom meetings list --type upcoming --pretty
# Create a scheduled meeting
zoom meetings create \
--topic "Sprint Review" \
--type 2 \
--duration 60 \
--start-time "2026-03-15T14:00:00Z" \
--timezone "America/New_York"
# Get recording files with download URLs
zoom recordings get <meeting-id>
# Get AI Companion meeting summary
zoom meetings summary <meeting-uuid>
# Get transcript for a recorded meeting
zoom recordings transcript <meeting-id>
# Get past meeting participants with join/leave times
zoom past-meetings participants <meeting-uuid>
# Send a chat message to a channel
zoom chat send-message \
--to-channel <channel-id> \
--message "Deployment complete ✓"
# Pull admin operation logs
zoom reports operation-logs --from 2026-03-01 --to 2026-03-13
# Filter output to specific fields
zoom users list --fields id,email,first_name,last_name --prettyMCP Server (for AI Agents)
Every CLI command is also available as an MCP tool. Start the server:
zoom mcpClaude Code / Claude Desktop config
Add to ~/.claude.json (or your MCP config file):
{
"mcpServers": {
"zoom": {
"command": "npx",
"args": ["-y", "zoom-agent-cli", "mcp"],
"env": {
"ZOOM_ACCOUNT_ID": "your-account-id",
"ZOOM_CLIENT_ID": "your-client-id",
"ZOOM_CLIENT_SECRET": "your-client-secret"
}
}
}
}If installed globally:
{
"mcpServers": {
"zoom": {
"command": "zoom",
"args": ["mcp"],
"env": {
"ZOOM_ACCOUNT_ID": "your-account-id",
"ZOOM_CLIENT_ID": "your-client-id",
"ZOOM_CLIENT_SECRET": "your-client-secret"
}
}
}
}MCP tools exposed
All 59 tools follow the naming convention {group}_{subcommand}:
Tool | Description |
| List meetings for a user |
| Get meeting details |
| Create a meeting |
| Update a meeting |
| Delete a meeting |
| End a live meeting |
| Get AI Companion meeting summary |
| List cloud recordings |
| Get recording files and download URLs |
| Get meeting transcript |
| Get recording sharing settings |
| List all account users |
| Get user details |
| Get past meeting instance details |
| Get participant list with join/leave times |
| List webinars |
| Get webinar details |
| Daily usage report |
| Participant report for a meeting |
| Admin operation audit log |
| Live/past meetings with quality metrics |
| Overall quality scores |
| List chat channels |
| Send a message to channel or contact |
| List chat message history |
| List all groups |
… | (59 total — run |
Command Reference
meetings
Command | Description |
| List meetings ( |
| Get meeting details |
| Create a meeting |
| Update a meeting |
| Delete a meeting |
| End a live meeting |
| List registrants |
| Add a registrant |
| Get AI Companion summary |
recordings
Command | Description |
| List cloud recordings ( |
| Get recording files and download URLs |
| Get meeting transcript |
| Get recording settings |
| Move recordings to trash |
| Delete a specific file |
| Recover from trash |
users
Command | Description |
| List all users |
| Get user details (use |
| Create a user |
| Update user profile |
| Delete or disassociate a user |
| Get user settings |
past-meetings
Command | Description |
| Get past meeting instance details |
| Get participants with join/leave times |
webinars
Command | Description |
| List webinars |
| Get webinar details |
| Create a webinar |
| Update a webinar |
| Delete a webinar |
| List registrants |
| Add a registrant |
| List panelists |
| Add panelists |
| List polls |
reports
Command | Description |
| Daily usage report ( |
| Active/inactive host report ( |
| Meeting detail report |
| Participant report |
| Cloud recording usage report |
| Admin operation audit log |
dashboard
Command | Description |
| List meetings with quality metrics |
| Meeting quality detail |
| Participant quality metrics |
| Overall quality scores |
chat
Command | Description |
| List channels |
| Get channel details |
| Create a channel |
| List messages ( |
| Send a message |
| Update a message |
| Delete a message |
| List channel members |
groups
Command | Description |
| List all groups |
| Get group details |
| Create a group |
| Rename a group |
| Delete a group |
| List members |
| Add members |
Output
All commands output JSON to stdout, errors to stderr.
# Compact JSON (default — pipe-friendly)
zoom meetings list
# Indented JSON (human-readable)
zoom meetings list --pretty
# Select specific fields
zoom users list --fields id,email,first_name --pretty
# Suppress output (exit code only — for scripts)
zoom meetings delete 12345 --quiet
echo $? # 0 = success, 1 = errorArchitecture
Each command is defined once as a CommandDefinition object — the same definition powers both the CLI (Commander.js) and MCP tool registration. Adding a new command means creating one file; both interfaces pick it up automatically.
src/
├── core/
│ ├── client.ts # S2S OAuth with automatic token refresh
│ ├── handler.ts # executeCommand() — routes fields to path/query/body
│ └── auth.ts # flag > env > config resolution
├── commands/ # One file per command
└── mcp/server.ts # Registers all CommandDefinitions as MCP toolsLicense
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/bcharleson/zoom-agent-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server