get_webinar_participants_report
Generate detailed reports of webinar participants by specifying the webinar ID and optional parameters like page size and next page token using the Zoom API MCP Server.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next_page_token | No | Next page token | |
| page_size | No | Number of records returned | |
| webinar_id | Yes | The webinar ID |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"next_page_token": {
"description": "Next page token",
"type": "string"
},
"page_size": {
"description": "Number of records returned",
"maximum": 300,
"minimum": 1,
"type": "number"
},
"webinar_id": {
"description": "The webinar ID",
"type": "string"
}
},
"required": [
"webinar_id"
],
"type": "object"
}
Implementation Reference
- src/tools/reports.js:67-78 (handler)The handler function that fetches the webinar participants report from the Zoom API, supporting pagination via page_size and next_page_token, and handles responses or errors using helper functions.handler: async ({ webinar_id, page_size, next_page_token }) => { try { const params = {}; if (page_size) params.page_size = page_size; if (next_page_token) params.next_page_token = next_page_token; const response = await zoomApi.get(`/report/webinars/${webinar_id}/participants`, { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } }
- src/tools/reports.js:62-66 (schema)Zod schema defining the input parameters for the tool: webinar_id (required string), page_size (optional number between 1 and 300), next_page_token (optional string).schema: { webinar_id: z.string().describe("The webinar ID"), page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), next_page_token: z.string().optional().describe("Next page token") },
- src/server.js:54-54 (registration)Registers the reportsTools array using registerTools function, which includes the definition and handler for get_webinar_participants_report.registerTools(reportsTools);
- src/utils/api.js:31-38 (helper)Helper function that formats successful Zoom API responses into MCP-compatible content by stringifying the data as formatted JSON.export const handleApiResponse = (response) => { return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; };
- src/utils/api.js:41-50 (helper)Helper function that formats API errors into MCP-compatible error content with an error flag.export const handleApiError = (error) => { const errorMessage = error.response?.data?.message || error.message; return { content: [{ type: "text", text: `Error: ${errorMessage}` }], isError: true }; };