Skip to main content
Glama

Zoom API MCP Server

zoom-rooms.js3.9 kB
import { z } from 'zod'; import { zoomApi, handleApiResponse, handleApiError } from '../utils/api.js'; export const zoomRoomsTools = [ { name: "list_zoom_rooms", description: "List Zoom Rooms", schema: { page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), page_number: z.number().min(1).optional().describe("Page number"), location_id: z.string().optional().describe("Location ID") }, handler: async ({ page_size, page_number, location_id }) => { try { const params = {}; if (page_size) params.page_size = page_size; if (page_number) params.page_number = page_number; if (location_id) params.location_id = location_id; const response = await zoomApi.get('/rooms', { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "get_zoom_room", description: "Get a Zoom Room's information", schema: { room_id: z.string().describe("The Zoom Room ID") }, handler: async ({ room_id }) => { try { const response = await zoomApi.get(`/rooms/${room_id}`); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "update_zoom_room", description: "Update a Zoom Room's information", schema: { room_id: z.string().describe("The Zoom Room ID"), name: z.string().optional().describe("Room name"), location_id: z.string().optional().describe("Location ID"), calendar_resource_id: z.string().optional().describe("Calendar resource ID"), room_passcode: z.string().optional().describe("Room passcode") }, handler: async ({ room_id, ...roomData }) => { try { const response = await zoomApi.patch(`/rooms/${room_id}`, roomData); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "list_zoom_room_locations", description: "List Zoom Room locations", schema: { page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), page_number: z.number().min(1).optional().describe("Page number"), parent_location_id: z.string().optional().describe("Parent location ID") }, handler: async ({ page_size, page_number, parent_location_id }) => { try { const params = {}; if (page_size) params.page_size = page_size; if (page_number) params.page_number = page_number; if (parent_location_id) params.parent_location_id = parent_location_id; const response = await zoomApi.get('/rooms/locations', { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }, { name: "create_zoom_room_location", description: "Create a Zoom Room location", schema: { name: z.string().describe("Location name"), parent_location_id: z.string().optional().describe("Parent location ID"), type: z.enum(["country", "state", "city", "campus", "building", "floor"]).describe("Location type") }, handler: async (locationData) => { try { const response = await zoomApi.post('/rooms/locations', locationData); return handleApiResponse(response); } 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