CLI and MCP server for the Zoom API — meetings, cloud recordings (including VTT transcripts), webinars, and more. Built for humans and AI agents.
60 tools with consistent naming (verb_noun pattern) and basic descriptions. Most tools have input schemas with type definitions and parameter descriptions. However, descriptions are often terse (20-50 chars), falling below the 50-200 char LLM-optimized baseline. Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (generic JSON error wrapping). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification. Parameter descriptions lack format constraints, ranges, and dependency documentation. Composition is sound (single responsibility per tool), but chaining metadata (IDs needed for follow-up calls) is not explicitly documented in responses.
Create a new chat channel.
Delete a chat message.
Get details of a chat channel.
List a user's chat channels.
List members of a chat channel.
List chat messages for a user or in a specific channel/contact.
Send a chat message to a channel or contact.
Most tool descriptions are under 20 characters (e.g., 'List users', 'Get details of a specific user'). LLMs need 50-200 char descriptions explaining WHAT, WHEN, and WHY to use the tool.
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. Tools return JSON but the schema is invisible to the agent.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE). Agents cannot distinguish safe from dangerous operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Update a chat message.
Get dashboard details for a specific meeting (quality metrics, network stats).
Get participant quality metrics for a meeting from the dashboard.
List live or past meetings from the dashboard (admin). Provides quality metrics.
Add members to a group.
Create a new group.
Delete a group.
Get details of a specific group.
List groups.
List members of a group.
Update an existing group.
Add a registrant to a meeting.
Create a new meeting.
Delete a meeting.
End an active meeting.
Get details of a specific meeting.
List meetings for a user.
List registrants for a meeting.
Get a summary of a meeting.
Update an existing meeting.
Get details of a past meeting.
Get participants of a past meeting.
Delete a recording.
Delete a specific recording file.
Get details of a specific recording.
List cloud recordings.
List recent recordings.
Recover a deleted recording.
Search recordings.
Get or update recording settings.
Get the transcript of a recording.
Get cloud recording reports.
Get daily usage reports.
Get meeting reports.
Get meeting participant reports.
Get operation logs.
Get user reports.
Create a new user.
Delete a user.
Get details of a specific user.
List users.
Get or update user settings.
Update an existing user.
Add panelists to a webinar.
Add a registrant to a webinar.
Create a new webinar.
Delete a webinar.
Get details of a specific webinar.
List webinars.
List panelists for a webinar.
List polls for a webinar.
List registrants for a webinar.
Update an existing webinar.
Error handling is generic JSON wrapping with no recovery guidance. Errors return {error, code} but do not tell LLMs what to do next (retry? ask user? try alternative tool?).
Parameter descriptions lack format constraints, ranges, and dependencies. E.g., 'page_size' has min/max but no guidance on default or typical values. 'type' enums are present but not all parameters document their constraints.