Open Source·AI Agent Infrastructure

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.

Install from npm
59
Commands
9
Command Groups
CLI
+ MCP Native
OpenClaw
OpenClaw
CLI / MCP
Zoom
Zoom
meetings · recordings · webinars · reports · chat

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

Terminal
npm install -g zoom-agent-cli

2. Create a Server-to-Server OAuth app

1. Go to marketplace.zoom.usDevelopBuild 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

Terminal
# 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

Terminal
zoom meetings list --user-id me --pretty
# Returns your upcoming meetings as formatted JSON

zoom users list --pretty
# Returns all users in your Zoom account

What zoom-agent-cli Gives Your Agent

9 cmds

Meetings

List, get, create, update, delete, and end meetings. Add registrants, list registrants, and pull AI Companion meeting summaries.

7 cmds

Recordings

List and get cloud recordings. Pull full transcripts, manage recording settings, delete recordings, delete individual files, and recover deleted recordings.

6 cmds

Users

List, get, create, update, and delete users. Manage user settings including recording preferences, scheduling defaults, and feature access.

10 cmds

Webinars

Full webinar lifecycle — list, create, update, delete. Manage registrants, panelists, and pull poll responses from your webinar sessions.

10 cmds

Reports & Dashboard

Daily usage reports, per-user activity, meeting analytics, participant data, cloud recording usage, operation logs, and quality metrics for dashboard monitoring.

15 cmds

Chat & Groups

Browse chat channels, send and update messages, manage channel members, and organize users into groups with full member management.

2 cmds

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.

1
zoom meetings summary <meeting-uuid> --pretty

Pull AI Companion meeting summary

2
zoom recordings list --user-id me --pretty

Find the recording from today

3
zoom recordings transcript <meeting-id> --pretty

Get full meeting transcript

4
zoom past-meetings participants <meeting-uuid> --pretty

List 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.

1
zoom webinars create --user-id me --topic "Product Demo" --start-time "2026-03-19T14:00:00Z" --duration 60

Create the webinar

2
zoom webinars add-registrant <webinar-id> --email prospect@company.com --first-name John

Add each prospect as registrant

3
zoom webinars list-registrants <webinar-id> --pretty

Confirm 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.

1
zoom reports daily --year 2026 --month 3 --pretty

Pull daily usage across the account

2
zoom reports users --from 2026-03-01 --to 2026-03-31 --pretty

Per-user activity report

3
zoom reports cloud-recording --from 2026-03-01 --to 2026-03-31 --pretty

Cloud 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.

1
zoom dashboard meetings --from 2026-03-13 --to 2026-03-13 --pretty

Get dashboard summary for today

2
zoom dashboard meeting-detail <meeting-uuid> --pretty

Get detailed meeting metrics

3
zoom dashboard meeting-participants <meeting-uuid> --pretty

Pull per-participant quality data

4
zoom dashboard quality --from 2026-03-13 --to 2026-03-13 --pretty

Overall 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.

1
zoom chat create-channel --name "new-hires" --type 1

Create private channel

2
zoom chat add-members <channel-id> --member-ids "user1,user2,user3"

Add new starters

3
zoom chat list-members <channel-id> --pretty

Confirm all members added

4
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.

1
zoom meetings create --user-id me --topic "Weekly Pipeline Review" --type 8 --start-time "2026-03-16T09:00:00Z" --duration 30

Create recurring weekly meeting

2
zoom users settings <user-id> --pretty

Verify recording settings are enabled

3
zoom meetings list --user-id me --type scheduled --pretty

Confirm meeting series is listed

Commands Reference

meetings (9 commands)
zoom meetings list --user-id <id> [--pretty]List all meetings for a user
zoom meetings get <meeting-id>Get details of a specific meeting
zoom meetings create --user-id <id> --topic <topic> --start-time <time> --duration <min>Create a new meeting
zoom meetings update <meeting-id> [--topic] [--start-time] [--duration]Update meeting properties
zoom meetings delete <meeting-id>Delete a meeting
zoom meetings end <meeting-id>End an in-progress meeting
zoom meetings list-registrants <meeting-id> [--pretty]List all registrants
zoom meetings add-registrant <meeting-id> --email <email> --first-name <name>Add a registrant to a meeting
zoom meetings summary <meeting-uuid> [--pretty]Get AI Companion meeting summary
recordings (7 commands)
zoom recordings list --user-id <id> [--from] [--to] [--pretty]List cloud recordings for a user
zoom recordings get <meeting-id> [--pretty]Get recording details and download URLs
zoom recordings transcript <meeting-id> [--pretty]Get full meeting transcript
zoom recordings settings <meeting-id> [--pretty]Get recording settings for a meeting
zoom recordings delete <meeting-id> [--action]Delete a cloud recording
zoom recordings delete-file <meeting-id> --recording-id <id>Delete a specific recording file
zoom recordings recover <meeting-id>Recover a deleted cloud recording
users (6 commands)
zoom users list [--pretty] [--status]List all users in the account
zoom users get <user-id> [--pretty]Get a specific user's details
zoom users create --email <email> --first-name <name> --last-name <name>Create a new user
zoom users update <user-id> [--first-name] [--last-name] [--timezone]Update user properties
zoom users delete <user-id> [--action]Delete or deactivate a user
zoom users settings <user-id> [--pretty]Get user settings (recording, scheduling, etc.)
past-meetings (2 commands)
zoom past-meetings get <meeting-uuid> [--pretty]Get details of a past meeting
zoom past-meetings participants <meeting-uuid> [--pretty]List participants of a past meeting
webinars (10 commands)
zoom webinars list --user-id <id> [--pretty]List all webinars for a user
zoom webinars get <webinar-id> [--pretty]Get webinar details
zoom webinars create --user-id <id> --topic <topic> --start-time <time>Create a new webinar
zoom webinars update <webinar-id> [--topic] [--agenda]Update webinar details
zoom webinars delete <webinar-id>Delete a webinar
zoom webinars list-registrants <webinar-id> [--pretty]List webinar registrants
zoom webinars add-registrant <webinar-id> --email <email> --first-name <name>Add a registrant to a webinar
zoom webinars list-panelists <webinar-id> [--pretty]List webinar panelists
zoom webinars add-panelists <webinar-id> --email <email> --name <name>Add a panelist to a webinar
zoom webinars list-polls <webinar-id> [--pretty]List polls from a webinar
reports (6 commands)
zoom reports daily --year <year> --month <month> [--pretty]Pull daily account usage report
zoom reports users --from <date> --to <date> [--pretty]Per-user activity report
zoom reports meeting <meeting-id> [--pretty]Get meeting-level report
zoom reports meeting-participants <meeting-id> [--pretty]Get participant report for a meeting
zoom reports cloud-recording --from <date> --to <date> [--pretty]Cloud recording usage report
zoom reports operation-logs --from <date> --to <date> [--pretty]Account operation logs
dashboard (4 commands)
zoom dashboard meetings --from <date> --to <date> [--pretty]Meeting dashboard summary
zoom dashboard meeting-detail <meeting-uuid> [--pretty]Detailed metrics for a specific meeting
zoom dashboard meeting-participants <meeting-uuid> [--pretty]Per-participant quality data
zoom dashboard quality --from <date> --to <date> [--pretty]Overall meeting quality scores
chat (8 commands)
zoom chat list-channels [--pretty]List all Zoom Team Chat channels
zoom chat get-channel <channel-id> [--pretty]Get channel details
zoom chat create-channel --name <name> --type <type>Create a new chat channel
zoom chat list-messages <channel-id> [--pretty]List messages in a channel
zoom chat send-message <channel-id> --message <text>Send a message to a channel
zoom chat update-message <channel-id> <message-id> --message <text>Update an existing message
zoom chat delete-message <channel-id> <message-id>Delete a message
zoom chat list-members <channel-id> [--pretty]List channel members
groups (7 commands)
zoom groups list [--pretty]List all groups in the account
zoom groups get <group-id> [--pretty]Get group details
zoom groups create --name <name>Create a new group
zoom groups update <group-id> --name <name>Update group name
zoom groups delete <group-id>Delete a group
zoom groups list-members <group-id> [--pretty]List group members
zoom groups add-members <group-id> --member-ids <ids>Add users to a group

MCP Server Setup

Every command is available as an MCP tool. Uses npx — no global install required on the agent’s server.

Claude Desktop / Cursor (~/.cursor/mcp.json or claude_desktop_config.json)
{
  "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):

meetings_listmeetings_getmeetings_createmeetings_updatemeetings_deletemeetings_endmeetings_list_registrantsmeetings_add_registrantmeetings_summaryrecordings_listrecordings_getrecordings_transcriptrecordings_settingsrecordings_deleterecordings_delete_filerecordings_recoverusers_listusers_getusers_createusers_updateusers_deleteusers_settingspast_meetings_getpast_meetings_participantswebinars_listwebinars_getwebinars_createwebinars_updatewebinars_deletewebinars_list_registrantswebinars_add_registrantwebinars_list_panelistswebinars_add_panelistswebinars_list_pollsreports_dailyreports_usersreports_meetingreports_meeting_participantsreports_cloud_recordingreports_operation_logsdashboard_meetingsdashboard_meeting_detaildashboard_meeting_participantsdashboard_qualitychat_list_channelschat_get_channelchat_create_channelchat_list_messageschat_send_messagechat_update_messagechat_delete_messagechat_list_membersgroups_listgroups_getgroups_creategroups_updategroups_deletegroups_list_membersgroups_add_members

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.

1
Create a Server-to-Server OAuth app in Zoom Marketplace
marketplace.zoom.us → Develop → Build App → Server-to-Server OAuth. Add meeting, recording, user, and report scopes.
2
Set credentials in agent environment
export ZOOM_ACCOUNT_ID=... ZOOM_CLIENT_ID=... ZOOM_CLIENT_SECRET=... — or use zoom login to save to ~/.zoom-cli/config.json
3
Add MCP config to agent
Add the npx zoom-agent-cli mcp server config to your agent's MCP config file — works with Claude Desktop, Cursor, OpenClaw, or any MCP client
4
Add Zoom instructions to SOUL.md
Tell the agent what to do post-meeting: pull summaries, update CRM, schedule follow-ups. The agent knows which commands to call.
5
Test from Slack
"What happened in my 10am meeting?" — agent calls zoom recordings transcript and meetings summary via MCP, returns structured intelligence

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)

1Per-command flags--account-id --client-id --client-secret
2Environment variablesZOOM_ACCOUNT_ID, ZOOM_CLIENT_ID, ZOOM_CLIENT_SECRET
3Config file~/.zoom-cli/config.json (written by zoom login)
OpenClaw

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.