Zoom MCP
AnthropicOfficialCreated by ZoomDistributed by Anthropic
- Skill
- Tool integration
- Automation and integrations
- MIT
- Medium risk
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
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/anthropics/zoom-mcp/downloadUnzip 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-mcpatmcp.zoom.uspurpose-built for Zoom Docs creation and retrieval
Current tool names from the main Zoom MCP server:
get_meeting_assetssearch_meetingsget_recording_resourcerecordings_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, andget_recording_resource.If the client exposes raw protocol inspection,
tools/listis 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: 10Critical 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 querymeeting:read:search— Search and view meetingsmeeting:read:assets— View a meeting's assetscloud_recording:read:list_user_recordings— Lists all cloud recordings for a user.cloud_recording:read:content— read recording content scopedocs:write:import— Create a new file by importdocs: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 importdocs: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
| Transport | URL |
|---|---|
| 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:
| Transport | URL |
|---|---|
| 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
| Tool | Key Parameters | Required Scope |
|---|---|---|
get_meeting_assets | meetingId* | meeting:read:assets |
search_meetings | q, from, to, page_size, next_page_token | meeting:read:search |
get_recording_resource | meetingId*, types, clip_num, play_time, raw_passcode, encode_passcode | cloud_recording:read:content |
recordings_list | userId*, from, to, meeting_id, trash, trash_type, page_size, next_page_token | cloud_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-mcpserver rather than the mainzoom-mcpserverofficial documented tools on the Zoom Docs MCP page are:
create_file_with_contentget_file_content
Error Reference
| Code | Meaning | Fix |
|---|---|---|
401 Unauthorized | Missing or rejected bearer token at the endpoint | Set ZOOM_MCP_ACCESS_TOKEN, then restart Claude or re-enable the plugin |
-32001 Invalid access token | Token expired, malformed, or missing required scopes | Refresh OAuth token and verify the MCP-specific scopes |
-32602 Can not found tool | Requested tool name is not exposed by the active MCP server | Re-run tools/list and use the current tool names for that endpoint |
404 | Possible downstream resource-not-found response | Re-discover the target with search_meetings or recordings_list |
Full error reference: references/error-codes.md
Documentation
Concepts
concepts/mcp-architecture.md — MCP protocol, hosted endpoints, discovery, and capability model
concepts/oauth-setup.md — OAuth app creation, MCP-specific scopes, AI Companion prerequisites, token lifecycle
Examples
examples/transcript-retrieval.md — Search/assets and recording-resource workflows
examples/create-zoom-doc.md — Verified Zoom Docs creation flow
examples/search-and-act.md — Search, inspect assets, and hand off CRUD work to REST when needed
examples/meeting-lifecycle.md — Why meeting CRUD belongs in REST, plus the MCP-to-REST handoff pattern
References
references/tools.md — Current Zoom MCP tool reference
references/error-codes.md — MCP and Zoom API errors with fixes
whiteboard/SKILL.md — Dedicated Whiteboard MCP skill
Troubleshooting
troubleshooting/common-errors.md — Scope failures, endpoint mixups, search/recording issues
Operations
RUNBOOK.md — 5-minute preflight and debugging checklist
Related Skills
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
- ATTRIBUTION.mdAdded by AutoGineer972 B
- LICENSELicence file added by AutoGineer1.1 KiB
- RUNBOOK.md3.7 KiB
- SKILL.md9.1 KiB
- concepts/mcp-architecture.md2.9 KiB
- concepts/oauth-setup.md7.7 KiB
- examples/create-zoom-doc.md1.2 KiB
- examples/meeting-lifecycle.md1.4 KiB
- examples/search-and-act.md1.9 KiB
- examples/transcript-retrieval.md2.7 KiB
- references/error-codes.md3.1 KiB
- references/tools.md5.3 KiB
- troubleshooting/common-errors.md3.9 KiB
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
Go to marketplace.zoom.us → Develop → Build App.
Create a General app.
Configure the app for user-level OAuth for the per-user MCP path.
Set a redirect URL for your client or local test environment.
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/callbackIf 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/callbackPros:
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-tokenPros:
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
codeandstate
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
localhostif you only need a one-off auth code and are fine copying it manuallyuse
ngrokif you are building a real integration or expect to repeat the flowuse
webhook.siteonly 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 Area | Scope | Zoom label | Needed for |
|---|---|---|---|
| AI Companion | ai_companion:read:search | Search across Zoom Meeting, Zoom Chat, and Zoom Doc, returning the most relevant results based on the query. | semantic MCP search |
| Meeting | meeting:read:search | Search and view meetings | search_meetings |
| Meeting | meeting:read:assets | View a meeting's assets | get_meeting_assets |
| Recording | cloud_recording:read:list_user_recordings | Lists all cloud recordings for a user. | recordings_list |
| Recording | cloud_recording:read:content | read recording content scope | get_recording_resource |
| Zoom Docs | docs:write:import | Create new file by import | create_file_with_content |
| Zoom Docs | docs:read:export | Read file content in Markdown format | get_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:importif you want Docs creationadd
docs:read:exportif you want Docs retrievalexport 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
Construct the authorization URL:
https://zoom.us/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URISign in as the Zoom user who should authorize the app and approve the requested scopes.
Copy the
codefrom the redirect URL.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"Store the returned
access_tokenandrefresh_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:
Go to Admin → Account Management → Account Settings → AI Companion.
Enable Smart Recording.
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, andget_recording_resourcefor the dedicated Docs server, confirm the client can see
create_file_with_contentandget_file_contentif your client exposes protocol inspection, use
tools/listas the authority for the live catalogrun a simple tool such as
recordings_listto verify the token has the correct MCP scopes
Token Lifecycle
| Property | Details |
|---|---|
| Access token expiry | About 1 hour |
| Refresh flow | Exchange refresh_token for a new access_token and replacement refresh_token |
| Client update | Update 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_tokenSee 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