list_meetings
Retrieve and manage Zoom meetings by user ID, filtering by type such as scheduled, live, upcoming, or pending. Use pagination to control the number of records returned per query.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page_number | No | Page number | |
| page_size | No | Number of records returned per page | |
| type | No | Meeting type | |
| user_id | Yes | The user ID or email address |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"page_number": {
"description": "Page number",
"minimum": 1,
"type": "number"
},
"page_size": {
"description": "Number of records returned per page",
"maximum": 300,
"minimum": 1,
"type": "number"
},
"type": {
"description": "Meeting type",
"enum": [
"scheduled",
"live",
"upcoming",
"pending"
],
"type": "string"
},
"user_id": {
"description": "The user ID or email address",
"type": "string"
}
},
"required": [
"user_id"
],
"type": "object"
}
Implementation Reference
- src/tools/meetings.js:14-26 (handler)The asynchronous handler function for the 'list_meetings' tool. It constructs query parameters from inputs and fetches the list of meetings for the specified user via the Zoom API endpoint `/users/${user_id}/meetings`, then handles the response or error.handler: async ({ user_id, type, page_size, page_number }) => { try { const params = {}; if (type) params.type = type; if (page_size) params.page_size = page_size; if (page_number) params.page_number = page_number; const response = await zoomApi.get(`/users/${user_id}/meetings`, { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } }
- src/tools/meetings.js:8-13 (schema)Input schema using Zod for validating parameters of the 'list_meetings' tool: required user_id (string), optional type (enum), page_size (number 1-300), page_number (number >=1).schema: { user_id: z.string().describe("The user ID or email address"), type: z.enum(["scheduled", "live", "upcoming", "pending"]).optional().describe("Meeting type"), page_size: z.number().min(1).max(300).optional().describe("Number of records returned per page"), page_number: z.number().min(1).optional().describe("Page number") },
- src/server.js:46-46 (registration)Registers the 'meetingsTools' array, which contains the 'list_meetings' tool definition, with the MCP server using the custom registerTools function.registerTools(meetingsTools);