Generated banner for Zoom MCP
Generated logo for Zoom MCP

Zoom MCP

AnthropicOfficialCreated by ZoomDistributed by Anthropic

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • Medium risk

From the author

Guidance for the bundled Zoom MCP connectors. Use after routing to an MCP workflow when planning or troubleshooting tool-based access to meetings, recordings, meeting assets, or transcripts. Route Zoom Docs requests to the dedicated Docs MCP server and Whiteboard-specific requests to `zoom-mcp/whiteboard`.
— the description by Zoom

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides essential guidance for configuring and using the bundled Zoom MCP connectors. It covers the setup of user-level OAuth, required granular scopes, and the specific tool surfaces for meeting discovery, asset retrieval, and Zoom Docs management. It emphasizes the use of the correct MCP server endpoints and distinguishes between the main Zoom MCP server, the dedicated Zoom Docs MCP server, and the separate Whiteboard MCP surface.

What it does

  • Provides configuration steps for Zoom MCP connectors using user-level OAuth.
  • Lists available tools for semantic meeting search and recording retrieval.
  • Details the specific granular OAuth scopes required for each MCP tool.
  • Explains how to route requests to dedicated servers for Zoom Docs and Whiteboards.
  • Offers a troubleshooting guide for common MCP protocol and API-level errors.
  • Defines the recommended workflows for searching meetings and accessing associated assets.

When to use it

  • When setting up AI-agent access to Zoom meetings, recordings, or documents.
  • When troubleshooting connectivity or authorization issues with Zoom MCP tools.
  • When planning agentic workflows that require semantic search or asset retrieval from Zoom.
  • When needing to distinguish between the main Zoom MCP server and the dedicated Docs or Whiteboard servers.

Advantages

  • Centralizes configuration and troubleshooting for multiple Zoom MCP surfaces.
  • Clarifies the distinction between MCP-specific scopes and legacy REST scopes.
  • Provides clear routing logic for specialized Zoom content like Docs and Whiteboards.
  • Includes a comprehensive error reference for rapid debugging of tool-use failures.

Usage examples

“search_meetings q: 'Q4 planning' from: '2026-03-01'”
The agent performs a semantic search for meetings matching the query within the specified date range, returning a list of relevant meeting objects.
“get_meeting_assets meetingId: '123456789'”
The agent retrieves the summary, recordings, and linked documents associated with the specified meeting ID.
“recordings_list userId: 'me' from: '2026-03-01'”
The agent lists all cloud recordings for the authenticated user starting from the provided date.
“get_recording_resource meetingId: '987654321'”
The agent retrieves the specific recording content resources for the given meeting ID, provided the correct scopes are present.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/anthropics/zoom-mcp/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip zoom-mcp.zip -d .agents/skills

Documentation by Zoom

Zoom MCP

Guidance for the bundled Zoom MCP connector in this Claude plugin. Prefer design-mcp-workflow or setup-zoom-mcp first, then route here for tool-surface details, auth expectations, and MCP-specific constraints.

Zoom MCP Server

This plugin bundles Zoom's hosted MCP server at mcp-us.zoom.us for AI-agent access to:

  • semantic meeting search

  • meeting-linked asset retrieval

  • recording resource retrieval

Zoom Docs are exposed through a separate bundled server:

  • zoom-docs-mcp at mcp.zoom.us

  • purpose-built for Zoom Docs creation and retrieval

Current tool names from the main Zoom MCP server:

  • get_meeting_assets

  • search_meetings

  • get_recording_resource

  • recordings_list

Some MCP clients namespace server tools in the UI, for example zoom-mcp:recordings_list. Treat the raw tool names above as authoritative.

Zoom Docs-specific MCP work should use the dedicated zoom-docs-mcp server.

Whiteboard-specific MCP work is covered by the dedicated skill whiteboard/SKILL.md.

Quick Start

1. Export the token expected by the bundled connector:

export ZOOM_MCP_ACCESS_TOKEN="your_zoom_user_oauth_access_token"

2. Enable or restart the plugin so Claude restarts the bundled MCP server definition.

3. Verify discovery:

  • Confirm the client can see recordings_list, search_meetings, get_meeting_assets, and get_recording_resource.

  • If the client exposes raw protocol inspection, tools/list is the authoritative discovery source.

  • The current catalog is documented in references/tools.md.

4. Run the first useful call:

recordings_list
  userId: "me"
  from: "2026-03-01"
  to: "2026-03-06"
  page_size: 10

Critical Notes

1. User OAuth is the documented execution path

Use a General app with user-level OAuth as the execution path for Zoom MCP tool use in this plugin. Do not rely on Server-to-Server OAuth as a supported MCP auth model here.

2. Zoom MCP uses MCP-specific granular scopes

The Zoom MCP scope set is not the same as the older broad REST scopes. The key scopes for the main Zoom MCP server are:

  • ai_companion:read:search — Search across Zoom Meeting, Zoom Chat, and Zoom Doc, returning the most relevant results based on the query

  • meeting:read:search — Search and view meetings

  • meeting:read:assets — View a meeting's assets

  • cloud_recording:read:list_user_recordings — Lists all cloud recordings for a user.

  • cloud_recording:read:content — read recording content scope

  • docs:write:import — Create a new file by import

  • docs:read:export — Read file content in Markdown format

For Zoom Docs MCP specifically, the official docs page shows these granular scopes for the documented tools:

  • docs:write:import — Create a new file by import

  • docs:read:export — Read file content in Markdown format

3. AI Companion features are feature prerequisites, not scope substitutes

Semantic meeting search, meeting assets, and recording-content retrieval depend on account features such as Smart Recording and Meeting Summary for useful results. These feature settings do not replace the required OAuth scopes.

4. Whiteboard is a separate MCP surface

The Zoom MCP endpoint and the Whiteboard MCP endpoint are separate. Route Whiteboard-specific requests to whiteboard/SKILL.md.

5. Use REST for deterministic meeting CRUD

The current Zoom MCP tool surface does not expose deterministic meeting create, update, or delete tools. If the user needs explicit meeting CRUD operations, route to ../rest-api/SKILL.md.

Server Endpoints

TransportURL
Streamable HTTP (recommended)https://mcp-us.zoom.us/mcp/zoom/streamable
SSE (fallback)https://mcp-us.zoom.us/mcp/zoom/sse

Dedicated Docs MCP server:

TransportURL
Streamable HTTP (recommended)https://mcp.zoom.us/mcp/docs/streamable
SSE (fallback)https://mcp.zoom.us/mcp/docs/sse

Dedicated Whiteboard MCP skill:

Search and Retrieval Model

search_meetings uses AI Companion retrieval rather than a plain metadata filter. In this use the live MCP server as authoritative for response schema and scope behavior.

Two result families matter most:

  • Recap-oriented results: AI summary, meeting-linked documents, recordings, and related assets

  • Recording-oriented results: cloud recording references and transcript-capable resources

Use examples/transcript-retrieval.md for the main retrieval workflow.

Tool Catalog

ToolKey ParametersRequired Scope
get_meeting_assetsmeetingId*meeting:read:assets
search_meetingsq, from, to, page_size, next_page_tokenmeeting:read:search
get_recording_resourcemeetingId*, types, clip_num, play_time, raw_passcode, encode_passcodecloud_recording:read:content
recordings_listuserId*, from, to, meeting_id, trash, trash_type, page_size, next_page_tokencloud_recording:read:list_user_recordings

* Required parameter

Full parameter and output guidance: references/tools.md

Key Workflows

Search meeting content, then retrieve assets:

search_meetings
  q: "Q4 planning discussion"
  from: "2026-03-01"
  to: "2026-03-06"
→ choose a returned meeting
→ get_meeting_assets  meetingId: "MEETING_ID_OR_UUID"

List recordings, then retrieve recording resources:

recordings_list
  userId: "me"
  from: "2026-03-01"
  to: "2026-03-06"
→ choose a recording target
→ get_recording_resource  meetingId: "MEETING_UUID_OR_RECORDING_ID"

Create or fetch a Zoom Doc:

  • use the dedicated zoom-docs-mcp server rather than the main zoom-mcp server

  • official documented tools on the Zoom Docs MCP page are:

    • create_file_with_content

    • get_file_content

Error Reference

CodeMeaningFix
401 UnauthorizedMissing or rejected bearer token at the endpointSet ZOOM_MCP_ACCESS_TOKEN, then restart Claude or re-enable the plugin
-32001 Invalid access tokenToken expired, malformed, or missing required scopesRefresh OAuth token and verify the MCP-specific scopes
-32602 Can not found toolRequested tool name is not exposed by the active MCP serverRe-run tools/list and use the current tool names for that endpoint
404Possible downstream resource-not-found responseRe-discover the target with search_meetings or recordings_list

Full error reference: references/error-codes.md

Documentation

Concepts
Examples
References
Troubleshooting
Operations
  • RUNBOOK.md — 5-minute preflight and debugging checklist

  • zoom-rest-api — Deterministic REST API access, including meeting CRUD

  • zoom-oauth — OAuth implementation patterns

  • zoom-webhooks — Event-driven recording and meeting workflows

  • zoom-rtms — Live media and transcript streams during active meetings

Files

concepts/oauth-setup.md

OAuth Setup — Zoom MCP Server

Overview

The documented path for Zoom MCP is a General app using user-level OAuth. Each user authorizes with their own Zoom account, and the resulting bearer token is passed by the bundled connector in .mcp.json.

Step 1: Create a General App with User-Level OAuth

  1. Go to marketplace.zoom.us → Develop → Build App.

  2. Create a General app.

  3. Configure the app for user-level OAuth for the per-user MCP path.

  4. Set a redirect URL for your client or local test environment.

  5. Note the client ID and client secret.

If You Do Not Already Have a Redirect Endpoint

For development, two pragmatic options are:

Option 0: localhost and manually copy the code

Example:

http://localhost:3000/oauth/zoom/callback

If the local app does not actually handle the callback yet, the browser may show a failed page load. You can still copy the code and state values from the browser URL and paste them into Claude or your terminal flow so the token exchange can continue manually.

Pros:

  • no tunnel and no third-party capture service

  • fastest setup if you only need the authorization code once

  • keeps the authorization code on your machine

Cons:

  • manual copy/paste step every time

  • no automatic code exchange or refresh flow

  • less convenient if you repeat the auth flow often

Option 1: ngrok in front of a local callback server

Example:

Local app: http://localhost:3000/oauth/zoom/callback
Public redirect URL: https://your-subdomain.ngrok.app/oauth/zoom/callback

Pros:

  • best match for the real OAuth flow because your own app receives the callback directly

  • easy to inspect requests locally while keeping your app logic in one place

  • useful if you also need to exchange the code for tokens automatically

Cons:

  • requires running a local server plus the tunnel

  • slightly more setup than a capture-only endpoint

  • you are exposing a local service to the internet, so keep the callback narrow and temporary

Option 2: webhook.site for one-off callback capture

Example:

https://webhook.site/your-token

Pros:

  • fastest path when you just need to capture the authorization redirect once

  • no local server required

  • easy to inspect the query string and copy out code and state

Cons:

  • not a full OAuth app backend; you still need to exchange the code for tokens yourself

  • weaker fit for repeated development flows and team usage

  • the authorization code is sensitive, so only use this for short-lived development testing and avoid shared or long-lived capture URLs

Practical recommendation:

  • use plain localhost if you only need a one-off auth code and are fine copying it manually

  • use ngrok if you are building a real integration or expect to repeat the flow

  • use webhook.site only for quick one-off testing when you do not yet have a callback handler

Step 2: Configure Zoom MCP Scopes

Add the MCP-specific granular scopes required by the tools you want to use.

Product AreaScopeZoom labelNeeded for
AI Companionai_companion:read:searchSearch across Zoom Meeting, Zoom Chat, and Zoom Doc, returning the most relevant results based on the query.semantic MCP search
Meetingmeeting:read:searchSearch and view meetingssearch_meetings
Meetingmeeting:read:assetsView a meeting's assetsget_meeting_assets
Recordingcloud_recording:read:list_user_recordingsLists all cloud recordings for a user.recordings_list
Recordingcloud_recording:read:contentread recording content scopeget_recording_resource
Zoom Docsdocs:write:importCreate new file by importcreate_file_with_content
Zoom Docsdocs:read:exportRead file content in Markdown formatget_file_content

Minimum recommendation for the main Zoom MCP connector:

  • use a General app

  • use user-level OAuth

  • include the 7 main MCP scopes above on the same app

For the dedicated Zoom Docs MCP connector:

  • add docs:write:import if you want Docs creation

  • add docs:read:export if you want Docs retrieval

  • export the resulting token as ZOOM_DOCS_MCP_ACCESS_TOKEN

Whiteboard MCP uses a separate scope set. See ../whiteboard/SKILL.md.

Step 3: Authorize and Exchange for Tokens

  1. Construct the authorization URL:

    https://zoom.us/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI
  2. Sign in as the Zoom user who should authorize the app and approve the requested scopes.

  3. Copy the code from the redirect URL.

  4. Exchange the code for tokens:

    curl -X POST https://zoom.us/oauth/token \
      -u "CLIENT_ID:CLIENT_SECRET" \
      -d "grant_type=authorization_code&code=CODE&redirect_uri=REDIRECT_URI"
  5. Store the returned access_token and refresh_token.

Treat the refresh token as single-use:

  • every successful refresh can return a new refresh token

  • persist the newly returned refresh token atomically with the new access token

  • stop using the old refresh token after a successful refresh

  • avoid concurrent refresh requests against the same stored token

If you used webhook.site, the callback will arrive as a captured request and the code parameter will be in the query string. Exchange it immediately and do not keep using the same capture URL longer than necessary.

Step 4: Enable AI Companion Features

Smart Recording and Meeting Summary are feature prerequisites for useful semantic meeting search, meeting assets, and transcript-rich recording content.

In the Zoom web portal:

  1. Go to Admin → Account Management → Account Settings → AI Companion.

  2. Enable Smart Recording.

  3. Enable Meeting Summary.

Important:

  • these settings do not replace the OAuth scopes above

  • they affect whether useful recap and transcript content exists for MCP retrieval

Step 5: Provide the Token to the Bundled MCP Connector

Export the token environment variable used by this plugin:

export ZOOM_MCP_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
export ZOOM_DOCS_MCP_ACCESS_TOKEN="YOUR_DOCS_ACCESS_TOKEN"

Verification:

  • restart Claude Code or re-enable the plugin so the bundled MCP server restarts with the token

  • confirm the client can see recordings_list, search_meetings, get_meeting_assets, and get_recording_resource

  • for the dedicated Docs server, confirm the client can see create_file_with_content and get_file_content

  • if your client exposes protocol inspection, use tools/list as the authority for the live catalog

  • run a simple tool such as recordings_list to verify the token has the correct MCP scopes

Token Lifecycle

PropertyDetails
Access token expiryAbout 1 hour
Refresh flowExchange refresh_token for a new access_token and replacement refresh_token
Client updateUpdate ZOOM_MCP_ACCESS_TOKEN, then restart Claude Code or re-enable the plugin

Refresh exchange:

curl -X POST https://zoom.us/oauth/token \
  -u "CLIENT_ID:CLIENT_SECRET" \
  -d "grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN"

After a successful refresh:

  • replace the stored access token

  • replace the stored refresh token

  • treat the previously used refresh token as spent

  • restart Claude Code or re-enable the plugin if you are injecting tokens through env vars

Environment Variables

ZOOM_CLIENT_ID=your_client_id
ZOOM_CLIENT_SECRET=your_client_secret
ZOOM_MCP_ACCESS_TOKEN=your_access_token
ZOOM_DOCS_MCP_ACCESS_TOKEN=your_docs_access_token
ZOOM_REFRESH_TOKEN=your_refresh_token

See also: ../../oauth/SKILL.md

Requirements and compatibility

Written for: Claude Code, Claude apps

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Claude Code frontmatter, Needs an MCP server

Security

What our scanner noticed· Medium risk

  • Possible data-exfiltration endpoints

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Zoom
Publisher
Anthropic (Official)
Distributed by
Anthropic
Source
anthropics/knowledge-work-plugins · partner-built/zoom-plugin/skills/zoom-mcp · commit e050c2e
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from partner-built/zoom-plugin/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Zoom or Anthropic.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download zoom-mcp.zip