Your Zoom Account, Controlled by Agents.
Meetings. Recordings. Webinars. Reports. 59 commands. Every one doubles as an MCP tool.
Zoom has no official CLI built for autonomous agents. Agents can’t schedule meetings, pull transcripts, or run reports without custom API wrappers.
So we built zoom-agent-cli — the missing CLI for agents on Zoom.

Why zoom-agent-cli Exists
Without zoom-agent-cli
- No official CLI — Zoom only offers a REST API and dashboard UI
- Agents can’t schedule meetings or pull transcripts without custom API wrappers
- S2S OAuth token refresh must be implemented from scratch for every use
- No MCP support — agents can’t call Zoom as a native tool
- Meeting intelligence (summaries, transcripts, quality data) locked in the dashboard
With zoom-agent-cli
- 59 commands covering the full Zoom API surface across 9 groups
- S2S OAuth with automatic token refresh — no browser login, no manual token management
- Every command is also an MCP tool — plug into any AI agent via npx
- JSON-first output — pipe to jq, save to files, feed directly to agents
- AI Companion summaries and full transcripts accessible programmatically
When You Need This
Post-Meeting Intelligence
Automatically pull AI Companion summaries, transcripts, and participant data after every meeting — feed directly into your CRM or follow-up workflows.
Webinar & Event Operations
Create webinars, batch-register prospects, add panelists, and pull poll responses — all from your agent without touching the Zoom dashboard.
Meeting Quality Monitoring
Pull dashboard quality metrics and per-participant data to proactively identify audio/video issues before they affect customer calls.
Usage & Compliance Reporting
Generate daily usage reports, per-user activity logs, and cloud recording audits for IT, finance, or compliance stakeholders.
Team Communication Automation
Create Zoom Team Chat channels, onboard new team members, and send structured notifications — all programmatically from your agent.
Sales Meeting Automation
Schedule, update, and cancel prospect meetings. Pull recording links and transcripts post-call to auto-populate deal notes in your CRM.
Quick Start
1. Install
npm install -g zoom-agent-cli2. Create a Server-to-Server OAuth app
1. Go to marketplace.zoom.us → Develop → Build App
2. Choose Server-to-Server OAuth app type
3. Add required scopes (meetings:read, meetings:write, recording:read, etc.)
4. Copy your Account ID, Client ID, and Client Secret
3. Authenticate
# 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 (saves to ~/.zoom-cli/config.json)
zoom login
# Option C: per-command flags
zoom meetings list --account-id <id> --client-id <id> --client-secret <secret>4. Verify
zoom meetings list --user-id me --pretty
# Returns your upcoming meetings as formatted JSON
zoom users list --pretty
# Returns all users in your Zoom accountWhat zoom-agent-cli Gives Your Agent
Meetings
List, get, create, update, delete, and end meetings. Add registrants, list registrants, and pull AI Companion meeting summaries.
Recordings
List and get cloud recordings. Pull full transcripts, manage recording settings, delete recordings, delete individual files, and recover deleted recordings.
Users
List, get, create, update, and delete users. Manage user settings including recording preferences, scheduling defaults, and feature access.
Webinars
Full webinar lifecycle — list, create, update, delete. Manage registrants, panelists, and pull poll responses from your webinar sessions.
Reports & Dashboard
Daily usage reports, per-user activity, meeting analytics, participant data, cloud recording usage, operation logs, and quality metrics for dashboard monitoring.
Chat & Groups
Browse chat channels, send and update messages, manage channel members, and organize users into groups with full member management.
Past Meetings
Retrieve past meeting details and participant lists. Pull attendance data, join/leave times, and engagement metrics from completed meetings.
MCP Server
Every command is exposed as an MCP tool. Claude, Cursor, OpenClaw, and any MCP client can call all 59 commands natively via npx — no local install required.
Agent Workflows
Real prompts agents use to manage Zoom meetings, recordings, and communications end-to-end.
Post-Meeting Intelligence Brief
Agent Prompt
“The 10am meeting with Acme Corp just ended. Pull the AI Companion summary, get the recording transcript, and list who attended.”
Agent retrieves the meeting summary, fetches the cloud recording transcript, and pulls participant data — a complete post-meeting intelligence package in seconds.
zoom meetings summary <meeting-uuid> --prettyPull AI Companion meeting summary
zoom recordings list --user-id me --prettyFind the recording from today
zoom recordings transcript <meeting-id> --prettyGet full meeting transcript
zoom past-meetings participants <meeting-uuid> --prettyList all attendees
Webinar Registration & Follow-Up
Agent Prompt
“Schedule a product demo webinar for next Thursday at 2pm, then add our prospect list as registrants.”
Agent creates the webinar, registers all prospects, and lists confirmed registrants — complete webinar setup without touching the dashboard.
zoom webinars create --user-id me --topic "Product Demo" --start-time "2026-03-19T14:00:00Z" --duration 60Create the webinar
zoom webinars add-registrant <webinar-id> --email prospect@company.com --first-name JohnAdd each prospect as registrant
zoom webinars list-registrants <webinar-id> --prettyConfirm registrations
Usage & Engagement Report
Agent Prompt
“Give me a report of Zoom usage for the sales team this month — meetings held, total participants, and recording activity.”
Agent pulls daily usage stats, per-user meeting reports, and cloud recording usage — a complete engagement brief for sales leadership.
zoom reports daily --year 2026 --month 3 --prettyPull daily usage across the account
zoom reports users --from 2026-03-01 --to 2026-03-31 --prettyPer-user activity report
zoom reports cloud-recording --from 2026-03-01 --to 2026-03-31 --prettyCloud recording usage
Meeting Quality Monitoring
Agent Prompt
“Check if there were any quality issues in today's all-hands meeting — video lag, audio drops, or connectivity problems.”
Agent pulls dashboard quality metrics and per-participant quality data, surfacing any technical issues that affected meeting experience.
zoom dashboard meetings --from 2026-03-13 --to 2026-03-13 --prettyGet dashboard summary for today
zoom dashboard meeting-detail <meeting-uuid> --prettyGet detailed meeting metrics
zoom dashboard meeting-participants <meeting-uuid> --prettyPull per-participant quality data
zoom dashboard quality --from 2026-03-13 --to 2026-03-13 --prettyOverall quality score
Team Onboarding via Chat
Agent Prompt
“Create a #new-hires Zoom Team Chat channel and add the three new starters to it.”
Agent creates the chat channel, adds new team members, and confirms membership — structured onboarding without admin dashboard access.
zoom chat create-channel --name "new-hires" --type 1Create private channel
zoom chat add-members <channel-id> --member-ids "user1,user2,user3"Add new starters
zoom chat list-members <channel-id> --prettyConfirm all members added
zoom chat send-message <channel-id> --message "Welcome to the team! 👋"Send welcome message
Recurring Meeting Series Setup
Agent Prompt
“Set up weekly 30-minute pipeline review meetings every Monday at 9am for the next quarter, and make sure cloud recording is on.”
Agent creates the recurring meeting with recording enabled, verifies the settings, and lists the upcoming instances — full meeting infrastructure setup in one shot.
zoom meetings create --user-id me --topic "Weekly Pipeline Review" --type 8 --start-time "2026-03-16T09:00:00Z" --duration 30Create recurring weekly meeting
zoom users settings <user-id> --prettyVerify recording settings are enabled
zoom meetings list --user-id me --type scheduled --prettyConfirm meeting series is listed
Commands Reference
zoom meetings list --user-id <id> [--pretty]List all meetings for a userzoom meetings get <meeting-id>Get details of a specific meetingzoom meetings create --user-id <id> --topic <topic> --start-time <time> --duration <min>Create a new meetingzoom meetings update <meeting-id> [--topic] [--start-time] [--duration]Update meeting propertieszoom meetings delete <meeting-id>Delete a meetingzoom meetings end <meeting-id>End an in-progress meetingzoom meetings list-registrants <meeting-id> [--pretty]List all registrantszoom meetings add-registrant <meeting-id> --email <email> --first-name <name>Add a registrant to a meetingzoom meetings summary <meeting-uuid> [--pretty]Get AI Companion meeting summaryzoom recordings list --user-id <id> [--from] [--to] [--pretty]List cloud recordings for a userzoom recordings get <meeting-id> [--pretty]Get recording details and download URLszoom recordings transcript <meeting-id> [--pretty]Get full meeting transcriptzoom recordings settings <meeting-id> [--pretty]Get recording settings for a meetingzoom recordings delete <meeting-id> [--action]Delete a cloud recordingzoom recordings delete-file <meeting-id> --recording-id <id>Delete a specific recording filezoom recordings recover <meeting-id>Recover a deleted cloud recordingzoom users list [--pretty] [--status]List all users in the accountzoom users get <user-id> [--pretty]Get a specific user's detailszoom users create --email <email> --first-name <name> --last-name <name>Create a new userzoom users update <user-id> [--first-name] [--last-name] [--timezone]Update user propertieszoom users delete <user-id> [--action]Delete or deactivate a userzoom users settings <user-id> [--pretty]Get user settings (recording, scheduling, etc.)zoom past-meetings get <meeting-uuid> [--pretty]Get details of a past meetingzoom past-meetings participants <meeting-uuid> [--pretty]List participants of a past meetingzoom webinars list --user-id <id> [--pretty]List all webinars for a userzoom webinars get <webinar-id> [--pretty]Get webinar detailszoom webinars create --user-id <id> --topic <topic> --start-time <time>Create a new webinarzoom webinars update <webinar-id> [--topic] [--agenda]Update webinar detailszoom webinars delete <webinar-id>Delete a webinarzoom webinars list-registrants <webinar-id> [--pretty]List webinar registrantszoom webinars add-registrant <webinar-id> --email <email> --first-name <name>Add a registrant to a webinarzoom webinars list-panelists <webinar-id> [--pretty]List webinar panelistszoom webinars add-panelists <webinar-id> --email <email> --name <name>Add a panelist to a webinarzoom webinars list-polls <webinar-id> [--pretty]List polls from a webinarzoom reports daily --year <year> --month <month> [--pretty]Pull daily account usage reportzoom reports users --from <date> --to <date> [--pretty]Per-user activity reportzoom reports meeting <meeting-id> [--pretty]Get meeting-level reportzoom reports meeting-participants <meeting-id> [--pretty]Get participant report for a meetingzoom reports cloud-recording --from <date> --to <date> [--pretty]Cloud recording usage reportzoom reports operation-logs --from <date> --to <date> [--pretty]Account operation logszoom dashboard meetings --from <date> --to <date> [--pretty]Meeting dashboard summaryzoom dashboard meeting-detail <meeting-uuid> [--pretty]Detailed metrics for a specific meetingzoom dashboard meeting-participants <meeting-uuid> [--pretty]Per-participant quality datazoom dashboard quality --from <date> --to <date> [--pretty]Overall meeting quality scoreszoom chat list-channels [--pretty]List all Zoom Team Chat channelszoom chat get-channel <channel-id> [--pretty]Get channel detailszoom chat create-channel --name <name> --type <type>Create a new chat channelzoom chat list-messages <channel-id> [--pretty]List messages in a channelzoom chat send-message <channel-id> --message <text>Send a message to a channelzoom chat update-message <channel-id> <message-id> --message <text>Update an existing messagezoom chat delete-message <channel-id> <message-id>Delete a messagezoom chat list-members <channel-id> [--pretty]List channel memberszoom groups list [--pretty]List all groups in the accountzoom groups get <group-id> [--pretty]Get group detailszoom groups create --name <name>Create a new groupzoom groups update <group-id> --name <name>Update group namezoom groups delete <group-id>Delete a groupzoom groups list-members <group-id> [--pretty]List group memberszoom groups add-members <group-id> --member-ids <ids>Add users to a groupMCP Server Setup
Every command is available as an MCP tool. Uses npx — no global install required on the agent’s server.
{
"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"
}
}
}
}MCP tools registered (59 total):
OpenClaw Agent Setup
Give any OpenClaw agent full Zoom access. Set the S2S credentials once, and the agent can schedule meetings, pull transcripts, and generate reports autonomously.
Architecture
Every API endpoint is a CommandDefinition — one source of truth powering both the CLI subcommand and the MCP tool. Add a command once, get both interfaces 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 group │ ├── meetings.ts │ ├── recordings.ts │ ├── users.ts │ ├── webinars.ts │ ├── reports.ts │ ├── dashboard.ts │ ├── chat.ts │ └── groups.ts └── mcp/server.ts # Registers all CommandDefinitions as MCP tools
Auth Resolution (3-tier)
--account-id --client-id --client-secretZOOM_ACCOUNT_ID, ZOOM_CLIENT_ID, ZOOM_CLIENT_SECRET~/.zoom-cli/config.json (written by zoom login)
This Tool Powers OpenClaw
OpenClaw is the AI agent that uses zoom-agent-cli (and the full suite of agent CLIs) to run your GTM operations autonomously. Set it up once, and let it work.