zoom-agent-cli

zoom-agent-cli

MCP server that provides 59 tools to manage Zoom meetings, recordings, users, webinars, reports, dashboard, chat, and groups via the Zoom API.

Category
访问服务器

README

zoom-agent-cli

CLI and MCP server for the full Zoom API — built for humans and AI agents.

npm version License: MIT

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-cli

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

  1. Go to marketplace.zoom.usDevelopBuild App
  2. Choose Server-to-Server OAuth
  3. Name it anything (e.g., zoom-agent-cli)
  4. 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 meeting:read:admin meeting:write:admin
recordings recording:read:admin recording:write:admin
users user:read:admin user:write:admin
webinars webinar:read:admin webinar:write:admin
reports report:read:admin
dashboard dashboard:read:admin dashboard_meetings:read:admin
chat chat_channel:read:admin chat_channel:write:admin chat_message:read:admin chat_message:write:admin
groups group:read:admin group:write:admin
AI summary meeting_summary:read:admin

Tip: For full access add all scopes. For a read-only agent, add only the :read:admin variants.

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 login

Stores 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 status
Credentials 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 --pretty

MCP Server (for AI Agents)

Every CLI command is also available as an MCP tool. Start the server:

zoom mcp

Claude 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
meetings_list List meetings for a user
meetings_get Get meeting details
meetings_create Create a meeting
meetings_update Update a meeting
meetings_delete Delete a meeting
meetings_end End a live meeting
meetings_summary Get AI Companion meeting summary
recordings_list List cloud recordings
recordings_get Get recording files and download URLs
recordings_transcript Get meeting transcript
recordings_settings Get recording sharing settings
users_list List all account users
users_get Get user details
past_meetings_get Get past meeting instance details
past_meetings_participants Get participant list with join/leave times
webinars_list List webinars
webinars_get Get webinar details
reports_daily Daily usage report
reports_meeting_participants Participant report for a meeting
reports_operation_logs Admin operation audit log
dashboard_meetings Live/past meetings with quality metrics
dashboard_quality Overall quality scores
chat_list_channels List chat channels
chat_send_message Send a message to channel or contact
chat_list_messages List chat message history
groups_list List all groups
(59 total — run zoom mcp to see all)

Command Reference

meetings

Command Description
zoom meetings list [options] List meetings (--type upcoming|live|scheduled)
zoom meetings get <meetingId> Get meeting details
zoom meetings create [options] Create a meeting
zoom meetings update <meetingId> [options] Update a meeting
zoom meetings delete <meetingId> Delete a meeting
zoom meetings end <meetingId> End a live meeting
zoom meetings list-registrants <meetingId> List registrants
zoom meetings add-registrant <meetingId> Add a registrant
zoom meetings summary <meetingId> Get AI Companion summary

recordings

Command Description
zoom recordings list [options] List cloud recordings (--from, --to)
zoom recordings get <meetingId> Get recording files and download URLs
zoom recordings transcript <meetingId> Get meeting transcript
zoom recordings settings <meetingId> Get recording settings
zoom recordings delete <meetingId> Move recordings to trash
zoom recordings delete-file <meetingId> <recordingId> Delete a specific file
zoom recordings recover <meetingId> Recover from trash

users

Command Description
zoom users list [options] List all users
zoom users get <userId> Get user details (use me for yourself)
zoom users create [options] Create a user
zoom users update <userId> [options] Update user profile
zoom users delete <userId> Delete or disassociate a user
zoom users settings <userId> Get user settings

past-meetings

Command Description
zoom past-meetings get <uuid> Get past meeting instance details
zoom past-meetings participants <uuid> Get participants with join/leave times

webinars

Command Description
zoom webinars list [options] List webinars
zoom webinars get <id> Get webinar details
zoom webinars create [options] Create a webinar
zoom webinars update <id> [options] Update a webinar
zoom webinars delete <id> Delete a webinar
zoom webinars list-registrants <id> List registrants
zoom webinars add-registrant <id> Add a registrant
zoom webinars list-panelists <id> List panelists
zoom webinars add-panelists <id> Add panelists
zoom webinars list-polls <id> List polls

reports

Command Description
zoom reports daily Daily usage report (--year, --month)
zoom reports users Active/inactive host report (--from, --to)
zoom reports meeting <id> Meeting detail report
zoom reports meeting-participants <id> Participant report
zoom reports cloud-recording Cloud recording usage report
zoom reports operation-logs Admin operation audit log

dashboard

Command Description
zoom dashboard meetings List meetings with quality metrics
zoom dashboard meeting-detail <id> Meeting quality detail
zoom dashboard meeting-participants <id> Participant quality metrics
zoom dashboard quality Overall quality scores

chat

Command Description
zoom chat list-channels List channels
zoom chat get-channel <id> Get channel details
zoom chat create-channel Create a channel
zoom chat list-messages List messages (--to-channel or --to-contact)
zoom chat send-message Send a message
zoom chat update-message <id> Update a message
zoom chat delete-message <id> Delete a message
zoom chat list-members <id> List channel members

groups

Command Description
zoom groups list List all groups
zoom groups get <id> Get group details
zoom groups create Create a group
zoom groups update <id> Rename a group
zoom groups delete <id> Delete a group
zoom groups list-members <id> List members
zoom groups add-members <id> 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 = error

Architecture

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 tools

License

MIT — github.com/bcharleson/zoom-agent-cli

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选