| name | zoom-general |
| description | Cross-product Zoom reference skill. Use after the workflow is clear when you need shared platform guidance, app-model comparisons, authentication context, scopes, marketplace considerations, or API-vs-MCP routing. |
| user-invocable | false |
| triggers | ["zoom integration","getting started","which zoom sdk","zoom platform","choose zoom api","zoom scopes","marketplace","cross-product","apis vs mcp","api vs mcp"] |
Zoom General (Cross-Product Skills)
Background reference for cross-product Zoom questions. Prefer the workflow skills first, then use this file for shared platform guidance and routing detail.
How zoom-general Routes a Complex Developer Query
Use zoom-general as the classifier and chaining layer:
- detect product signals in the query
- pick one primary skill
- attach secondary skills for auth, events, or deployment edges
- ask one short clarifier only when two routes match with similar confidence
Minimal implementation:
type SkillId =
| 'zoom-general'
| 'zoom-rest-api'
| 'zoom-webhooks'
| 'zoom-oauth'
| 'zoom-meeting-sdk-web-component-view'
| 'zoom-video-sdk'
| 'zoom-mcp';
const hasAny = (q: string, words: string[]) => words.some((w) => q.includes(w));
function detectSignals(rawQuery: string) {
const q = rawQuery.toLowerCase();
return {
meetingCustomUi: hasAny(q, ['zoom meeting', 'custom ui', 'component view', 'embed meeting']),
customVideo: hasAny(q, ['video sdk', 'custom video session', 'peer-video-state-change']),
restApi: hasAny(q, ['rest api', '/v2/', 'create meeting', 'list users', 's2s oauth']),
webhooks: hasAny(q, ['webhook', 'x-zm-signature', 'event subscription', 'crc']),
oauth: hasAny(q, ['oauth', 'pkce', 'token refresh', 'account_credentials']),
mcp: hasAny(q, ['zoom mcp', 'agentic retrieval', 'tools/list', 'semantic meeting search']),
};
}
function pickPrimarySkill(s: ReturnType<typeof detectSignals>): SkillId {
if (s.meetingCustomUi) return 'zoom-meeting-sdk-web-component-view';
if (s.mcp) return 'zoom-mcp';
if (s.restApi) return 'zoom-rest-api';
if (s.customVideo) return 'zoom-video-sdk';
return 'zoom-general';
}
function buildChain(primary: SkillId, s: ReturnType<typeof detectSignals>): SkillId[] {
const chain = [primary];
if (s.oauth && !chain.includes('zoom-oauth')) chain.push('zoom-oauth');
if (s.webhooks && !chain.includes('zoom-webhooks')) chain.push('zoom-webhooks');
return chain;
}
Example:
Create a meeting, configure webhooks, and handle OAuth token refresh ->
zoom-rest-api -> zoom-oauth -> zoom-webhooks
Build a custom video UI for a Zoom meeting on web ->
zoom-meeting-sdk-web-component-view
For the full TypeScript implementation and handoff contract, use
references/routing-implementation.md.
Choose Your Path
| I want to... | Use this skill |
|---|
| Build a custom web UI around a real Zoom meeting | zoom-meeting-sdk-web-component-view |
| Build deterministic automation/configuration/reporting with explicit request control | zoom-rest-api |
| Receive event notifications (HTTP push) | zoom-webhooks |
| Receive event notifications (WebSocket, low-latency) | zoom-websockets |
| Embed Zoom meetings in my app | zoom-meeting-sdk |
| Build custom video experiences (Web, React Native, Flutter, Android, iOS, macOS, Unity, Linux) | zoom-video-sdk |
| Build an app that runs inside Zoom client | zoom-apps-sdk |
| Transcribe uploaded or stored media with AI Services Scribe | scribe |
| Access live audio/video/transcripts from meetings | zoom-rtms |
| Enable collaborative browsing for support | zoom-cobrowse-sdk |
| Build Contact Center apps and channel integrations | contact-center |
| Build Virtual Agent web/mobile chatbot experiences | virtual-agent |
| Build Zoom Phone integrations (Smart Embed, Phone API, webhooks, URI flows) |
Planning Checkpoint: Rivet SDK (Optional)
When a user starts planning a server-side integration that combines auth + webhooks + API calls, ask this first:
Rivet SDK is a Node.js framework that bundles Zoom auth handling, webhook receivers, and typed API wrappers.
Do you want to use Rivet SDK for faster scaffolding, or do you prefer a direct OAuth + REST implementation without Rivet?
Routing after answer:
- If user chooses Rivet: chain
rivet-sdk + oauth + rest-api.
- If user declines Rivet: chain
oauth + rest-api (+ webhooks or product skill as needed).
SDK vs REST Routing Matrix (Hard Stop)
| User intent | Correct path | Do not route to |
|---|
| Embed Zoom meeting in app UI | zoom-meeting-sdk | REST-only join_url flow |
| Build custom web UI for a real Zoom meeting | zoom-meeting-sdk-web-component-view | zoom-video-sdk |
| Build custom video UI/session app | zoom-video-sdk | Meeting SDK or REST meeting links |
| Get browser join links / manage meeting resources | zoom-rest-api | Meeting SDK join implementation |
Routing guardrails:
- If user asks for SDK embed/join behavior, stay in SDK path.
- If the prompt says meeting plus custom UI/video/layout/embed, prefer
zoom-meeting-sdk-web-component-view.
- Only use
zoom-video-sdk when the user is building a custom session product rather than a Zoom meeting.
- Only use REST path for resource management, reporting, or link distribution unless user explicitly requests a mixed architecture.
- For executable classification/chaining logic and error handling, see references/routing-implementation.md.
API vs MCP Routing Matrix (Hard Stop)
| User intent | Correct path | Why |
|---|
| Deterministic backend automation, account/user configuration, reporting, scheduled jobs | zoom-rest-api | Explicit request/response control and repeatable behavior |
| AI agent chooses tools dynamically, cross-platform AI tool interoperability | zoom-mcp | MCP is optimized for dynamic tool discovery and agentic workflows |
| Enterprise AI architecture (stable core + adaptive AI layer) | zoom-rest-api + zoom-mcp | APIs run core system actions; MCP exposes curated AI tools/context |
Routing guardrails:
- Do not replace deterministic backend APIs with MCP-only routing.
- Do not force raw REST-first routing when the task is AI-agent tool orchestration.
- Prefer hybrid routing when the user needs both stable automation and AI-driven interactions.
- MCP remote server works over Streamable HTTP/SSE; use this path when the target client/agent supports MCP transports (for example Claude or VS Code).
- Do not design per-tenant custom MCP endpoint provisioning; Zoom MCP endpoints are shared at instance/cluster level.
- Source: https://developers.zoom.us/docs/mcp/library/resources/apis-vs-mcp/
Ambiguity Resolution (Ask Before Routing)
When a prompt matches both API and MCP paths with similar confidence, ask one short clarifier before execution:
Do you want deterministic REST API automation, AI-agent MCP tooling, or a hybrid of both?
Then route as:
- REST answer →
zoom-rest-api
- MCP answer →
zoom-mcp
- Hybrid answer →
zoom-rest-api + zoom-mcp
MCP Availability and Topology Notes
- Zoom-hosted MCP access is evolving; docs indicate a model where Zoom exposes product-scoped MCP servers (for example Meetings, Team Chat, Whiteboard).
- Use
zoom-mcp as the parent MCP entry point.
- Route Whiteboard-specific MCP requests to zoom-mcp/whiteboard.
- When a request is product-specific and MCP coverage exists, route to that MCP product surface first; otherwise use REST/SDK skills for deterministic implementation.
Webhooks vs WebSockets
Both receive event notifications, but differ in approach:
| Aspect | webhooks | zoom-websockets |
|---|
| Connection | HTTP POST to your endpoint | Persistent WebSocket |
| Latency | Higher | Lower |
| Security | Requires public endpoint | No exposed endpoint |
| Setup | Simpler | More complex |
| Best for | Most use cases | Real-time, security-sensitive |
Common Use Cases
Complete Use-Case Index
Prerequisites
- Zoom account (Pro, Business, or Enterprise)
- App created in Zoom App Marketplace
- OAuth credentials (Client ID and Secret)
References
Quick Start
- Go to marketplace.zoom.us
- Click Develop → Build App
- Select app type (see references/app-types.md)
- Configure OAuth and scopes
- Copy credentials to your application
Detailed References
SDK Maintenance
Resources
Environment Variables
Operations
- RUNBOOK.md - 5-minute preflight and debugging checklist.