Skip to main content
Glama

Zoom MCP Server

types.ts8.97 kB
import { z } from "zod"; export const TokenSchema = z.object({ access_token: z.string(), token_type: z.string(), expires_in: z.number(), scope: z.string(), api_url: z.string(), }); export const ZoomMeetingSettingsSchema = z.object({ host_video: z.boolean().optional(), participant_video: z.boolean().optional(), cn_meeting: z.boolean().optional(), in_meeting: z.boolean().optional(), join_before_host: z.boolean().optional(), jbh_time: z.number().optional(), mute_upon_entry: z.boolean().optional(), watermark: z.boolean().optional(), use_pmi: z.boolean().optional(), approval_type: z.number().optional(), audio: z.string().optional(), auto_recording: z.string().optional(), enforce_login: z.boolean().optional(), enforce_login_domains: z.string().optional(), alternative_hosts: z.string().optional(), alternative_host_update_polls: z.boolean().optional(), close_registration: z.boolean().optional(), show_share_button: z.boolean().optional(), allow_multiple_devices: z.boolean().optional(), registrants_confirmation_email: z.boolean().optional(), waiting_room: z.boolean().optional(), request_permission_to_unmute_participants: z.boolean().optional(), registrants_email_notification: z.boolean().optional(), meeting_authentication: z.boolean().optional(), encryption_type: z.string().optional(), approved_or_denied_countries_or_regions: z.object({ enable: z.boolean().optional(), }), breakout_room: z.object({ enable: z.boolean().optional(), }), internal_meeting: z.boolean().optional(), continuous_meeting_chat: z.object({ enable: z.boolean().optional(), auto_add_invited_external_users: z.boolean().optional(), auto_add_meeting_participants: z.boolean().optional(), channel_id: z.string().optional(), }), participant_focused_meeting: z.boolean().optional(), push_change_to_calendar: z.boolean().optional(), resources: z.array(z.unknown().optional()), allow_host_control_participant_mute_state: z.boolean().optional(), alternative_hosts_email_notification: z.boolean().optional(), show_join_info: z.boolean().optional(), device_testing: z.boolean().optional(), focus_mode: z.boolean().optional(), meeting_invitees: z.array(z.unknown().optional()), private_meeting: z.boolean().optional(), email_notification: z.boolean().optional(), host_save_video_order: z.boolean().optional(), sign_language_interpretation: z.object({ enable: z.boolean().optional(), }), email_in_attendee_report: z.boolean().optional(), }); export const ZoomMeetingSchema = z.object({ uuid: z.string(), id: z.number(), host_id: z.string().optional(), host_email: z.string().optional(), topic: z.string().optional(), type: z.number().optional(), status: z.string().optional(), start_time: z.string().optional(), duration: z.number().optional(), timezone: z.string().optional(), agenda: z.string().optional(), created_at: z.string().optional(), start_url: z.string().optional(), join_url: z.string().optional(), password: z.string().optional(), h323_password: z.string().optional(), pstn_password: z.string().optional(), encrypted_password: z.string().optional(), settings: ZoomMeetingSettingsSchema, creation_source: z.string().optional(), pre_schedule: z.boolean().optional(), }); export const ZoomListMeetingsSchema = z.object({ page_size: z.number(), total_records: z.number(), next_page_token: z.string(), meetings: z.array( z.object({ uuid: z.string(), id: z.number(), host_id: z.string().optional(), topic: z.string().optional(), type: z.number().optional(), start_time: z.string().optional(), duration: z.number().optional(), timezone: z.string().optional(), agenda: z.string().optional(), created_at: z.string().optional(), join_url: z.string().optional(), }), ), }); export const ZoomMeetingDetailSchema = z.object({ assistant_id: z.string().optional(), host_email: z.string().optional(), host_id: z.string().optional(), id: z.number(), uuid: z.string(), agenda: z.string().optional(), created_at: z.string().optional(), duration: z.number().optional(), encrypted_password: z.string().optional(), pstn_password: z.string().optional(), h323_password: z.string().optional(), join_url: z.string().optional(), chat_join_url: z.string().optional(), occurrences: z .array( z.object({ duration: z.number().optional(), occurrence_id: z.string().optional(), start_time: z.string().optional(), status: z.string().optional(), }), ) .optional(), password: z.string().optional(), pmi: z.string().optional(), pre_schedule: z.boolean().optional(), recurrence: z .object({ end_date_time: z.string().optional(), end_times: z.number().optional(), monthly_day: z.number().optional(), monthly_week: z.number().optional(), monthly_week_day: z.number().optional(), repeat_interval: z.number().optional(), type: z.number().optional(), weekly_days: z.string().optional(), }) .optional(), settings: ZoomMeetingSettingsSchema.extend({ approved_or_denied_countries_or_regions: z .object({ approved_list: z.array(z.string()).optional(), denied_list: z.array(z.string()).optional(), enable: z.boolean().optional(), method: z.string().optional(), }) .optional(), authentication_exception: z .array( z.object({ email: z.string().optional(), name: z.string().optional(), join_url: z.string().optional(), }), ) .optional(), breakout_room: z .object({ enable: z.boolean().optional(), rooms: z .array( z.object({ name: z.string().optional(), participants: z.array(z.string()).optional(), }), ) .optional(), }) .optional(), global_dial_in_numbers: z .array( z.object({ city: z.string().optional(), country: z.string().optional(), country_name: z.string().optional(), number: z.string().optional(), type: z.string().optional(), }), ) .optional(), language_interpretation: z .object({ enable: z.boolean().optional(), interpreters: z .array( z.object({ email: z.string().optional(), languages: z.string().optional(), interpreter_languages: z.string().optional(), }), ) .optional(), }) .optional(), sign_language_interpretation: z .object({ enable: z.boolean().optional(), interpreters: z .array( z.object({ email: z.string().optional(), sign_language: z.string().optional(), }), ) .optional(), }) .optional(), meeting_invitees: z .array( z.object({ email: z.string().optional(), internal_user: z.boolean().optional(), }), ) .optional(), continuous_meeting_chat: z .object({ enable: z.boolean().optional(), auto_add_invited_external_users: z.boolean().optional(), auto_add_meeting_participants: z.boolean().optional(), who_is_added: z.string().optional(), channel_id: z.string().optional(), }) .optional(), resources: z .array( z.object({ resource_type: z.string().optional(), resource_id: z.string().optional(), permission_level: z.string().optional(), }), ) .optional(), question_and_answer: z .object({ enable: z.boolean().optional(), allow_submit_questions: z.boolean().optional(), allow_anonymous_questions: z.boolean().optional(), question_visibility: z.string().optional(), attendees_can_comment: z.boolean().optional(), attendees_can_upvote: z.boolean().optional(), }) .optional(), auto_start_meeting_summary: z.boolean().optional(), who_will_receive_summary: z.number().optional(), auto_start_ai_companion_questions: z.boolean().optional(), who_can_ask_questions: z.number().optional(), summary_template_id: z.string().optional(), }).optional(), start_time: z.string().optional(), start_url: z.string().optional(), status: z.string().optional(), timezone: z.string().optional(), topic: z.string().optional(), tracking_fields: z .array( z.object({ field: z.string().optional(), value: z.string().optional(), visible: z.boolean().optional(), }), ) .optional(), type: z.number().optional(), dynamic_host_key: z.string().optional(), creation_source: z.string().optional(), });

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/JavaProgrammerLB/zoom-mcp-server'

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