SKILL.md
Zoom MCP Server
Zoom hosts an MCP server at mcp.zoom.us for AI-agent access to:
- semantic meeting search
- cross-Zoom search over Team Chat messages and Zoom Canvas content
- meeting-linked asset retrieval
- recording resource retrieval
- Canvas/My Notes file creation from Markdown and Markdown content export
- Zoom Hub file creation and multi-format content export
Current default Zoom MCP server tool names verified by tools/list:
createnewfilewithmarkdowngetfilecontentgetmeetingassetsgetrecordingresourcehubcreatefilefromcontenthubgetfile_contentrecordings_listsearch_meetingssearch_zoom
Some MCP clients namespace server tools in the UI, for example zoom-mcp:recordings_list. Treat the raw tool names above as authoritative.
Product-specific MCP work is split into child skills for [Whiteboard](whiteboard/SKILL.md), [Team Chat](team-chat/SKILL.md), [Meetings](meetings/SKILL.md), [Canvas](canvas/SKILL.md), [Tasks](tasks/SKILL.md), and [Revenue Accelerator](revenue-accelerator/SKILL.md). The old [Docs alias](docs/SKILL.md) routes legacy "Docs MCP" requests to Canvas.
Marketplace-first skill chain: Before connecting to any Zoom MCP server, route to
[Marketplace app management](../rest-api/references/marketplace-apps.md) and the
[Marketplace template selector](../rest-api/references/marketplace-app-templates.md). For an
automated client, first inspect the machine-readable
[template index](../rest-api/assets/marketplace-apps/marketplace-manifest-template-index.json).
Create
a user-managed General App from the matching MCP template and obtain its client ID. Then
route to [zoom-oauth](../oauth/SKILL.md) to authorize the user, exchange the authorization
code (with PKCE where configured), and obtain the bearer access token. Only after those steps
should this skill configure the MCP endpoint and callinitialize,tools/list, ortools/call.
Quick Start
1. Create the Marketplace app:
- Select the exact MCP scenario from the
[Marketplace template selector](../rest-api/references/marketplace-app-templates.md).
- Confirm the selected index entry has
apptype: general,usage: USEROPERATION, and
supportsmanifestupdate: true; do not substitute an S2S or Meeting SDK create request.
- Create the user-managed General App and configure its redirect URI.
- Keep only the scopes required by the MCP tools you intend to call.
2. Obtain a user OAuth access token:
- Complete authorization-code OAuth, using PKCE when the client cannot safely hold a secret.
- Exchange the returned code and retain the access and refresh tokens securely.
- Follow [concepts/oauth-setup.md](concepts/oauth-setup.md) for the complete flow.
3. Add to an MCP client (Claude Code example):
claude mcp add --transport http zoom-mcp \
https://mcp.zoom.us/mcp/zoom/streamable \
--header "Authorization: Bearer YOUR_ZOOM_OAUTH_TOKEN" \
--scope user
4. Verify discovery:
- Confirm the client can see 9 default Zoom MCP tools:
search_meetings,
createnewfilewithmarkdown, searchzoom, getmeetingassets, getrecordingresource, getfilecontent, recordingslist, hubcreatefilefromcontent, and hubgetfile_content.
- If the client exposes raw protocol inspection,
tools/listis the authoritative discovery source. - The current catalog is documented in [references/tools.md](references/tools.md).
5. Run the first useful call:
recordings_list
from: "2026-03-01"
to: "2026-03-06"
page_size: 10
Critical Notes
1. User OAuth is the recommended execution path
A Server-to-Server OAuth token can:
- initialize against the MCP gateway
- complete
tools/list - open a session in environments where S2S has been separately validated
Use user OAuth as the default execution path for Zoom MCP tool use unless you have already validated S2S scope coverage and tool execution for your app.
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 this surface are:
meeting:read:searchmeeting:read:assetsai_companion:read:searchcloudrecording:read:listuser_recordingscloud_recording:read:contentdocs:write:importfor Canvas/My Notes file creationdocs:read:exportfor Canvas/My Notes Markdown content exporthub:write:contentfor Hub file creationhub:read:contentfor Hub file content export
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](whiteboard/SKILL.md).
5. Team Chat tools are a separate MCP surface
The default Zoom MCP server includes read-only search_zoom for Team Chat and Canvas search. The Team Chat MCP server is separate and exposes read, search, write, and update tools for messages, files, contacts, channels, and channel members. Route Team Chat MCP requests to [team-chat/SKILL.md](team-chat/SKILL.md).
6. 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](../rest-api/SKILL.md).
Current Official Server Catalog
| Official server | Streamable HTTP endpoint | Current tools | Child skill |
|---|---|---|---|
| Zoom MCP Server (Zoom All-in-One) | https://mcp.zoom.us/mcp/zoom/streamable |
9 | This skill |
| Zoom Meetings MCP Server | https://mcp.zoom.us/mcp/meeting/streamable |
4 | [Meetings](meetings/SKILL.md) |
| Zoom Chat MCP Server | https://mcp.zoom.us/mcp/chat/streamable |
20 | [Team Chat](team-chat/SKILL.md) |
| Zoom Canvas MCP Server | https://mcp.zoom.us/mcp/canvas/streamable |
18 | [Canvas](canvas/SKILL.md) |
| Zoom Tasks MCP Server | https://mcp.zoom.us/mcp/tasks/streamable |
20 | [Tasks](tasks/SKILL.md) |
| Zoom Whiteboard MCP Server | https://mcp.zoom.us/mcp/whiteboard/streamable |
11 | [Whiteboard](whiteboard/SKILL.md) |
| Zoom Revenue Accelerator MCP Server | https://mcp.zoom.us/mcp/revenue_accelerator/streamable |
15 | [Revenue Accelerator](revenue-accelerator/SKILL.md) |
The tool counts are observations from Zoom's current official server metadata, not API contracts. Always run tools/list before making routing or authorization decisions. This catalog was last checked on 2026-07-28. The current official catalog documents Streamable HTTP; do not assume an SSE fallback exists.
Zoom's general MCP page also describes broader Workplace use cases such as Calendar, Clips, and Email. No separate remote endpoint for those surfaces is listed in the current official server catalog; use the unified server only when its live tools/list response exposes the needed capability.
Whiteboard child skill:
- [whiteboard/SKILL.md](whiteboard/SKILL.md)
Team Chat child skill:
- [team-chat/SKILL.md](team-chat/SKILL.md)
Other dedicated child skills:
- [meetings/SKILL.md](meetings/SKILL.md)
- [canvas/SKILL.md](canvas/SKILL.md)
- [tasks/SKILL.md](tasks/SKILL.md)
- [revenue-accelerator/SKILL.md](revenue-accelerator/SKILL.md)
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 searchzoom instead of searchmeetings when the task is cross-Zoom knowledge discovery over Team Chat messages, Zoom Canvas, or My Notes. Use getfilecontent after search_zoom when the user asks to inspect the Markdown content of a returned Canvas file or My Notes file.
Use [examples/transcript-retrieval.md](examples/transcript-retrieval.md) for the main retrieval workflow.
Tool Catalog
| Tool | Key Parameters | Required Scope |
|---|---|---|
createnewfilewithmarkdown |
content*, filename, parentid |
docs:write:import |
getfilecontent |
fileId* |
docs:read:export |
getmeetingassets |
meetingId* |
meeting:read:assets |
getrecordingresource |
meetingId*, types, clipnum, playtime, rawpasscode, encodepasscode |
cloud_recording:read:content |
hubcreatefilefromcontent |
content*, file type/name and destination fields from live schema |
hub:write:content |
hubgetfile_content |
file identifier* and format |
hub:read:content |
recordings_list |
from, to, meetingid, trash, trashtype, pagesize, nextpage_token |
cloudrecording:read:listuser_recordings |
search_meetings |
q, from, to, includezoommynotes, pagesize, nextpagetoken |
meeting:read:search |
search_zoom |
searchentities*, query, pagesize |
ai_companion:read:search |
\* Required parameter
Full parameter and output guidance: [references/tools.md](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
from: "2026-03-01"
to: "2026-03-06"
→ choose a recording target
→ get_recording_resource meetingId: "MEETING_UUID_OR_RECORDING_ID"
Create a Zoom Doc from Markdown:
create_new_file_with_markdown
file_name: "Q4 Planning Notes"
content: "# Decisions\n\n- ..."
Search Zoom Chat or Canvas, then read a returned file:
search_zoom
query: "Q4 planning decisions"
search_entities:
- entity_type: "zoom_doc"
filters:
doc_view: "notes"
page_size: 10
→ choose a returned Zoom Doc file_id
→ get_file_content fileId: "FILE_ID"
Error Reference
| Code | Meaning | Fix |
|---|---|---|
401 Unauthorized |
Missing or rejected bearer token at the endpoint | Re-register the MCP server with a valid bearer token |
-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 searchmeetings or recordingslist |
Full error reference: [references/error-codes.md](references/error-codes.md)
Documentation
Concepts
- [concepts/mcp-architecture.md](concepts/mcp-architecture.md) — MCP protocol, hosted endpoints, discovery, and capability model
- [concepts/oauth-setup.md](concepts/oauth-setup.md) — OAuth app creation, MCP-specific scopes, AI Companion prerequisites, token lifecycle
Examples
- [examples/transcript-retrieval.md](examples/transcript-retrieval.md) — Search/assets and recording-resource workflows
- [examples/search-chat-docs.md](examples/search-chat-docs.md) — Cross-Zoom search over Team Chat, Zoom Canvas, and My Notes
- [examples/create-zoom-doc.md](examples/create-zoom-doc.md) — Verified Canvas file creation flow
- [examples/search-and-act.md](examples/search-and-act.md) — Search, inspect assets, and hand off CRUD work to REST when needed
- [examples/meeting-lifecycle.md](examples/meeting-lifecycle.md) — Why meeting CRUD belongs in REST, plus the MCP-to-REST handoff pattern
References
- [references/tools.md](references/tools.md) — Current Zoom MCP tool reference
- [references/error-codes.md](references/error-codes.md) — MCP and Zoom API errors with fixes
- [whiteboard/SKILL.md](whiteboard/SKILL.md) — Whiteboard MCP child skill
- [team-chat/SKILL.md](team-chat/SKILL.md) — Team Chat MCP child skill
- [meetings/SKILL.md](meetings/SKILL.md) — Dedicated Meetings MCP child skill
- [canvas/SKILL.md](canvas/SKILL.md) — Dedicated Canvas MCP child skill
- [tasks/SKILL.md](tasks/SKILL.md) — Tasks MCP child skill
- [revenue-accelerator/SKILL.md](revenue-accelerator/SKILL.md) — Revenue Accelerator MCP child skill
Troubleshooting
- [troubleshooting/common-errors.md](troubleshooting/common-errors.md) — Scope failures, endpoint mixups, search/recording issues
Operations
- [RUNBOOK.md](RUNBOOK.md) — 5-minute preflight and debugging checklist
Related Skills
- [zoom-rest-api](../rest-api/SKILL.md) — Deterministic REST API access, including meeting CRUD
- [zoom-oauth](../oauth/SKILL.md) — OAuth implementation patterns
- [zoom-webhooks](../webhooks/SKILL.md) — Event-driven recording and meeting workflows
- [zoom-rtms](../rtms/SKILL.md) — Live media and transcript streams during active meetings