Skip to main content
Glama

Zoom API MCP Server

users.js4.42 kB
import { z } from 'zod'; import { zoomApi, handleApiResponse, handleApiError } from '../utils/api.js'; export const usersTools = [ { name: "list_users", description: "List users on the account", schema: { status: z.enum(["active", "inactive", "pending"]).optional().describe("User status"), page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), page_number: z.number().min(1).optional().describe("Page number"), role_id: z.string().optional().describe("Role ID") }, handler: async ({ status, page_size, page_number, role_id }) => { try { const params = {}; if (status) params.status = status; if (page_size) params.page_size = page_size; if (page_number) params.page_number = page_number; if (role_id) params.role_id = role_id; const response = await zoomApi.get('/users', { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "create_user", description: "Create a new user on the account", schema: { action: z.enum(["create", "autoCreate", "custCreate", "ssoCreate"]).describe("Action to create user"), user_info: z.object({ email: z.string().email().describe("User email address"), type: z.number().min(1).max(99).describe("User type (1: Basic, 2: Licensed, 3: On-prem)"), first_name: z.string().optional().describe("User's first name"), last_name: z.string().optional().describe("User's last name"), password: z.string().optional().describe("User password") }).describe("User information") }, handler: async ({ action, user_info }) => { try { const response = await zoomApi.post('/users', { action, user_info }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "get_user", description: "Get a user's information", schema: { user_id: z.string().describe("The user ID or email address") }, handler: async ({ user_id }) => { try { const response = await zoomApi.get(`/users/${user_id}`); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "update_user", description: "Update a user's information", schema: { user_id: z.string().describe("The user ID or email address"), first_name: z.string().optional().describe("User's first name"), last_name: z.string().optional().describe("User's last name"), type: z.number().min(1).max(99).optional().describe("User type"), pmi: z.string().optional().describe("Personal Meeting ID"), use_pmi: z.boolean().optional().describe("Use Personal Meeting ID for instant meetings"), timezone: z.string().optional().describe("User timezone"), dept: z.string().optional().describe("Department") }, handler: async ({ user_id, ...userData }) => { try { const response = await zoomApi.patch(`/users/${user_id}`, userData); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "delete_user", description: "Delete a user", schema: { user_id: z.string().describe("The user ID or email address"), action: z.enum(["delete", "disassociate"]).describe("Delete action (delete: permanently delete, disassociate: disassociate from account)") }, handler: async ({ user_id, action }) => { try { const response = await zoomApi.delete(`/users/${user_id}`, { params: { action } }); return { content: [{ type: "text", text: "User deleted successfully" }] }; } catch (error) { return handleApiError(error); } } } ];

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mattcoatsworth/zoom-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server