diff --git a/app/en/mcp-servers/components/toolkits-config.ts b/app/en/mcp-servers/components/toolkits-config.ts
index 0188ae712..205005d1c 100644
--- a/app/en/mcp-servers/components/toolkits-config.ts
+++ b/app/en/mcp-servers/components/toolkits-config.ts
@@ -284,6 +284,14 @@ const availableTools: Tool[] = [
category: "social",
type: "arcade",
},
+ {
+ name: "Zoom Meetings API",
+ image: "zoom.png",
+ summary: "Enable LLMs to interact with the low-level Zoom Meetings API",
+ link: "/mcp-servers/social-communication/zoom-meetings-api",
+ category: "social",
+ type: "arcade_starter",
+ },
{
name: "Jira",
image: "atlassian.png",
diff --git a/app/en/mcp-servers/social-communication/zoom-meetings-api/page.mdx b/app/en/mcp-servers/social-communication/zoom-meetings-api/page.mdx
new file mode 100644
index 000000000..b8dfc13d3
--- /dev/null
+++ b/app/en/mcp-servers/social-communication/zoom-meetings-api/page.mdx
@@ -0,0 +1,2998 @@
+# ZoomMeetingsApi
+import StarterToolInfo from "@/app/_components/starter-tool-info";
+import ToolInfo from "@/app/_components/tool-info";
+import Badges from "@/app/_components/badges";
+import TabbedCodeBlock from "@/app/_components/tabbed-code-block";
+import TableOfContents from "@/app/_components/table-of-contents";
+import ToolFooter from "@/app/_components/tool-footer";
+import { Callout } from "nextra/components";
+
+
+
+
+
+
+
+The ZoomMeetingsApi MCP Server provides a comprehensive set of tools for managing Zoom meetings, webinars, recordings, devices, reports, and related resources. With these tools you can:
+
+- Manage meetings and webinars: create, retrieve details, list upcoming/scheduled/past instances, delete meetings or occurrences, manage templates, invitations, livestream and archive tokens, auto-open apps, and meeting summaries.
+- Handle recordings, transcripts, and archives: list and retrieve cloud/local recordings and archived files, get transcripts and analytics, obtain recording join/live-stream tokens, and delete recordings or transcripts.
+- Administer registrants, polls, surveys, Q&A, and chat: list and manage meeting/webinar registrants and registration questions, fetch and delete polls/surveys, retrieve Q&A and poll results, and remove in-session chat messages.
+- Manage devices and telephony: list, retrieve, assign, and remove Zoom devices (ZDM/ZPA/H.323/SIP), get device firmware/app versions, and manage TSP and SIP phone accounts.
+- Access reporting and logs: generate meeting, webinar, host, participant, billing, cloud recording, telephone, daily, activity, operation, and audit reports; retrieve archived-file and recording statistics and meeting analytics summaries.
+- Configure webinar branding and panelists: manage webinar branding (wallpaper, virtual backgrounds, name tags), list/remove panelists, and retrieve webinar-specific livestream/local-record tokens.
+- Work with tracking fields and account-level data: list/manage tracking fields, billing invoices, and billing reports, and retrieve device/group manager info and account-level activity logs.
+
+These tools require appropriate Zoom plans, account features (Pro/Business/Webinar add-ons, archiving/cloud recording, etc.), and OAuth/admin scopes as noted per operation.
+
+## Available Tools
+
+
+
+
+ If you need to perform an action that's not listed here, you can [get in touch
+ with us](mailto:contact@arcade.dev) to request a new tool, or [create your
+ own tools](/home/build-tools/create-a-mcp-server).
+
+
+## ZoomMeetingsApi.GetArchivedZoomFiles
+
+
+
+
+Retrieve a Zoom account's archived meeting or webinar files.
+
+**Parameters**
+
+- **number_of_records_per_call** (`integer`, optional) Specify the number of records to retrieve in a single API call. Use an integer value.
+- **pagination_token** (`string`, optional) Token used to fetch the next set of results when result exceeds current page size. Expires in 15 minutes.
+- **query_start_date** (`string`, optional) The starting date for the query in `yyyy-MM-dd'T'HH:mm:ssZ` format. Must not exceed seven days from the `query_end_date`.
+- **query_end_date** (`string`, optional) The end date for the query in `yyyy-MM-dd'T'HH:mm:ssZ` format, not exceeding seven days from the start date.
+- **query_date_type** (`string`, optional) Specifies the type of date to query: 'meeting_start_time' or 'archive_complete_time'. Defaults to 'meeting_start_time'.
+- **deprecated_group_id** (`string`, optional) This argument is deprecated. Please use 'group_ids' instead for querying Zoom group information.
+- **filter_by_group_ids** (`string`, optional) Comma-separated list of group IDs to filter archived files. Maximum 7 group IDs.
+
+
+## ZoomMeetingsApi.GetArchivedFileStatistics
+
+
+
+
+Retrieve statistics about archived Zoom meeting files.
+
+**Parameters**
+
+- **query_start_date** (`string`, optional) The start date for querying archived files, formatted as `yyyy-MM-dd'T'HH:mm:ssZ`. Must be within seven days of `query_end_date`.
+- **query_end_date** (`string`, optional) The query end date for retrieving statistics, in `yyyy-MM-dd'T'HH:mm:ssZ` format. Ensure the duration between this and the start date does not exceed seven days.
+
+
+## ZoomMeetingsApi.GetZoomArchivedFiles
+
+
+
+
+Retrieve archived files from a specific Zoom meeting.
+
+**Parameters**
+
+- **meeting_uuid** (`string`, required) The universally unique identifier (UUID) of the Zoom meeting. Double encode if it starts with '/' or contains '//' when making other API calls.
+
+
+## ZoomMeetingsApi.DeleteMeetingArchivedFiles
+
+
+
+
+Deletes all archived files of a specified meeting.
+
+**Parameters**
+
+- **meeting_uuid** (`string`, required) The universally unique identifier (UUID) of the meeting. Ensure double-encoding if the UUID begins with a '/' or contains '//'.
+
+
+## ZoomMeetingsApi.GetMeetingRecordings
+
+
+
+
+Retrieve all recordings for a specified Zoom meeting.
+
+**Parameters**
+
+- **meeting_id_or_uuid** (`string`, required) Provide the Zoom meeting ID or UUID to retrieve cloud recordings. If using UUID, double encode if needed.
+- **include_download_access_token** (`string`, optional) Set to 'download_access_token' to include this field in the response for downloading recordings. Requires 'View the recording content' permission.
+- **download_access_token_ttl** (`integer`, optional) The Time to Live value for the download access token. Only valid if `include_fields` includes `download_access_token`.
+
+
+## ZoomMeetingsApi.DeleteZoomRecordings
+
+
+
+
+Delete a meeting or webinar's cloud recordings.
+
+**Parameters**
+
+- **meeting_or_webinar_identifier** (`string`, required) Provide the meeting or webinar ID/UUID to delete its cloud recordings. If using a UUID starting with '/' or containing '//', double encode it.
+- **recording_delete_action** (`string`, optional) Specify the action for deleting recordings: `trash` to move to trash or `delete` for permanent removal.
+
+
+## ZoomMeetingsApi.GetZoomRecordingAnalytics
+
+
+
+
+Retrieve analytics details for Zoom meeting or webinar recordings.
+
+**Parameters**
+
+- **meeting_or_webinar_id** (`string`, required) Provide the meeting or webinar ID/UUID to retrieve cloud recordings. Double encode UUIDs starting with '/' or containing '//'.
+- **records_per_page** (`integer`, optional) The number of analytics records to return in one API call. Adjust for batch size.
+- **pagination_token** (`string`, optional) A token for navigating through pages of large result sets. It expires 15 minutes after retrieval.
+- **start_date** (`string`, optional) The start date for the monthly range to query, formatted as YYYY-MM-DD. Defaults to current date if not provided.
+- **end_date** (`string`, optional) The end date for the queried monthly range. Format: YYYY-MM-DD. The duration can't exceed one month from the start date.
+- **analytics_detail_type** (`string`, optional) Specify the type of analytics details to retrieve: 'by_view' for view-based details or 'by_download' for download-based details.
+
+
+## ZoomMeetingsApi.GetMeetingAnalyticsSummary
+
+
+
+
+Retrieve analytics summary of a Zoom meeting recording.
+
+**Parameters**
+
+- **meeting_id_or_uuid** (`string`, required) Provide the meeting or webinar ID/UUID to retrieve cloud recordings. Double encode UUIDs with special characters.
+- **start_date** (`string`, optional) The start date for the monthly range to query, in YYYY-MM-DD format. Defaults to the current date if not provided.
+- **end_date_for_query** (`string`, optional) The end date for the monthly range to query. Format as YYYY-MM-DD. The range must not exceed one month.
+
+
+## ZoomMeetingsApi.GetMeetingRecordingRegistrants
+
+
+
+
+Fetch registrants of past meeting recordings on Zoom.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The meeting's ID, which can exceed 10 digits. Store as a long format integer to ensure compatibility.
+- **registrant_status_filter** (`string`, optional) Filter registrants by status: 'pending', 'approved', or 'denied'.
+- **records_per_page** (`integer`, optional) Specify the number of registrant records to retrieve per API call.
+- **use_next_page_token** (`integer`, optional) Indicate whether to use `next_page_token` for pagination instead of `page_number`.
+- **pagination_token** (`string`, optional) Token for paginating through large result sets. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.GetRecordingRegistrationQuestions
+
+
+
+
+Retrieve questions for registering to view a Zoom meeting recording.
+
+**Parameters**
+
+- **meeting_or_webinar_id** (`string`, required) Provide the meeting or webinar ID/UUID to get the cloud recordings. Double encode UUIDs starting with '/' or containing '//'.
+
+
+## ZoomMeetingsApi.GetZoomMeetingRecordingSettings
+
+
+
+
+Retrieve a Zoom meeting's cloud recording settings and access info.
+
+**Parameters**
+
+- **zoom_meeting_id** (`string`, required) The ID or UUID of the meeting/webinar for retrieving cloud recordings. Double encode UUIDs starting with '/' or containing '//'.
+
+
+## ZoomMeetingsApi.DeleteZoomRecording
+
+
+
+
+Delete a specific Zoom recording from a meeting or webinar.
+
+**Parameters**
+
+- **meeting_or_webinar_id** (`string`, required) Provide the meeting ID or UUID, or the webinar ID or UUID to access cloud recordings. UUIDs with `/` or `//` require double encoding.
+- **recording_id** (`string`, required) The unique identifier for the recording you wish to delete.
+- **recording_delete_action** (`string`, optional) Specify the action for recording deletion. Use 'trash' to move it to trash or 'delete' to remove permanently.
+
+
+## ZoomMeetingsApi.GetMeetingTranscript
+
+
+
+
+Retrieve a Zoom meeting's transcript information.
+
+**Parameters**
+
+- **meeting_id_or_uuid** (`string`, required) Provide the meeting or webinar ID/UUID to retrieve its transcript. Double encode UUIDs starting with '/' or containing '//' before requesting.
+
+
+## ZoomMeetingsApi.DeleteZoomMeetingTranscript
+
+
+
+
+Delete a transcript for a Zoom meeting or webinar.
+
+**Parameters**
+
+- **meeting_or_webinar_identifier** (`string`, required) Provide the meeting ID or its unique universal identifier (UUID) to delete the transcript. For webinars, use the webinar ID or UUID. Ensure double encoding if the UUID starts with '/' or contains '//'.
+
+
+## ZoomMeetingsApi.ListZoomCloudRecordings
+
+
+
+
+Retrieve a user's Zoom cloud recordings.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user's ID, email address, or 'me' for the current user context.
+- **records_per_page** (`integer`, optional) Specify the number of recordings to return in a single call. Adjust to limit response size.
+- **pagination_next_page_token** (`string`, optional) A token to paginate through large sets of results. It expires after 15 minutes.
+- **meeting_connector_metadata** (`string`, optional) Metadata for recordings using an on-premise meeting connector.
+- **start_date** (`string`, optional) The start date in 'yyyy-mm-dd' UTC format for retrieving recordings. Must be within a month range. Defaults to current date if not specified. Note: Not applicable for trash files.
+- **end_date_utc** (`string`, optional) The end date for retrieving recordings, in 'yyyy-mm-dd' UTC format.
+- **cloud_recording_trash_type** (`string`, optional) Specify the type of cloud recording to retrieve from trash: 'meeting_recordings' for meeting recordings, 'recording_file' for individual files.
+- **meeting_id** (`integer`, optional) The unique identifier for the Zoom meeting. Provide this to filter recordings by a specific meeting.
+- **include_trash_recordings** (`boolean`, optional) Set to true to include recordings from the trash. Defaults to false. Use trash_type for specific types.
+
+
+## ZoomMeetingsApi.ListZoomDevices
+
+
+
+
+Retrieve a list of devices from Zoom.
+
+**Parameters**
+
+- **filter_by_name_or_serial_number** (`string`, optional) Filter devices by providing a name or serial number to narrow the search results.
+- **filter_by_platform_os** (`string`, optional) Filter devices by platform operating system. Options: 'win', 'mac', 'ipad', 'iphone', 'android', 'linux'.
+- **filter_by_device_type** (`integer`, optional) Specify the integer code to filter devices by their type. The options are: `-1` for all Zoom Room devices, `0` for Zoom Rooms Computer, `1` for Zoom Rooms Controller, `2` for Zoom Rooms Scheduling Display, `3` for Zoom Rooms Control System, `4` for Zoom Rooms Whiteboard, `5` for Zoom Phone Appliance, and `6` for Zoom Rooms Computer (with Controller).
+- **filter_by_device_vendor** (`string`, optional) Specify the vendor to filter devices by their manufacturer or brand.
+- **filter_device_by_model** (`string`, optional) Filter results to include only devices matching a specific model. Provide the model name as a string.
+- **device_status_filter** (`integer`, optional) Filter devices by their status: `0` for offline, `1` for online, `-1` for unlinked.
+- **result_limit** (`integer`, optional) Specify the maximum number of records to return in a single call, controlling the data volume retrieved.
+- **pagination_token** (`string`, optional) Token for retrieving the next page of device results. It expires after 15 minutes.
+- **filter_by_zdm_enrollment** (`boolean`, optional) Filter devices by their enrollment in Zoom Device Management (ZDM). Use true for enrolled and false for not enrolled.
+
+
+## ZoomMeetingsApi.GetZoomDeviceManagerGroupInfo
+
+
+
+
+Retrieve Zoom Device Manager group information for an account.
+
+**Parameters**
+
+- **records_per_page** (`integer`, optional) The total number of records to return per API call. Default is 30, with a maximum of 100.
+- **pagination_next_page_token** (`string`, optional) Token to retrieve the next set of results for paginated Zoom Device Manager group data. Valid for 15 minutes.
+
+
+## ZoomMeetingsApi.GetZoomPhoneDeviceSettings
+
+
+
+
+Retrieve user's Zoom Phone Appliance device settings.
+
+**Parameters**
+
+- **user_identifier** (`string`, optional) The Zoom user's ID or email address. Use 'me' for user-level apps to represent the current user.
+
+
+## ZoomMeetingsApi.RemoveZoomDeviceByVendorAndMac
+
+
+
+
+Remove a ZPA device from Zoom by vendor and MAC address.
+
+**Parameters**
+
+- **device_vendor** (`string`, required) The manufacturer's name of the device to be removed from Zoom's device manager.
+- **device_mac_address** (`string`, required) The MAC address of the device to be removed. This identifier is a string and is required for the operation.
+
+
+## ZoomMeetingsApi.GetZoomZpaVersionInfo
+
+
+
+
+Retrieve ZPA firmware and app versions for Zoom devices.
+
+**Parameters**
+
+- **zoom_device_management_group_id** (`string`, required) The ID of the Zoom Device Management (ZDM) group for which you want to retrieve ZPA firmware and app version info.
+
+
+## ZoomMeetingsApi.RetrieveZoomDeviceDetails
+
+
+
+
+Retrieve a Zoom device's details.
+
+**Parameters**
+
+- **device_unique_identifier** (`string`, required) The unique identifier of the Zoom device to retrieve details for.
+
+
+## ZoomMeetingsApi.RemoveZoomDevice
+
+
+
+
+Removes a device from a Zoom account via ZMD.
+
+**Parameters**
+
+- **device_id** (`string`, required) The unique identifier of the device to be removed from the Zoom account. Ensure the device is enrolled in Zoom Device Management (ZMD) before calling.
+
+
+## ZoomMeetingsApi.AssignZoomDeviceToGroup
+
+
+
+
+Assign a Zoom device to a specified group.
+
+**Parameters**
+
+- **zoom_group_id** (`string`, required) The unique identifier for the Zoom group to which the device will be assigned.
+- **zoom_device_id** (`string`, required) The unique identifier for the Zoom device to be assigned to a group.
+
+
+## ZoomMeetingsApi.ListZoomH323SipDevices
+
+
+
+
+Retrieve all H.323/SIP devices on a Zoom account.
+
+**Parameters**
+
+- **records_per_call** (`integer`, optional) The number of records to return in a single API call when listing H.323/SIP devices. Adjust to manage response size.
+- **use_page_number** (`integer`, optional) **Deprecated.** Indicates if the `page_number` should be used for pagination. Use `next_page_token` instead.
+- **pagination_token** (`string`, optional) Token for paginating large result sets. Expires after 15 minutes.
+
+
+## ZoomMeetingsApi.DeleteZoomDevice
+
+
+
+
+Delete a H.323 or SIP device from your Zoom account.
+
+**Parameters**
+
+- **device_id_to_delete** (`string`, required) The unique identifier of the H.323 or SIP device to be deleted from the Zoom account.
+
+
+## ZoomMeetingsApi.DeleteZoomMeetingChatMessage
+
+
+
+
+Delete a live Zoom meeting chat message by ID.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The unique identifier for the meeting. Store this value as a long-format integer since it can exceed 10 digits.
+- **chat_message_uuid_base64** (`string`, required) The unique identifier for the live meeting chat message, encoded in base64 format.
+- **chat_file_ids_base64** (`string`, optional) Base64-encoded IDs of live webinar chat files. Separate multiple values with commas.
+
+
+## ZoomMeetingsApi.ListMeetingSummaries
+
+
+
+
+Retrieve meeting and webinar summaries for an account.
+
+**Parameters**
+
+- **number_of_records_per_call** (`integer`, optional) Specify the number of summaries to return in one API call. This controls the page size.
+- **pagination_next_page_token** (`string`, optional) Token to paginate through large result sets. Expires in 15 minutes.
+- **start_date_utc** (`string`, optional) The start date in UTC format (`yyyy-MM-dd'T'HH:mm:ss'Z'`) to filter meeting summaries by creation date.
+- **end_date_utc** (`string`, optional) The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` UTC format to retrieve meeting summaries within this date range.
+
+
+## ZoomMeetingsApi.GetZoomMeetingDetails
+
+
+
+
+Retrieve details of a specified Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The unique ID of the Zoom meeting. Ensure it is stored as a long format integer due to potential lengths over 10 digits.
+- **meeting_occurrence_id** (`string`, optional) The ID of a specific occurrence of a recurring Zoom meeting. This is needed to retrieve details for that particular occurrence.
+- **show_previous_occurrences** (`boolean`, optional) Set to true to view details of all previous occurrences of a recurring meeting.
+
+
+## ZoomMeetingsApi.DeleteZoomMeeting
+
+
+
+
+Delete a specific Zoom meeting or occurrence.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique identifier for the Zoom meeting. Ensure to handle as a long integer due to potential size exceeding 10 digits.
+- **meeting_occurrence_id** (`string`, optional) The ID for a specific meeting or webinar occurrence. Necessary for deleting a single occurrence in a recurring series.
+- **notify_host_via_email** (`boolean`, optional) Set to `true` to notify the host and alternative host about the meeting cancellation via email. Set to `false` to avoid sending notifications.
+- **notify_registrants_of_cancellation** (`boolean`, optional) Set to true to notify registrants via email about the meeting cancellation; false to send no notification. Defaults to false.
+
+
+## ZoomMeetingsApi.GetZoomMeetingInvitation
+
+
+
+
+Retrieve the invitation note for a Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The ID of the Zoom meeting. Store as a long integer since it can exceed 10 digits.
+
+
+## ZoomMeetingsApi.GetZoomMeetingLiveStreamToken
+
+
+
+
+Obtain a join token for Zoom meeting live streaming.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The ID of the Zoom meeting for which a live stream join token is required. Store as a long integer as IDs can exceed 10 digits.
+
+
+## ZoomMeetingsApi.GetMeetingArchiveToken
+
+
+
+
+Retrieve a meeting's archive token for local archiving.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The Zoom meeting's ID, stored as a long format integer. Can exceed 10 digits.
+
+
+## ZoomMeetingsApi.GetZoomMeetingRecordingJoinToken
+
+
+
+
+Retrieve a join token for Zoom meeting local recording.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique ID of the Zoom meeting. This should be stored as a long format integer to accommodate IDs exceeding 10 digits.
+- **bypass_waiting_room** (`boolean`, optional) Set to true to allow bypassing the waiting room and joining the meeting directly with the recording bot.
+
+
+## ZoomMeetingsApi.GetMeetingLivestreamDetails
+
+
+
+
+Get livestream configuration details for a Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`string`, required) The unique identifier of the Zoom meeting to retrieve livestream details.
+
+
+## ZoomMeetingsApi.GetMeetingSummary
+
+
+
+
+Retrieve the summary of a Zoom meeting or webinar.
+
+**Parameters**
+
+- **meeting_uuid** (`string`, required) The UUID of the meeting or webinar. If it begins with a '/' or contains '//', double-encode before use.
+
+
+## ZoomMeetingsApi.DeleteMeetingOrWebinarSummary
+
+
+
+
+Delete the summary of a meeting or webinar.
+
+**Parameters**
+
+- **meeting_uuid** (`string`, required) The unique ID for the meeting. Double-encode if it starts with '/' or contains '//'.
+
+
+## ZoomMeetingsApi.AddAutoOpenAppToMeeting
+
+
+
+
+Configure an app to auto-open in a scheduled Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The ID of the scheduled Zoom meeting. Ensure it is stored as a long format integer, as meeting IDs can exceed 10 digits.
+
+
+## ZoomMeetingsApi.DeleteMeetingAutoOpenApp
+
+
+
+
+Delete a meeting auto-open app in Zoom.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique identifier for the meeting. Ensure it is stored as a long format integer, as IDs can exceed 10 digits.
+
+
+## ZoomMeetingsApi.ListZoomMeetingPolls
+
+
+
+
+Retrieve all polls for a specified Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The ID of the Zoom meeting. Ensure it is stored as a long format number since IDs can exceed 10 digits.
+- **query_anonymous_polls** (`boolean`, optional) Set to true to query for polls with the Anonymous option enabled. False excludes them.
+
+
+## ZoomMeetingsApi.GetZoomMeetingPollInfo
+
+
+
+
+Retrieve details of a specific Zoom meeting poll.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique ID of the Zoom meeting. Ensure it is stored as a long integer as it can exceed 10 digits.
+- **poll_id** (`string`, required) The unique identifier for the poll within a Zoom meeting. Required to retrieve poll details.
+
+
+## ZoomMeetingsApi.DeleteZoomMeetingPoll
+
+
+
+
+Delete a poll from a Zoom scheduled meeting.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique identifier for the Zoom meeting. Use a long format integer as IDs can exceed 10 digits.
+- **zoom_poll_id** (`string`, required) The unique identifier for the poll to be deleted from a scheduled Zoom meeting. Required for poll deletion.
+
+
+## ZoomMeetingsApi.ListZoomMeetingRegistrants
+
+
+
+
+Retrieve registered users for a Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The ID of the Zoom meeting. Store this as a long integer to accommodate large values over 10 digits.
+- **meeting_occurrence_id** (`string`, optional) The unique identifier for a specific occurrence of a meeting or webinar.
+- **registrant_status** (`string`, optional) Filter registrants by their status: `pending`, `approved`, or `denied`.
+- **number_of_records_per_call** (`integer`, optional) The number of registrant records to return in one API call. Determines the batch size.
+- **pagination_page_number_deprecated** (`integer`, optional) Deprecated. Do not use. Use `next_page_token` for pagination instead.
+- **pagination_next_page_token** (`string`, optional) Use this token to paginate through results. It expires in 15 minutes.
+
+
+## ZoomMeetingsApi.GetZoomMeetingRegistrationQuestions
+
+
+
+
+Retrieve registration questions for a Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The unique ID of the Zoom meeting. It should be stored as a long format integer to accommodate IDs that may exceed 10 digits.
+
+
+## ZoomMeetingsApi.GetMeetingRegistrantDetails
+
+
+
+
+Retrieve details of a Zoom meeting registrant.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique ID of the Zoom meeting. Use a long integer format to ensure accuracy as IDs can exceed 10 digits.
+- **registrant_id** (`string`, required) The ID of the registrant whose details are to be retrieved.
+
+
+## ZoomMeetingsApi.DeleteMeetingRegistrant
+
+
+
+
+Remove a registrant from a Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique identifier for the Zoom meeting.
+- **registrant_id** (`string`, required) The unique identifier for the meeting registrant to be deleted.
+- **meeting_occurrence_id** (`string`, optional) The ID for a specific occurrence of a recurring Zoom meeting. Required if `registration_type` is 2 or 3.
+
+
+## ZoomMeetingsApi.GetMeetingSurveyInfo
+
+
+
+
+Retrieve details about a Zoom meeting survey.
+
+**Parameters**
+
+- **meeting_id** (`integer`, required) The unique identifier for a Zoom meeting. Should be stored as a long-format integer to accommodate IDs longer than 10 digits.
+
+
+## ZoomMeetingsApi.DeleteZoomMeetingSurvey
+
+
+
+
+Delete a scheduled Zoom meeting survey.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The ID of the scheduled Zoom meeting. Store as a long format integer due to its potential size exceeding 10 digits.
+
+
+## ZoomMeetingsApi.GetZoomMeetingCaptionToken
+
+
+
+
+Retrieve a closed caption token for a Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_id** (`integer`, required) The ID of the Zoom meeting. Store as a long format integer, since meeting IDs can exceed 10 digits.
+- **meeting_token_type** (`string`, optional) The type of meeting token to retrieve, defaults to 'closed_caption_token'.
+
+
+## ZoomMeetingsApi.GetPastMeetingDetails
+
+
+
+
+Fetch details of a past Zoom meeting.
+
+**Parameters**
+
+- **meeting_identifier** (`string`, required) The ID or UUID of the meeting. Double encode if UUID starts with '/' or contains '//'
+
+
+## ZoomMeetingsApi.GetPastZoomMeetings
+
+
+
+
+Retrieve past instances of Zoom meetings.
+
+**Parameters**
+
+- **past_meeting_id** (`integer`, required) The ID of the past meeting to retrieve instances for. Must be a meeting that has concluded within the past 15 months.
+
+
+## ZoomMeetingsApi.GetPastMeetingParticipants
+
+
+
+
+Retrieve participants from a past Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`string`, required) The meeting's ID or UUID. If UUID begins with '/' or contains '//', double-encode before using.
+- **number_of_records_per_page** (`integer`, optional) The number of participant records to return in a single API call for a past meeting.
+- **pagination_next_page_token** (`string`, optional) Token for paginating through large result sets, expires after 15 minutes.
+
+
+## ZoomMeetingsApi.ListPastMeetingPolls
+
+
+
+
+Retrieve poll results for a past Zoom meeting.
+
+**Parameters**
+
+- **meeting_id** (`string`, required) The meeting's ID or UUID. Double-encode UUIDs with '/' or '//' before making a request.
+
+
+## ZoomMeetingsApi.GetZoomPastMeetingQa
+
+
+
+
+Retrieve Q&A from a specific past Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_identifier** (`string`, required) The meeting ID or UUID. Double-encode UUIDs starting with '/' or containing '//'.
+
+
+## ZoomMeetingsApi.ListZoomMeetingTemplates
+
+
+
+
+Retrieve Zoom meeting templates for a user.
+
+**Parameters**
+
+- **zoom_user_id** (`string`, required) The user ID to retrieve meeting templates. Use 'me' for user-level apps.
+
+
+## ZoomMeetingsApi.ListZoomScheduledMeetings
+
+
+
+
+Retrieve a Zoom user's scheduled meetings.
+
+**Parameters**
+
+- **zoom_user_identifier** (`string`, required) The user's Zoom ID, email, or 'me' for user-level apps to list scheduled meetings.
+- **meeting_type** (`string`, optional) Specify the type of meeting to retrieve: 'scheduled', 'live', 'upcoming', 'upcoming_meetings', or 'previous_meetings'.
+- **records_per_page** (`integer`, optional) The number of meeting records to return in each API call. Helps paginate results for larger datasets.
+- **pagination_next_page_token** (`string`, optional) Token to paginate through large result sets. Expires in 15 minutes.
+- **current_page_number** (`integer`, optional) The current page number for the returned records when fetching scheduled meetings.
+- **start_date** (`string`, optional) Specify the start date for listing meetings. Format should be 'YYYY-MM-DD'.
+- **end_date** (`string`, optional) The end date for retrieving scheduled meetings. Format should be YYYY-MM-DD.
+- **meeting_timezone** (`string`, optional) Specify the timezone for the 'from' and 'to' date values. Refer to the Zoom API timezone list for supported formats.
+
+
+## ZoomMeetingsApi.ListUpcomingZoomMeetings
+
+
+
+
+Fetches upcoming Zoom meetings for a user.
+
+**Parameters**
+
+- **zoom_user_identifier** (`string`, required) The Zoom user's ID or email. Use 'me' for user-level apps to refer to the current user.
+
+
+## ZoomMeetingsApi.GetUserAudioConferences
+
+
+
+
+Retrieve a list of user's personal audio conference accounts.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user's ID or email. Use 'me' for user-level apps to represent the current user.
+
+
+## ZoomMeetingsApi.GetZoomUserActivityLogs
+
+
+
+
+Retrieve Zoom user sign in and sign out activity reports.
+
+**Parameters**
+
+- **start_date** (`string`, optional) Start date for the activity logs report, in YYYY-MM-DD format. Must be within the last six months.
+- **end_date_for_activity_logs** (`string`, optional) The end date up to which to view the activity logs report. Must specify within the last six months.
+- **records_per_page** (`integer`, optional) Specifies the number of activity log records to retrieve in one API call. Adjust for batch processing of data.
+- **pagination_next_page_token** (`string`, optional) Token used for paginating through large sets of user activity logs. Use the token received from the previous response to access the next set of results.
+
+
+## ZoomMeetingsApi.GetZoomBillingReport
+
+
+
+
+Retrieve Zoom account department billing reports.
+
+**Parameters**
+
+This tool does not take any parameters.
+
+## ZoomMeetingsApi.FetchZoomBillingInvoices
+
+
+
+
+Retrieve billing invoices reports for a specific billing period.
+
+**Parameters**
+
+- **billing_report_id** (`string`, required) Unique identifier for the billing report. Acquire this ID from the response of the Get Billing Reports API.
+
+
+## ZoomMeetingsApi.GetZoomCloudRecordingReport
+
+
+
+
+Retrieve Zoom cloud recording usage report for a date range.
+
+**Parameters**
+
+- **start_date** (`string`, required) Start date in 'yyyy-mm-dd' format. It must be up to 30 days before the end date and within the past six months.
+- **end_date** (`string`, required) End date in 'yyyy-mm-dd' format. Must be within one month of the start date and within the last six months.
+- **group_identifier** (`string`, optional) The unique string ID of the group to retrieve cloud recording reports for. Obtainable via the List groups API.
+
+
+## ZoomMeetingsApi.GetZoomDailyReport
+
+
+
+
+Retrieve daily Zoom usage statistics for account-wide overview.
+
+**Parameters**
+
+- **report_year** (`integer`, optional) The year for which the Zoom usage report is requested. Must be a valid integer year.
+- **report_month** (`integer`, optional) The month (1-12) for the report. Specify as an integer.
+- **zoom_group_id** (`string`, optional) The ID of the Zoom group for which you want to retrieve the usage report. Use the 'List groups' API to find the ID. The report will only include users in this group.
+
+
+## ZoomMeetingsApi.GetZoomHistoryMeetings
+
+
+
+
+Retrieve a list of historical Zoom meetings and webinars.
+
+**Parameters**
+
+- **start_date** (`string`, required) The start date for the report in `yyyy-mm-dd` format. Ensure the date range is within one month.
+- **end_date** (`string`, required) The end date for the query in `yyyy-mm-dd` format. It defines the end of the one-month date range for the report.
+- **query_date_type** (`string`, optional) Specifies whether to query by meeting's start time or end time. Use 'start_time' for start time and 'end_time' for end time. Defaults to 'start_time'.
+- **query_meeting_type** (`string`, optional) Specifies the type of meeting to query: 'all' for both meetings and webinars, 'meeting' for meetings only, and 'webinar' for webinars only.
+- **report_type** (`string`, optional) Specify the type of report to query: all, poll, survey, qa, resource, or reaction.
+- **search_keywords** (`string`, optional) Keywords for the meeting topic or meeting ID to filter the historical Zoom meetings and webinars.
+- **number_of_records_per_call** (`integer`, optional) The maximum number of records to return in a single API call. Helps manage large data sets.
+- **pagination_next_page_token** (`string`, optional) Token for pagination of large result sets. Expires in 15 minutes.
+- **group_identifier** (`string`, optional) The unique group ID to query members. Use the List groups API to obtain this ID. Only includes users from the specified group.
+- **query_meeting_features** (`string`, optional) Comma-separated list of meeting features to filter historical meetings. Options include features like `screen_sharing`, `video_on`, `poll`, etc.
+
+
+## ZoomMeetingsApi.GetMeetingActivityLogs
+
+
+
+
+Retrieve a list of meeting activity logs from Zoom.
+
+**Parameters**
+
+- **start_date** (`string`, required) The start date for the report in 'yyyy-MM-dd' format. Ensure the range with 'to' is only one month.
+- **end_date** (`string`, required) The end date for fetching meeting activity logs in 'yyyy-MM-dd' format. Must be within one month of the start date.
+- **activity_type** (`string`, required) Specify the type of activity to filter logs. Options: All Activities, Meeting Created, Meeting Started, User Join, User Left, Remote Control, In-Meeting Chat, Meeting Ended.
+- **number_of_records_per_call** (`integer`, optional) Specify the number of records to be returned in a single API call. Adjust according to data needs and rate limits.
+- **pagination_token** (`string`, optional) Token for paginating through large sets of results. Expires in 15 minutes.
+- **meeting_number** (`string`, optional) The unique identifier for the Zoom meeting. Required to fetch activity logs.
+- **operator_name_or_email** (`string`, optional) An operator's name or email used to filter the meeting activity logs.
+
+
+## ZoomMeetingsApi.GetZoomMeetingReport
+
+
+
+
+Retrieve a detailed report for a past Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_identifier** (`string`, required) The meeting's ID or UUID. Double encode UUIDs starting with '/' or containing '//'.
+
+
+## ZoomMeetingsApi.GetZoomMeetingParticipantsReport
+
+
+
+
+Get a report of past Zoom meeting participants.
+
+**Parameters**
+
+- **meeting_identifier** (`string`, required) The ID or UUID of the Zoom meeting. For meeting UUIDs starting with '/' or containing '//', double-encode before requesting.
+- **records_per_page** (`integer`, optional) The number of participant records to return in a single API call.
+- **pagination_next_page_token** (`string`, optional) Token for fetching the next page of large result sets. Expires in 15 minutes.
+- **include_registrant_id_in_report** (`string`, optional) Include 'registrant_id' in the response to see registrant ID attributes.
+
+
+## ZoomMeetingsApi.GetZoomMeetingPollReport
+
+
+
+
+Fetches a report of poll results for a past Zoom meeting.
+
+**Parameters**
+
+- **zoom_meeting_identifier** (`string`, required) The meeting's ID or UUID. If the UUID begins with '/' or contains '//', double encode it.
+
+
+## ZoomMeetingsApi.ZoomReportMeetingQa
+
+
+
+
+Retrieve a report on past Zoom meeting Q&A sessions.
+
+**Parameters**
+
+- **meeting_identifier** (`string`, required) Meeting's ID or UUID. Double-encode UUIDs if they begin with '/' or contain '//'.
+
+
+## ZoomMeetingsApi.GetZoomMeetingSurveyReport
+
+
+
+
+Retrieve report details of a Zoom meeting survey.
+
+**Parameters**
+
+- **meeting_identifier** (`string`, required) The ID or UUID of the Zoom meeting. Double-encode UUIDs with '/' or '//' characters.
+
+
+## ZoomMeetingsApi.RetrieveZoomOperationLogs
+
+
+
+
+Retrieve Zoom operation logs for auditing admin and user activity.
+
+**Parameters**
+
+- **start_date_for_report** (`string`, required) Start date for the report in 'yyyy-mm-dd' or 'yyyy-MM-dd HH:mm' format. The report covers a one-month period.
+- **end_date** (`string`, required) End date for the report in 'yyyy-mm-dd' or 'yyyy-MM-dd HH:mm' format, marking the close of the desired data range.
+- **records_per_page** (`integer`, optional) Specify the number of records to return in a single call, optimizing pagination for large datasets.
+- **pagination_next_page_token** (`string`, optional) Token for paginating large result sets in operation logs. Expires in 15 minutes.
+- **filter_by_category_type** (`string`, optional) Optional argument to filter the response by specific category type, such as 'all', 'user', or 'recording'.
+
+
+## ZoomMeetingsApi.GetZoomTelephoneReport
+
+
+
+
+Retrieve Zoom telephone report for specified meetings.
+
+**Parameters**
+
+- **start_date** (`string`, required) Start date for the report in 'yyyy-mm-dd' format. The date range should cover only one month.
+- **end_date** (`string`, required) The end date for the report in 'yyyy-mm-dd' format. It should be within one month of the start date.
+- **audio_type** (`string`, optional) Specify the type of audio. Options: '1' for Toll-free Call-in & Call-out, '2' for Toll, or '3' for SIP Connected Audio.
+- **date_query_type** (`string`, optional) Specifies the date type for the report query. Options: 'start_time', 'end_time', 'meeting_start_time', or 'meeting_end_time'. Defaults to 'start_time'.
+- **records_per_page** (`integer`, optional) Specify the number of records to return in a single API call. Useful for managing large data sets efficiently.
+- **pagination_page_number** (`integer`, optional) Deprecated. Use the page number for current records pagination unless using 'meeting_start_time' or 'meeting_end_time'.
+- **pagination_next_page_token** (`string`, optional) Token for retrieving the next set of results in large data sets. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.ListZoomUpcomingEvents
+
+
+
+
+Retrieve upcoming Zoom meetings and webinars.
+
+**Parameters**
+
+- **start_date** (`string`, required) Start date in 'yyyy-mm-dd' format. The date range with 'end_date' should be within one month.
+- **end_date** (`string`, required) The end date for the report in 'yyyy-mm-dd' format, within one month of the start date.
+- **records_per_page** (`integer`, optional) Number of records to return in a single API call, used for paginating results.
+- **pagination_token** (`string`, optional) Token for paginating through large result sets, expires in 15 minutes.
+- **event_type_to_query** (`string`, optional) Specify the type of Zoom event to query: 'meeting', 'webinar', or 'all'. Defaults to 'all'.
+- **group_identifier** (`string`, optional) The ID of the group for filtering events to include only those where the host is a member. Obtainable via the Zoom 'List groups' API.
+
+
+## ZoomMeetingsApi.GetZoomHostReport
+
+
+
+
+Retrieve Zoom host activity reports for a specified period.
+
+**Parameters**
+
+- **start_date** (`string`, required) Start date of the report in 'yyyy-mm-dd' format. The date range for the report must be within one month.
+- **end_date** (`string`, required) End date for the report in 'yyyy-mm-dd' format. Must be at most one month after the 'from' date.
+- **host_activity_type** (`string`, optional) Specify 'active' for active hosts or 'inactive' for inactive hosts.
+- **record_count_per_api_call** (`integer`, optional) Specify the number of records to return in each API call, controlling the data amount per request.
+- **current_page_number** (`integer`, optional) The page number to retrieve for the host activity report.
+- **next_page_pagination_token** (`string`, optional) Token for paginating large result sets in host reports, with a 15-minute expiration.
+- **zoom_group_id** (`string`, optional) The ID for the group. Use the List groups API to obtain this, as the response includes only users in the specified group.
+
+
+## ZoomMeetingsApi.GetZoomMeetingReports
+
+
+
+
+Retrieve details of past Zoom meetings and webinars.
+
+**Parameters**
+
+- **report_start_date** (`string`, required) Start date for the report in 'yyyy-mm-dd' format. Ensure the date range with 'to' is within one month.
+- **end_date** (`string`, required) The end date of the report in 'yyyy-mm-dd' format. The date range should be within one month of the start date and must fall within the past six months.
+- **zoom_user_identifier** (`string`, required) The user ID or email address to identify the user. Use 'me' for user-level apps.
+- **number_of_records_per_page** (`integer`, optional) The number of records to return in a single API call. Determines the page size for report data retrieval.
+- **pagination_token** (`string`, optional) Token to paginate through large result sets, expiring after 15 minutes.
+- **meeting_type** (`string`, optional) Specify the type of past meetings to query. Options: 'past' for all past meetings, 'pastOne' for a single past user meeting, 'pastJoined' for all past meetings the account's users hosted or joined.
+
+
+## ZoomMeetingsApi.GetZoomWebinarReport
+
+
+
+
+Retrieve details of a past Zoom webinar.
+
+**Parameters**
+
+- **webinar_identifier** (`string`, required) The ID or UUID of the webinar. Use webinar ID for latest instance or UUID, which may need double encoding if it starts with '/' or contains '//'.
+
+
+## ZoomMeetingsApi.GetWebinarParticipantReport
+
+
+
+
+Retrieve detailed report on webinar attendees.
+
+**Parameters**
+
+- **webinar_identifier** (`string`, required) The webinar's ID or UUID. Double-encode UUIDs starting with '/' or containing '//'.
+- **number_of_records_per_call** (`integer`, optional) Specifies the number of records to return in a single API call for webinar participant reports.
+- **pagination_token** (`string`, optional) Token for paginating through large sets of webinar participant data. Expires in 15 minutes.
+- **include_registrant_id** (`string`, optional) Specify if the registrant's unique ID should be included in the webinar participant report.
+
+
+## ZoomMeetingsApi.RetrieveZoomWebinarPollsReport
+
+
+
+
+Retrieve report on past webinar polls for a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`string`, required) The webinar's ID or UUID. If using a UUID starting with '/' or containing '//', double-encode it.
+
+
+## ZoomMeetingsApi.GetZoomWebinarQaReport
+
+
+
+
+Retrieve report on questions and answers from Zoom webinars.
+
+**Parameters**
+
+- **webinar_identifier** (`string`, required) The ID or UUID of the webinar. Double-encode if UUID starts with '/' or contains '//'.
+
+
+## ZoomMeetingsApi.GetZoomWebinarSurveyReport
+
+
+
+
+Retrieve a report on past webinar survey results.
+
+**Parameters**
+
+- **zoom_webinar_id** (`string`, required) The ID or UUID of the webinar. If using a UUID starting with '/' or containing '//', double-encode it.
+
+
+## ZoomMeetingsApi.ListSipPhones
+
+
+
+
+Retrieve a list of SIP phones on a Zoom account.
+
+**Parameters**
+
+- **user_identifier** (`string`, optional) A user's username or email to filter SIP phone integrations for that specific user.
+- **records_per_page** (`integer`, optional) The number of SIP phone records to return in a single API call. Adjust for desired page size.
+- **pagination_token** (`string`, optional) Token for paginating through large SIP phone result sets. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.DeleteZoomSipPhone
+
+
+
+
+Delete a SIP phone from a Zoom account.
+
+**Parameters**
+
+- **sip_phone_id** (`string`, required) The unique identifier for the SIP phone to be deleted, obtainable from the List SIP phones API.
+
+
+## ZoomMeetingsApi.GetTspInfo
+
+
+
+
+Retrieve Telephony Service Provider (TSP) info for an account.
+
+**Parameters**
+
+This tool does not take any parameters.
+
+## ZoomMeetingsApi.ListUserTspAccounts
+
+
+
+
+Retrieve a user's TSP accounts on Zoom.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user ID or email address of the user. Use 'me' for user-level apps.
+
+
+## ZoomMeetingsApi.GetUserTspDetails
+
+
+
+
+Retrieve TSP account details for a specific Zoom user.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user ID or email address of the user. Use 'me' for user-level apps.
+- **tsp_account_id** (`string`, required) The ID of the TSP account to retrieve details for. It can either be '1' or '2'.
+
+
+## ZoomMeetingsApi.DeleteUserTspAccount
+
+
+
+
+Delete a user's Telephony Service Provider account.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) Specify the user's ID or email. Use 'me' for user-level apps to identify the current user.
+- **tsp_account_id** (`string`, required) The ID of the TSP account to be deleted, specified as a string.
+
+
+## ZoomMeetingsApi.ListZoomTrackingFields
+
+
+
+
+Retrieve all tracking fields from your Zoom account.
+
+**Parameters**
+
+This tool does not take any parameters.
+
+## ZoomMeetingsApi.GetZoomTrackingFieldInfo
+
+
+
+
+Retrieve details about a specific Zoom tracking field.
+
+**Parameters**
+
+- **tracking_field_id** (`string`, required) The unique identifier for the Zoom tracking field you want to retrieve information about. Must be a string.
+
+
+## ZoomMeetingsApi.DeleteZoomTrackingField
+
+
+
+
+Delete a tracking field in Zoom.
+
+**Parameters**
+
+- **tracking_field_id** (`string`, required) The unique identifier of the tracking field to be deleted in Zoom. Required for the deletion process.
+
+
+## ZoomMeetingsApi.DeleteWebinarChatMessage
+
+
+
+
+Delete a message from a live Zoom webinar by ID.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the webinar from which to delete the chat message. This should be an integer.
+- **webinar_chat_message_id** (`string`, required) The unique identifier for the webinar chat message to delete, encoded in base64 format.
+- **webinar_chat_file_uuids** (`string`, optional) Comma-separated base64-encoded UUIDs for the live webinar chat files to identify specific chat data files.
+
+
+## ZoomMeetingsApi.GetWebinarAbsentees
+
+
+
+
+Retrieve a list of absentees from a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id_or_uuid** (`string`, required) The webinar's ID or UUID. If using a UUID starting with '/' or containing '//', double encode it.
+- **webinar_occurrence_id** (`string`, optional) The ID of the specific webinar occurrence to retrieve absentees for.
+- **number_of_records_per_call** (`integer`, optional) The number of records to return in a single API call.
+- **pagination_next_page_token** (`string`, optional) Token for pagination to access the next set of results. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.ListPastWebinars
+
+
+
+
+Retrieve details of past Zoom webinar instances.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for a specific Zoom webinar. It should be an integer value.
+
+
+## ZoomMeetingsApi.RetrieveWebinarParticipants
+
+
+
+
+Retrieve participants of a past Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`string`, required) The ID or UUID of the webinar. If it starts with '/' or contains '//' ensure it is double encoded.
+- **number_of_records_per_call** (`integer`, optional) Specify the number of participant records to retrieve in a single API call. This helps control the size of each data page.
+- **pagination_token_for_participants** (`string`, optional) Token to fetch the next page of webinar participants. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.GetWebinarPollResults
+
+
+
+
+Retrieve poll results from a past webinar.
+
+**Parameters**
+
+- **webinar_id** (`string`, required) The ID or UUID of the webinar. Use a double-encoded UUID if it contains '/' or '//'.
+
+
+## ZoomMeetingsApi.ListWebinarQa
+
+
+
+
+Retrieve Q&A from a past webinar on Zoom.
+
+**Parameters**
+
+- **webinar_identifier** (`string`, required) The ID or UUID of the webinar. If using a UUID with '/' or '//', double encode before use.
+
+
+## ZoomMeetingsApi.ListZoomWebinarTemplates
+
+
+
+
+Retrieve a list of a user's Zoom webinar templates.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user's unique ID. Use 'me' for user-level apps to identify the current user.
+
+
+## ZoomMeetingsApi.ListZoomWebinars
+
+
+
+
+Retrieve all scheduled webinars for a Zoom user.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The user's ID or email address. For user-level apps, use 'me' to refer to the authenticated user.
+- **webinar_type** (`string`, optional) Specify the type of webinars to list. Choose 'scheduled' for unexpired, live, and upcoming scheduled webinars, or 'upcoming' for all upcoming webinars, including live ones.
+- **webinar_list_page_size** (`integer`, optional) The number of webinar records to return in a single API call for the Zoom user. Adjust for pagination needs.
+- **next_page_token** (`integer`, optional) Use this token for pagination instead of the deprecated page_number field.
+
+
+## ZoomMeetingsApi.GetZoomWebinarDetails
+
+
+
+
+Retrieve details for a scheduled Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`string`, required) The Zoom webinar's ID or universally unique identifier (UUID) to fetch the specific webinar details.
+- **recurring_webinar_occurrence_id** (`string`, optional) Unique identifier for a specific occurrence of a recurring webinar. Used to retrieve details for that occurrence.
+- **show_previous_occurrences** (`boolean`, optional) Set to true to view details of all previous occurrences of a recurring webinar.
+
+
+## ZoomMeetingsApi.DeleteWebinar
+
+
+
+
+Delete a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the Zoom webinar to be deleted. This is required to specify which webinar should be removed.
+- **webinar_occurrence_id** (`string`, optional) The ID of the specific webinar occurrence to delete. Required for webinars with multiple occurrences.
+- **send_cancellation_notifications** (`boolean`, optional) Set to true to email panelists and registrants about webinar cancellation. Defaults to false.
+
+
+## ZoomMeetingsApi.GetWebinarBrandingInfo
+
+
+
+
+Retrieve webinar session branding information.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the webinar for which to retrieve session branding information. This is required and must be a valid integer.
+
+
+## ZoomMeetingsApi.DeleteWebinarNameTag
+
+
+
+
+Delete a Zoom webinar's branding name tag.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the Zoom webinar from which the branding name tag should be deleted.
+- **name_tag_ids** (`string`, optional) Comma-separated list of name tag IDs to delete for a webinar.
+
+
+## ZoomMeetingsApi.DeleteWebinarVirtualBackground
+
+
+
+
+Delete a webinar's virtual background.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the webinar for which the virtual background should be deleted. This ID is required.
+- **virtual_background_file_ids** (`string`, optional) Provide a comma-separated list of virtual background file IDs to be deleted from the webinar.
+
+
+## ZoomMeetingsApi.SetWebinarVirtualBackground
+
+
+
+
+Set a webinar's virtual background branding.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar to update the virtual background branding.
+- **virtual_background_file_id** (`string`, optional) The ID of the virtual background file to update for the webinar.
+- **set_default_virtual_background_for_all_panelists** (`boolean`, optional) Whether to set the virtual background as the default for all panelists, including those without a current default background.
+
+
+## ZoomMeetingsApi.RemoveWebinarBrandingWallpaper
+
+
+
+
+Remove a webinar's branding wallpaper file.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier of the webinar whose branding wallpaper you want to delete.
+
+
+## ZoomMeetingsApi.GetWebinarLiveStreamingJoinToken
+
+
+
+
+Retrieve a Zoom webinar's join token for live streaming.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar. This is required to retrieve the live streaming join token.
+
+
+## ZoomMeetingsApi.GetWebinarArchiveToken
+
+
+
+
+Get a webinar's archive token for local archiving.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar whose archive token is to be retrieved. This ID is necessary to obtain access to the webinar's raw media streams.
+
+
+## ZoomMeetingsApi.GetZoomWebinarLocalRecordingToken
+
+
+
+
+Retrieve Zoom webinar join token for local recording.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the Zoom webinar to retrieve the join token for local recording.
+
+
+## ZoomMeetingsApi.GetWebinarLivestreamDetails
+
+
+
+
+Retrieve live stream details for a Zoom webinar.
+
+**Parameters**
+
+- **webinar_unique_id** (`string`, required) The unique identifier for the webinar to retrieve live stream details.
+
+
+## ZoomMeetingsApi.ListZoomWebinarPanelists
+
+
+
+
+Retrieve a list of panelists for a specific Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the Zoom webinar.
+
+
+## ZoomMeetingsApi.RemoveWebinarPanelists
+
+
+
+
+Remove all panelists from a specified Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar from which you want to remove all panelists. This should be an integer.
+
+
+## ZoomMeetingsApi.RemoveWebinarPanelist
+
+
+
+
+Remove a panelist from a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar from which the panelist will be removed. This should be an integer value.
+- **panelist_identifier** (`string`, required) The ID or email of the panelist to remove from the webinar. Obtain from the List Panelists API.
+
+
+## ZoomMeetingsApi.ListWebinarPollsZoom
+
+
+
+
+Retrieve all polls from a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The ID of the Zoom webinar for which to retrieve polls.
+- **query_anonymous_polls** (`boolean`, optional) Set to true to query polls with the Anonymous option enabled. Set to false to exclude them.
+
+
+## ZoomMeetingsApi.GetWebinarPollDetails
+
+
+
+
+Fetches details of a webinar poll from Zoom.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier of the webinar for which the poll details are being requested. This is required to fetch the poll data.
+- **poll_id** (`string`, required) The unique identifier for the specific webinar poll. This is required to fetch the poll details.
+
+
+## ZoomMeetingsApi.DeleteWebinarPoll
+
+
+
+
+Delete a poll from a specific webinar on Zoom.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar from which the poll should be deleted.
+- **poll_id** (`string`, required) The unique identifier for the poll to be deleted from the webinar.
+
+
+## ZoomMeetingsApi.ListZoomWebinarRegistrants
+
+
+
+
+Retrieve a list of registrants for a specified Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the webinar for which registrants are being retrieved. This is required for the request.
+- **webinar_occurrence_id** (`string`, optional) The unique identifier for a specific occurrence of the webinar. Use this ID to specify which instance of a recurring webinar you are querying.
+- **registrant_status** (`string`, optional) Filter registrants by status: 'pending' for those awaiting approval, 'approved' for accepted registrants, or 'denied' for rejected applications.
+- **registrants_tracking_source_id** (`string`, optional) The tracking source ID for webinar registrants, indicating the registration page location.
+- **number_of_records_per_call** (`integer`, optional) The number of registrant records to return within a single API call. This helps control the size of the response.
+- **deprecated_page_number** (`integer`, optional) Deprecated. This field will be deprecated and is no longer supported in future releases. Use 'next_page_token' for pagination instead.
+- **pagination_next_page_token** (`string`, optional) Token for paginating through webinar registrant results when the available set exceeds the current page size. Expires in 15 minutes.
+
+
+## ZoomMeetingsApi.GetWebinarRegistrationQuestions
+
+
+
+
+Retrieve registration questions for webinar attendees.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar. It is required to retrieve the registration questions.
+
+
+## ZoomMeetingsApi.GetWebinarRegistrantDetails
+
+
+
+
+Retrieve details for a specific Zoom webinar registrant.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the webinar for which registrant details are needed.
+- **registrant_id** (`string`, required) The unique identifier for the webinar registrant. Required to fetch the registrant's details.
+- **webinar_occurrence_id** (`string`, optional) The unique identifier for a specific occurrence of the webinar to fetch registrant details.
+
+
+## ZoomMeetingsApi.RemoveWebinarRegistrant
+
+
+
+
+Remove a registrant from a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the specific Zoom webinar from which the registrant will be removed.
+- **registrant_id** (`string`, required) The unique identifier of the registrant to be removed from the webinar.
+- **webinar_occurrence_id** (`string`, optional) The unique identifier for the specific webinar occurrence.
+
+
+## ZoomMeetingsApi.GetWebinarSurveyInfo
+
+
+
+
+Retrieve details about a Zoom webinar survey.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique ID of the Zoom webinar for which you want to retrieve survey details.
+
+
+## ZoomMeetingsApi.DeleteZoomWebinarSurvey
+
+
+
+
+Delete a Zoom webinar survey.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier for the webinar to delete its survey. This must be a valid integer ID from Zoom.
+
+
+## ZoomMeetingsApi.GetWebinarCaptionToken
+
+
+
+
+Retrieve a closed caption token for a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The ID of the webinar for which the closed caption token is requested.
+- **webinar_token_type** (`string`, optional) The type of token needed for the webinar. Only 'closed_caption_token' is supported for third-party closed caption API access. Defaults to 'closed_caption_token'.
+
+
+## ZoomMeetingsApi.GetWebinarTrackingSources
+
+
+
+
+List tracking sources for a Zoom webinar.
+
+**Parameters**
+
+- **webinar_id** (`integer`, required) The unique identifier of the Zoom webinar for which you want to list tracking sources. Ensure the webinar has registration enabled.
+
+
+
+
+
\ No newline at end of file
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.js
new file mode 100644
index 000000000..1b13ff145
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.AddAutoOpenAppToMeeting";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 123456789012
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.py
new file mode 100644
index 000000000..a569d87b0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/add_auto_open_app_to_meeting_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.AddAutoOpenAppToMeeting"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 123456789012
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.js
new file mode 100644
index 000000000..45a592eef
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.AssignZoomDeviceToGroup";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_group_id": "grp_9a8b7c6d",
+ "zoom_device_id": "dev_12345abcde"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.py
new file mode 100644
index 000000000..042405d2f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/assign_zoom_device_to_group_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.AssignZoomDeviceToGroup"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_group_id': 'grp_9a8b7c6d', 'zoom_device_id': 'dev_12345abcde'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.js
new file mode 100644
index 000000000..b913ed9af
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingArchivedFiles";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_uuid": "abcd1234-ef56-7890-gh12-ijklmnopqrst"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.py
new file mode 100644
index 000000000..545688400
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_archived_files_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingArchivedFiles"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_uuid': 'abcd1234-ef56-7890-gh12-ijklmnopqrst'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.js
new file mode 100644
index 000000000..c1d44561c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingAutoOpenApp";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 1234567890123
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.py
new file mode 100644
index 000000000..a9aac54f4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_auto_open_app_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingAutoOpenApp"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 1234567890123
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.js
new file mode 100644
index 000000000..518cddf4c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingOrWebinarSummary";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_uuid": "abc123-def456"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.py
new file mode 100644
index 000000000..3fca17228
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_or_webinar_summary_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingOrWebinarSummary"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_uuid': 'abc123-def456'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.js
new file mode 100644
index 000000000..1dffa96eb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingRegistrant";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 987654321,
+ "registrant_id": "a1b2c3d4e5",
+ "meeting_occurrence_id": "occ-2025-10-01"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.py
new file mode 100644
index 000000000..e21304d0e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_meeting_registrant_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteMeetingRegistrant"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 987654321, 'registrant_id': 'a1b2c3d4e5', 'meeting_occurrence_id': 'occ-2025-10-01'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.js
new file mode 100644
index 000000000..f8f04199d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteUserTspAccount";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "user@example.com",
+ "tsp_account_id": "tsp_12345"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.py
new file mode 100644
index 000000000..53135656a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_user_tsp_account_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteUserTspAccount"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'user@example.com', 'tsp_account_id': 'tsp_12345'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.js
new file mode 100644
index 000000000..bcffeeddc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarChatMessage";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "webinar_chat_message_id": "YmFzZTY0LW1zZy1pZA==",
+ "webinar_chat_file_uuids": "ZmlsZTEtdXVpZA==,ZmlsZTItdXVpZA=="
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.py
new file mode 100644
index 000000000..6e2860dc2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_chat_message_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarChatMessage"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789,
+ 'webinar_chat_message_id': 'YmFzZTY0LW1zZy1pZA==',
+ 'webinar_chat_file_uuids': 'ZmlsZTEtdXVpZA==,ZmlsZTItdXVpZA=='
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.js
new file mode 100644
index 000000000..9a3b45867
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteWebinar";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "webinar_occurrence_id": "occ_2025-10-15_01",
+ "send_cancellation_notifications": true
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.py
new file mode 100644
index 000000000..987316a65
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteWebinar"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321,
+ 'webinar_occurrence_id': 'occ_2025-10-15_01',
+ 'send_cancellation_notifications': True
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.js
new file mode 100644
index 000000000..b34c2c626
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarNameTag";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "name_tag_ids": "12345,67890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.py
new file mode 100644
index 000000000..6eb86c1d8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_name_tag_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarNameTag"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321, 'name_tag_ids': '12345,67890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.js
new file mode 100644
index 000000000..50c1f1631
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarPoll";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "poll_id": "abc123-poll"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.py
new file mode 100644
index 000000000..24a1d5c95
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_poll_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarPoll"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789, 'poll_id': 'abc123-poll'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.js
new file mode 100644
index 000000000..f446c6e78
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarVirtualBackground";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "virtual_background_file_ids": "vb_12345,vb_67890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.py
new file mode 100644
index 000000000..d00f275d9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_webinar_virtual_background_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteWebinarVirtualBackground"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321, 'virtual_background_file_ids': 'vb_12345,vb_67890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.js
new file mode 100644
index 000000000..297886133
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomDevice";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "device_id_to_delete": "h323-abc123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.py
new file mode 100644
index 000000000..cabd0cc10
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_device_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomDevice"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'device_id_to_delete': 'h323-abc123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.js
new file mode 100644
index 000000000..f8f458300
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingChatMessage";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 1234567890123,
+ "chat_message_uuid_base64": "bWVzc2FnZV91dWlkX2Jhc2U2NA==",
+ "chat_file_ids_base64": "ZmlsZV8xX2Jhc2U2NCxm aWxlXzJfYmFzZTY0"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.py
new file mode 100644
index 000000000..ffb491a92
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_chat_message_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingChatMessage"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 1234567890123,
+ 'chat_message_uuid_base64': 'bWVzc2FnZV91dWlkX2Jhc2U2NA==',
+ 'chat_file_ids_base64': 'ZmlsZV8xX2Jhc2U2NCxm aWxlXzJfYmFzZTY0'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.js
new file mode 100644
index 000000000..26a99e329
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeeting";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854775807,
+ "meeting_occurrence_id": "1672531200000",
+ "notify_host_via_email": true,
+ "notify_registrants_of_cancellation": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.py
new file mode 100644
index 000000000..eb400e6e6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeeting"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854775807,
+ 'meeting_occurrence_id': '1672531200000',
+ 'notify_host_via_email': True,
+ 'notify_registrants_of_cancellation': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.js
new file mode 100644
index 000000000..09092d3c9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingPoll";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854,
+ "zoom_poll_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.py
new file mode 100644
index 000000000..ea07d95fe
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_poll_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingPoll"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854, 'zoom_poll_id': 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.js
new file mode 100644
index 000000000..ca7ba3094
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingSurvey";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 123456789012
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.py
new file mode 100644
index 000000000..fd42ca6c5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_survey_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingSurvey"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 123456789012
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.js
new file mode 100644
index 000000000..5b25a1aba
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingTranscript";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_or_webinar_identifier": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.py
new file mode 100644
index 000000000..2547c5c99
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_meeting_transcript_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomMeetingTranscript"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_or_webinar_identifier': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.js
new file mode 100644
index 000000000..5f6e06008
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomRecording";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_or_webinar_id": "d6f8a9b2-4c3e-11ee-8f23-0242ac120002",
+ "recording_id": "rec_20251002_093000_ABC123",
+ "recording_delete_action": "delete"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.py
new file mode 100644
index 000000000..40d500d35
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recording_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomRecording"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_or_webinar_id': 'd6f8a9b2-4c3e-11ee-8f23-0242ac120002',
+ 'recording_id': 'rec_20251002_093000_ABC123',
+ 'recording_delete_action': 'delete'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.js
new file mode 100644
index 000000000..bcf767384
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomRecordings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_or_webinar_identifier": "1234567890",
+ "recording_delete_action": "delete"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.py
new file mode 100644
index 000000000..82135f829
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_recordings_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomRecordings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_or_webinar_identifier': '1234567890', 'recording_delete_action': 'delete'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.js
new file mode 100644
index 000000000..da135f67e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomSipPhone";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "sip_phone_id": "sp_9a8b7c6d5e4f"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.py
new file mode 100644
index 000000000..82727bc67
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_sip_phone_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomSipPhone"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'sip_phone_id': 'sp_9a8b7c6d5e4f'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.js
new file mode 100644
index 000000000..863c6a159
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomTrackingField";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "tracking_field_id": "tf_9a8b7c6d"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.py
new file mode 100644
index 000000000..d0e70f1ba
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_tracking_field_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomTrackingField"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'tracking_field_id': 'tf_9a8b7c6d'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.js
new file mode 100644
index 000000000..0a7b7dce4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.DeleteZoomWebinarSurvey";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.py
new file mode 100644
index 000000000..73207e560
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/delete_zoom_webinar_survey_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.DeleteZoomWebinarSurvey"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.js
new file mode 100644
index 000000000..1d7d4d9a8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.FetchZoomBillingInvoices";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "billing_report_id": "br_2025-09-dept-001"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.py
new file mode 100644
index 000000000..2bc5bdfdc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/fetch_zoom_billing_invoices_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.FetchZoomBillingInvoices"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'billing_report_id': 'br_2025-09-dept-001'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.js
new file mode 100644
index 000000000..ff0cd7dba
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetArchivedFileStatistics";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "query_start_date": "2025-09-24T00:00:00Z",
+ "query_end_date": "2025-09-30T23:59:59Z"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.py
new file mode 100644
index 000000000..6172ce408
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_file_statistics_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetArchivedFileStatistics"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'query_start_date': '2025-09-24T00:00:00Z', 'query_end_date': '2025-09-30T23:59:59Z'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.js
new file mode 100644
index 000000000..77ca44875
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetArchivedZoomFiles";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "number_of_records_per_call": 50,
+ "pagination_token": "eyJzaWQiOiJwYWdlMSIsImVkIjoiMTY5NjAwMDAwMCJ9",
+ "query_start_date": "2025-09-25T00:00:00Z",
+ "query_end_date": "2025-09-30T23:59:59Z",
+ "query_date_type": "archive_complete_time",
+ "filter_by_group_ids": "grp_123,grp_456"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.py
new file mode 100644
index 000000000..f16cf65cf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_archived_zoom_files_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetArchivedZoomFiles"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'number_of_records_per_call': 50,
+ 'pagination_token': 'eyJzaWQiOiJwYWdlMSIsImVkIjoiMTY5NjAwMDAwMCJ9',
+ 'query_start_date': '2025-09-25T00:00:00Z',
+ 'query_end_date': '2025-09-30T23:59:59Z',
+ 'query_date_type': 'archive_complete_time',
+ 'filter_by_group_ids': 'grp_123,grp_456'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.js
new file mode 100644
index 000000000..0e8e1243d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.js
@@ -0,0 +1,34 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingActivityLogs";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "activity_type": "Meeting Started",
+ "number_of_records_per_call": 100,
+ "pagination_token": "abc123token",
+ "meeting_number": "123456789",
+ "operator_name_or_email": "alice@example.com"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.py
new file mode 100644
index 000000000..78db21c0f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_activity_logs_example_call_tool.py
@@ -0,0 +1,35 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingActivityLogs"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'activity_type': 'Meeting Started',
+ 'number_of_records_per_call': 100,
+ 'pagination_token': 'abc123token',
+ 'meeting_number': '123456789',
+ 'operator_name_or_email': 'alice@example.com'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.js
new file mode 100644
index 000000000..6befedec4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingAnalyticsSummary";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id_or_uuid": "123456789",
+ "start_date": "2025-09-01",
+ "end_date_for_query": "2025-09-30"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.py
new file mode 100644
index 000000000..8f4833f2d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_analytics_summary_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingAnalyticsSummary"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id_or_uuid': '123456789', 'start_date': '2025-09-01', 'end_date_for_query': '2025-09-30'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.js
new file mode 100644
index 000000000..0a3124a31
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingArchiveToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854775807
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.py
new file mode 100644
index 000000000..62ae86aef
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_archive_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingArchiveToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854775807
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.js
new file mode 100644
index 000000000..c67a0c3a3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingLivestreamDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.py
new file mode 100644
index 000000000..47f94e680
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_livestream_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingLivestreamDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.js
new file mode 100644
index 000000000..213d6f535
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.js
@@ -0,0 +1,32 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingRecordingRegistrants";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 1234567890123,
+ "registrant_status_filter": "approved",
+ "records_per_page": 50,
+ "use_next_page_token": 1,
+ "pagination_token": "abc123def456"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.py
new file mode 100644
index 000000000..e705a70b0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recording_registrants_example_call_tool.py
@@ -0,0 +1,33 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingRecordingRegistrants"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 1234567890123,
+ 'registrant_status_filter': 'approved',
+ 'records_per_page': 50,
+ 'use_next_page_token': 1,
+ 'pagination_token': 'abc123def456'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.js
new file mode 100644
index 000000000..13566efcb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingRecordings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id_or_uuid": "123456789",
+ "include_download_access_token": "download_access_token",
+ "download_access_token_ttl": 3600
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.py
new file mode 100644
index 000000000..72af75fb5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_recordings_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingRecordings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id_or_uuid': '123456789',
+ 'include_download_access_token': 'download_access_token',
+ 'download_access_token_ttl': 3600
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.js
new file mode 100644
index 000000000..a3d997996
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingRegistrantDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854775807,
+ "registrant_id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.py
new file mode 100644
index 000000000..0aa1fcf2b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_registrant_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingRegistrantDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854775807, 'registrant_id': 'a1b2c3d4-e5f6-7890-abcd-ef0123456789'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.js
new file mode 100644
index 000000000..d7f1eff9b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingSummary";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.py
new file mode 100644
index 000000000..e7e4b68ea
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_summary_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingSummary"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_uuid': 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.js
new file mode 100644
index 000000000..af5fee3f3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingSurveyInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854775807
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.py
new file mode 100644
index 000000000..5e5d82e10
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_survey_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingSurveyInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854775807
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.js
new file mode 100644
index 000000000..75f1d26b8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetMeetingTranscript";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id_or_uuid": "123456789"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.py
new file mode 100644
index 000000000..2ec76de48
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_meeting_transcript_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetMeetingTranscript"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id_or_uuid': '123456789'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.js
new file mode 100644
index 000000000..1cf905ff8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetPastMeetingDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_identifier": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.py
new file mode 100644
index 000000000..a9c800fe6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetPastMeetingDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_identifier': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.js
new file mode 100644
index 000000000..5672e7d73
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetPastMeetingParticipants";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": "123456789",
+ "number_of_records_per_page": 50,
+ "pagination_next_page_token": "eyJzaWQiOiJwYWdlX3Rva2VuIn0"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.py
new file mode 100644
index 000000000..c8e738c77
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_meeting_participants_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetPastMeetingParticipants"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': '123456789',
+ 'number_of_records_per_page': 50,
+ 'pagination_next_page_token': 'eyJzaWQiOiJwYWdlX3Rva2VuIn0'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.js
new file mode 100644
index 000000000..23cd0ee77
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetPastZoomMeetings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "past_meeting_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.py
new file mode 100644
index 000000000..7ce82379b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_past_zoom_meetings_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetPastZoomMeetings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'past_meeting_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.js
new file mode 100644
index 000000000..52240ea02
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetRecordingRegistrationQuestions";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_or_webinar_id": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.py
new file mode 100644
index 000000000..be24b0f74
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_recording_registration_questions_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetRecordingRegistrationQuestions"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_or_webinar_id': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.js
new file mode 100644
index 000000000..e1fad4ae2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.js
@@ -0,0 +1,26 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetTspInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.py
new file mode 100644
index 000000000..7ddee8483
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_tsp_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetTspInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.js
new file mode 100644
index 000000000..add8b1d2f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetUserAudioConferences";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.py
new file mode 100644
index 000000000..8ff683264
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_audio_conferences_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetUserAudioConferences"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.js
new file mode 100644
index 000000000..802b94892
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetUserTspDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me",
+ "tsp_account_id": "1"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.py
new file mode 100644
index 000000000..557589959
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_user_tsp_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetUserTspDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me', 'tsp_account_id': '1'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.js
new file mode 100644
index 000000000..22d1004a6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarAbsentees";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id_or_uuid": "123456789",
+ "webinar_occurrence_id": "occurrence_2025-09-01",
+ "number_of_records_per_call": 100,
+ "pagination_next_page_token": "token_abc123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.py
new file mode 100644
index 000000000..bf543cc71
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_absentees_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarAbsentees"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id_or_uuid': '123456789',
+ 'webinar_occurrence_id': 'occurrence_2025-09-01',
+ 'number_of_records_per_call': 100,
+ 'pagination_next_page_token': 'token_abc123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.js
new file mode 100644
index 000000000..7717b9cd8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarArchiveToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.py
new file mode 100644
index 000000000..93ab9ce7b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_archive_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarArchiveToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.js
new file mode 100644
index 000000000..a9245dbb3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarBrandingInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.py
new file mode 100644
index 000000000..50801c754
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_branding_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarBrandingInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.js
new file mode 100644
index 000000000..043bcfaae
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarCaptionToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "webinar_token_type": "closed_caption_token"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.py
new file mode 100644
index 000000000..eb0d318ae
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_caption_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarCaptionToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789, 'webinar_token_type': 'closed_caption_token'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.js
new file mode 100644
index 000000000..57204ad81
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarLiveStreamingJoinToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.py
new file mode 100644
index 000000000..ede640652
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_live_streaming_join_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarLiveStreamingJoinToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.js
new file mode 100644
index 000000000..94fe9afeb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarLivestreamDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_unique_id": "9876543210"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.py
new file mode 100644
index 000000000..07bfa661f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_livestream_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarLivestreamDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_unique_id': '9876543210'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.js
new file mode 100644
index 000000000..a3cc0b29c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarParticipantReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_identifier": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
+ "number_of_records_per_call": 100,
+ "pagination_token": "eyJwYWdlIjoyfQ==",
+ "include_registrant_id": "true"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.py
new file mode 100644
index 000000000..315867e17
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_participant_report_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarParticipantReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_identifier': 'a1b2c3d4-5678-90ab-cdef-1234567890ab',
+ 'number_of_records_per_call': 100,
+ 'pagination_token': 'eyJwYWdlIjoyfQ==',
+ 'include_registrant_id': 'true'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.js
new file mode 100644
index 000000000..8e5824770
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarPollDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "poll_id": "poll_12345"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.py
new file mode 100644
index 000000000..268d7e437
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarPollDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321, 'poll_id': 'poll_12345'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.js
new file mode 100644
index 000000000..83affc078
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarPollResults";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": "123e4567-e89b-12d3-a456-426614174000"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.py
new file mode 100644
index 000000000..be985d5bd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_poll_results_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarPollResults"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': '123e4567-e89b-12d3-a456-426614174000'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.js
new file mode 100644
index 000000000..94051f3f3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarRegistrantDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "registrant_id": "a1b2c3d4e5",
+ "webinar_occurrence_id": "occurrence_98765"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.py
new file mode 100644
index 000000000..2343cea6c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registrant_details_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarRegistrantDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789,
+ 'registrant_id': 'a1b2c3d4e5',
+ 'webinar_occurrence_id': 'occurrence_98765'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.js
new file mode 100644
index 000000000..5bbbcc465
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarRegistrationQuestions";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.py
new file mode 100644
index 000000000..49fef3711
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_registration_questions_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarRegistrationQuestions"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.js
new file mode 100644
index 000000000..3a01b1331
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarSurveyInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.py
new file mode 100644
index 000000000..b4eaaa5f7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_survey_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarSurveyInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.js
new file mode 100644
index 000000000..65bc2541c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetWebinarTrackingSources";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.py
new file mode 100644
index 000000000..1e9a4b721
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_webinar_tracking_sources_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetWebinarTrackingSources"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.js
new file mode 100644
index 000000000..68eb54fc3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomArchivedFiles";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_uuid": "d1e2f3a4-5678-90ab-cdef-1234567890ab"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.py
new file mode 100644
index 000000000..5f0c9f74b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_archived_files_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomArchivedFiles"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_uuid': 'd1e2f3a4-5678-90ab-cdef-1234567890ab'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.js
new file mode 100644
index 000000000..5c7ec61d8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.js
@@ -0,0 +1,26 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomBillingReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.py
new file mode 100644
index 000000000..36153d218
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_billing_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomBillingReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.js
new file mode 100644
index 000000000..2c9a42335
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomCloudRecordingReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "group_identifier": "grp_abc123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.py
new file mode 100644
index 000000000..60fa792e2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_cloud_recording_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomCloudRecordingReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-09-01', 'end_date': '2025-09-30', 'group_identifier': 'grp_abc123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.js
new file mode 100644
index 000000000..895c896ed
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomDailyReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "report_year": 2024,
+ "report_month": 9,
+ "zoom_group_id": "grp_87a2b4"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.py
new file mode 100644
index 000000000..b3d778849
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_daily_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomDailyReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'report_year': 2024, 'report_month': 9, 'zoom_group_id': 'grp_87a2b4'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.js
new file mode 100644
index 000000000..ce0aaabf7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomDeviceManagerGroupInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "records_per_page": 50,
+ "pagination_next_page_token": "eyJ0b2tlbiI6IjEyMzQ1NiJ9"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.py
new file mode 100644
index 000000000..d29411108
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_device_manager_group_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomDeviceManagerGroupInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'records_per_page': 50, 'pagination_next_page_token': 'eyJ0b2tlbiI6IjEyMzQ1NiJ9'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.js
new file mode 100644
index 000000000..3b8891787
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.js
@@ -0,0 +1,37 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomHistoryMeetings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "query_date_type": "start_time",
+ "query_meeting_type": "all",
+ "report_type": "all",
+ "search_keywords": "quarterly review",
+ "number_of_records_per_call": 50,
+ "pagination_next_page_token": "abc123token",
+ "group_identifier": "grp_9a8b7c6d",
+ "query_meeting_features": "screen_sharing,video_on,poll"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.py
new file mode 100644
index 000000000..279dbcb3e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_history_meetings_example_call_tool.py
@@ -0,0 +1,38 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomHistoryMeetings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'query_date_type': 'start_time',
+ 'query_meeting_type': 'all',
+ 'report_type': 'all',
+ 'search_keywords': 'quarterly review',
+ 'number_of_records_per_call': 50,
+ 'pagination_next_page_token': 'abc123token',
+ 'group_identifier': 'grp_9a8b7c6d',
+ 'query_meeting_features': 'screen_sharing,video_on,poll'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.js
new file mode 100644
index 000000000..7f458a4ef
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.js
@@ -0,0 +1,34 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomHostReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "host_activity_type": "active",
+ "record_count_per_api_call": 100,
+ "current_page_number": 1,
+ "next_page_pagination_token": "eyJ0b2tlbiI6IjEyMzQ1NiIsImV4cCI6MTY5ODAwMDAwMCJ9",
+ "zoom_group_id": "grp_9a8b7c6d"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.py
new file mode 100644
index 000000000..e147b7d40
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_host_report_example_call_tool.py
@@ -0,0 +1,35 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomHostReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'host_activity_type': 'active',
+ 'record_count_per_api_call': 100,
+ 'current_page_number': 1,
+ 'next_page_pagination_token': 'eyJ0b2tlbiI6IjEyMzQ1NiIsImV4cCI6MTY5ODAwMDAwMCJ9',
+ 'zoom_group_id': 'grp_9a8b7c6d'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.js
new file mode 100644
index 000000000..2aea8c791
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingCaptionToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 1234567890123,
+ "meeting_token_type": "closed_caption_token"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.py
new file mode 100644
index 000000000..47e59a27d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_caption_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingCaptionToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 1234567890123, 'meeting_token_type': 'closed_caption_token'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.js
new file mode 100644
index 000000000..cff8b844f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 123456789012,
+ "meeting_occurrence_id": "occurrence_2025-10-02T15:00:00Z",
+ "show_previous_occurrences": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.py
new file mode 100644
index 000000000..5d8dc74d8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_details_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 123456789012,
+ 'meeting_occurrence_id': 'occurrence_2025-10-02T15:00:00Z',
+ 'show_previous_occurrences': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.js
new file mode 100644
index 000000000..3c702c669
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingInvitation";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 1234567890123
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.py
new file mode 100644
index 000000000..fc80d168e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_invitation_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingInvitation"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 1234567890123
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.js
new file mode 100644
index 000000000..ccc358e04
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingLiveStreamToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 123456789012
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.py
new file mode 100644
index 000000000..cef7969ac
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_live_stream_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingLiveStreamToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 123456789012
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.js
new file mode 100644
index 000000000..baa075639
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingParticipantsReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_identifier": "123456789",
+ "records_per_page": 50,
+ "pagination_next_page_token": "eyJpZCI6IjEiLCJvZmZzZXQiOjUw",
+ "include_registrant_id_in_report": "true"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.py
new file mode 100644
index 000000000..5fd7b814c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_participants_report_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingParticipantsReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_identifier': '123456789',
+ 'records_per_page': 50,
+ 'pagination_next_page_token': 'eyJpZCI6IjEiLCJvZmZzZXQiOjUw',
+ 'include_registrant_id_in_report': 'true'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.js
new file mode 100644
index 000000000..1915688e9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingPollInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9213487654321,
+ "poll_id": "a1b2c3d4-e5f6-7890-ab12-34567890cdef"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.py
new file mode 100644
index 000000000..bd5909853
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingPollInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9213487654321, 'poll_id': 'a1b2c3d4-e5f6-7890-ab12-34567890cdef'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.js
new file mode 100644
index 000000000..adb81829a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingPollReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_identifier": "1234567890",
+ "note": "use UUID double-encoded if contains '/'"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.py
new file mode 100644
index 000000000..0c8b6fa61
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_poll_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingPollReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_identifier': '1234567890', 'note': "use UUID double-encoded if contains '/'"
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.js
new file mode 100644
index 000000000..ccaa9a229
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRecordingJoinToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 9223372036854,
+ "bypass_waiting_room": true
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.py
new file mode 100644
index 000000000..445e4784e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_join_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRecordingJoinToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 9223372036854, 'bypass_waiting_room': True
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.js
new file mode 100644
index 000000000..3479f5d1a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRecordingSettings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.py
new file mode 100644
index 000000000..dad359156
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_recording_settings_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRecordingSettings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.js
new file mode 100644
index 000000000..149eea46d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRegistrationQuestions";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 123456789012
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.py
new file mode 100644
index 000000000..49d6ba3d6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_registration_questions_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingRegistrationQuestions"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 123456789012
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.js
new file mode 100644
index 000000000..32f794016
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_identifier": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.py
new file mode 100644
index 000000000..5c47a433c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_identifier': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.js
new file mode 100644
index 000000000..ad3d15d95
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingReports";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "report_start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "zoom_user_identifier": "me",
+ "number_of_records_per_page": 50,
+ "pagination_token": "abc123def",
+ "meeting_type": "past"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.py
new file mode 100644
index 000000000..e3d140ddd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_reports_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingReports"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'report_start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'zoom_user_identifier': 'me',
+ 'number_of_records_per_page': 50,
+ 'pagination_token': 'abc123def',
+ 'meeting_type': 'past'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.js
new file mode 100644
index 000000000..b6482cadc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingSurveyReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_identifier": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.py
new file mode 100644
index 000000000..3a12a8bdd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_meeting_survey_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomMeetingSurveyReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_identifier': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.js
new file mode 100644
index 000000000..9a500ce55
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomPastMeetingQa";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_identifier": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.py
new file mode 100644
index 000000000..26eb43443
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_past_meeting_qa_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomPastMeetingQa"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_identifier': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.js
new file mode 100644
index 000000000..bc8374080
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomPhoneDeviceSettings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.py
new file mode 100644
index 000000000..333f880fa
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_phone_device_settings_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomPhoneDeviceSettings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.js
new file mode 100644
index 000000000..0afea2f7e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomRecordingAnalytics";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_or_webinar_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
+ "records_per_page": 50,
+ "pagination_token": "token_eyJpZCI6IjEyMyIsImV4cCI6MTY5",
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "analytics_detail_type": "by_view"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.py
new file mode 100644
index 000000000..36940f6a5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_recording_analytics_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomRecordingAnalytics"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_or_webinar_id': 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
+ 'records_per_page': 50,
+ 'pagination_token': 'token_eyJpZCI6IjEyMyIsImV4cCI6MTY5',
+ 'start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'analytics_detail_type': 'by_view'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.js
new file mode 100644
index 000000000..da8c8a69f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomTelephoneReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-09-01",
+ "end_date": "2025-09-30",
+ "audio_type": "1",
+ "date_query_type": "start_time",
+ "records_per_page": 100,
+ "pagination_next_page_token": "abc123token"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.py
new file mode 100644
index 000000000..9e7d7743f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_telephone_report_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomTelephoneReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'audio_type': '1',
+ 'date_query_type': 'start_time',
+ 'records_per_page': 100,
+ 'pagination_next_page_token': 'abc123token'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.js
new file mode 100644
index 000000000..9c6cb84e2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomTrackingFieldInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "tracking_field_id": "tf_abc123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.py
new file mode 100644
index 000000000..0fc0629f3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_tracking_field_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomTrackingFieldInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'tracking_field_id': 'tf_abc123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.js
new file mode 100644
index 000000000..8f8ca81df
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomUserActivityLogs";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-04-01",
+ "end_date_for_activity_logs": "2025-04-07",
+ "records_per_page": 100,
+ "pagination_next_page_token": "eyJzdGFydCI6MX0"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.py
new file mode 100644
index 000000000..5bf04f386
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_user_activity_logs_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomUserActivityLogs"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-04-01',
+ 'end_date_for_activity_logs': '2025-04-07',
+ 'records_per_page': 100,
+ 'pagination_next_page_token': 'eyJzdGFydCI6MX0'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.js
new file mode 100644
index 000000000..a0ea9a9e8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": "123456789",
+ "recurring_webinar_occurrence_id": "occ_2025-10-15",
+ "show_previous_occurrences": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.py
new file mode 100644
index 000000000..d29b78380
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_details_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': '123456789',
+ 'recurring_webinar_occurrence_id': 'occ_2025-10-15',
+ 'show_previous_occurrences': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.js
new file mode 100644
index 000000000..c22c644ee
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarLocalRecordingToken";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.py
new file mode 100644
index 000000000..27c111d97
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_local_recording_token_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarLocalRecordingToken"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.js
new file mode 100644
index 000000000..849cbef0e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarQaReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_identifier": "123456789"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.py
new file mode 100644
index 000000000..af7d80aeb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_qa_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarQaReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_identifier': '123456789'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.js
new file mode 100644
index 000000000..2208c918d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_identifier": "123456789"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.py
new file mode 100644
index 000000000..2d4c11c39
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_identifier': '123456789'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.js
new file mode 100644
index 000000000..4e5eb323a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarSurveyReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_webinar_id": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.py
new file mode 100644
index 000000000..d6d216396
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_webinar_survey_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomWebinarSurveyReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_webinar_id': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.js
new file mode 100644
index 000000000..9df8ab4fe
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.GetZoomZpaVersionInfo";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_device_management_group_id": "group_12345"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.py
new file mode 100644
index 000000000..769c15eb0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/get_zoom_zpa_version_info_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.GetZoomZpaVersionInfo"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_device_management_group_id': 'group_12345'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.js
new file mode 100644
index 000000000..7ac6afe8a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListMeetingSummaries";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "number_of_records_per_call": 25,
+ "pagination_next_page_token": "eyJwb2ludGVyIjoiMTIzdGVzdCIsImV4cCI6MTY5OTk5OTk5OX0",
+ "start_date_utc": "2025-09-01T00:00:00Z",
+ "end_date_utc": "2025-09-30T23:59:59Z"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.py
new file mode 100644
index 000000000..3b75c36d3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_meeting_summaries_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListMeetingSummaries"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'number_of_records_per_call': 25,
+ 'pagination_next_page_token': 'eyJwb2ludGVyIjoiMTIzdGVzdCIsImV4cCI6MTY5OTk5OTk5OX0',
+ 'start_date_utc': '2025-09-01T00:00:00Z',
+ 'end_date_utc': '2025-09-30T23:59:59Z'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.js
new file mode 100644
index 000000000..13e084d43
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListPastMeetingPolls";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": "1234567890",
+ "meeting_uuid": "c3VwZXJfdW5pcXVlLy8="
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.py
new file mode 100644
index 000000000..3322ed4db
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_meeting_polls_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListPastMeetingPolls"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': '1234567890', 'meeting_uuid': 'c3VwZXJfdW5pcXVlLy8='
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.js
new file mode 100644
index 000000000..4e3177ccf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListPastWebinars";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.py
new file mode 100644
index 000000000..95f8ffaff
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_past_webinars_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListPastWebinars"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.js
new file mode 100644
index 000000000..f482e5a46
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListSipPhones";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "alice@example.com",
+ "records_per_page": 25,
+ "pagination_token": "abc123token"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.py
new file mode 100644
index 000000000..86be77123
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_sip_phones_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListSipPhones"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'alice@example.com', 'records_per_page': 25, 'pagination_token': 'abc123token'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.js
new file mode 100644
index 000000000..5fc8fd078
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListUpcomingZoomMeetings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_user_identifier": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.py
new file mode 100644
index 000000000..06ea01ba0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_upcoming_zoom_meetings_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListUpcomingZoomMeetings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_user_identifier': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.js
new file mode 100644
index 000000000..0204d347c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListUserTspAccounts";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.py
new file mode 100644
index 000000000..282a1014a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_user_tsp_accounts_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListUserTspAccounts"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.js
new file mode 100644
index 000000000..1fb478f14
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListWebinarPollsZoom";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "query_anonymous_polls": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.py
new file mode 100644
index 000000000..b7b308d37
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_polls_zoom_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListWebinarPollsZoom"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321, 'query_anonymous_polls': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.js
new file mode 100644
index 000000000..9e742cbf3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListWebinarQa";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_identifier": "9876543210"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.py
new file mode 100644
index 000000000..0fd26eb17
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_webinar_qa_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListWebinarQa"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_identifier': '9876543210'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.js
new file mode 100644
index 000000000..90f2ff598
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.js
@@ -0,0 +1,32 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomCloudRecordings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me",
+ "records_per_page": 25,
+ "start_date": "2025-09-01",
+ "end_date_utc": "2025-09-30",
+ "include_trash_recordings": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.py
new file mode 100644
index 000000000..8ec507086
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_cloud_recordings_example_call_tool.py
@@ -0,0 +1,33 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomCloudRecordings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me',
+ 'records_per_page': 25,
+ 'start_date': '2025-09-01',
+ 'end_date_utc': '2025-09-30',
+ 'include_trash_recordings': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.js
new file mode 100644
index 000000000..f6ee586cd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.js
@@ -0,0 +1,36 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomDevices";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "filter_by_name_or_serial_number": "RoomCam-1234",
+ "filter_by_platform_os": "win",
+ "filter_by_device_type": 0,
+ "filter_by_device_vendor": "Logitech",
+ "filter_device_by_model": "Rally",
+ "device_status_filter": 1,
+ "result_limit": 50,
+ "pagination_token": "abc123token",
+ "filter_by_zdm_enrollment": true
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.py
new file mode 100644
index 000000000..e70310887
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_devices_example_call_tool.py
@@ -0,0 +1,37 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomDevices"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'filter_by_name_or_serial_number': 'RoomCam-1234',
+ 'filter_by_platform_os': 'win',
+ 'filter_by_device_type': 0,
+ 'filter_by_device_vendor': 'Logitech',
+ 'filter_device_by_model': 'Rally',
+ 'device_status_filter': 1,
+ 'result_limit': 50,
+ 'pagination_token': 'abc123token',
+ 'filter_by_zdm_enrollment': True
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.js
new file mode 100644
index 000000000..c933682cf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomH323SipDevices";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "records_per_call": 25,
+ "pagination_token": "abc123token"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.py
new file mode 100644
index 000000000..70158906b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_h323_sip_devices_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomH323SipDevices"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'records_per_call': 25, 'pagination_token': 'abc123token'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.js
new file mode 100644
index 000000000..2478d0beb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingPolls";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_meeting_id": 12345678901,
+ "query_anonymous_polls": false
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.py
new file mode 100644
index 000000000..9a28f6420
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_polls_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingPolls"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_meeting_id': 12345678901, 'query_anonymous_polls': False
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.js
new file mode 100644
index 000000000..260cb2147
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.js
@@ -0,0 +1,32 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingRegistrants";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_id": 1234567890123,
+ "meeting_occurrence_id": "occ_98765",
+ "registrant_status": "approved",
+ "number_of_records_per_call": 50,
+ "pagination_next_page_token": "token_abc123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.py
new file mode 100644
index 000000000..12dae5251
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_registrants_example_call_tool.py
@@ -0,0 +1,33 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingRegistrants"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_id': 1234567890123,
+ 'meeting_occurrence_id': 'occ_98765',
+ 'registrant_status': 'approved',
+ 'number_of_records_per_call': 50,
+ 'pagination_next_page_token': 'token_abc123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.js
new file mode 100644
index 000000000..214c3f9a8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingTemplates";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_user_id": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.py
new file mode 100644
index 000000000..a382f7f48
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_meeting_templates_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomMeetingTemplates"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_user_id': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.js
new file mode 100644
index 000000000..048cfe729
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.js
@@ -0,0 +1,35 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomScheduledMeetings";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "zoom_user_identifier": "me",
+ "meeting_type": "scheduled",
+ "records_per_page": 30,
+ "pagination_next_page_token": "abc123token",
+ "current_page_number": 1,
+ "start_date": "2025-01-01",
+ "end_date": "2025-06-30",
+ "meeting_timezone": "America/Los_Angeles"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.py
new file mode 100644
index 000000000..b911af961
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_scheduled_meetings_example_call_tool.py
@@ -0,0 +1,36 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomScheduledMeetings"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'zoom_user_identifier': 'me',
+ 'meeting_type': 'scheduled',
+ 'records_per_page': 30,
+ 'pagination_next_page_token': 'abc123token',
+ 'current_page_number': 1,
+ 'start_date': '2025-01-01',
+ 'end_date': '2025-06-30',
+ 'meeting_timezone': 'America/Los_Angeles'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.js
new file mode 100644
index 000000000..918af5505
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.js
@@ -0,0 +1,26 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomTrackingFields";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.py
new file mode 100644
index 000000000..6a680e863
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_tracking_fields_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomTrackingFields"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.js
new file mode 100644
index 000000000..f49d972a1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomUpcomingEvents";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date": "2025-10-01",
+ "end_date": "2025-10-31",
+ "records_per_page": 50,
+ "event_type_to_query": "all",
+ "pagination_token": "eyJwb2siOiJwYWdlMSIsImV4cCI6IjE2ODc5In0",
+ "group_identifier": "grp_8a7f3c"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.py
new file mode 100644
index 000000000..05bfeb2f6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_upcoming_events_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomUpcomingEvents"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date': '2025-10-01',
+ 'end_date': '2025-10-31',
+ 'records_per_page': 50,
+ 'event_type_to_query': 'all',
+ 'pagination_token': 'eyJwb2siOiJwYWdlMSIsImV4cCI6IjE2ODc5In0',
+ 'group_identifier': 'grp_8a7f3c'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.js
new file mode 100644
index 000000000..a28e3b09d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarPanelists";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.py
new file mode 100644
index 000000000..bdba47722
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_panelists_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarPanelists"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.js
new file mode 100644
index 000000000..1e05a27c6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.js
@@ -0,0 +1,33 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarRegistrants";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "webinar_occurrence_id": "occ_2025-10-01_01",
+ "registrant_status": "approved",
+ "registrants_tracking_source_id": "landing_page_3",
+ "number_of_records_per_call": 50,
+ "pagination_next_page_token": "token_AbC123"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.py
new file mode 100644
index 000000000..09a29338c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_registrants_example_call_tool.py
@@ -0,0 +1,34 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarRegistrants"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789,
+ 'webinar_occurrence_id': 'occ_2025-10-01_01',
+ 'registrant_status': 'approved',
+ 'registrants_tracking_source_id': 'landing_page_3',
+ 'number_of_records_per_call': 50,
+ 'pagination_next_page_token': 'token_AbC123'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.js
new file mode 100644
index 000000000..7c029488c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarTemplates";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.py
new file mode 100644
index 000000000..7c04dba7d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinar_templates_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinarTemplates"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.js
new file mode 100644
index 000000000..97850da00
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.js
@@ -0,0 +1,31 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinars";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "user_identifier": "me",
+ "webinar_type": "scheduled",
+ "webinar_list_page_size": 25,
+ "next_page_token": 0
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.py
new file mode 100644
index 000000000..b20e755f8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/list_zoom_webinars_example_call_tool.py
@@ -0,0 +1,32 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ListZoomWebinars"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'user_identifier': 'me',
+ 'webinar_type': 'scheduled',
+ 'webinar_list_page_size': 25,
+ 'next_page_token': 0
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.js
new file mode 100644
index 000000000..267242bcc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarBrandingWallpaper";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.py
new file mode 100644
index 000000000..093428291
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_branding_wallpaper_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarBrandingWallpaper"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.js
new file mode 100644
index 000000000..2d5824a2c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarPanelist";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "panelist_identifier": "panelist123@example.com"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.py
new file mode 100644
index 000000000..d0e5df6dc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelist_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarPanelist"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321, 'panelist_identifier': 'panelist123@example.com'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.js
new file mode 100644
index 000000000..a8b92616a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarPanelists";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.py
new file mode 100644
index 000000000..41eb7d258
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_panelists_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarPanelists"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.js
new file mode 100644
index 000000000..fbacaec05
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarRegistrant";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 123456789,
+ "registrant_id": "reg_987654321",
+ "webinar_occurrence_id": "occ_2025-10-15"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.py
new file mode 100644
index 000000000..312c39e3a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_webinar_registrant_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveWebinarRegistrant"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 123456789,
+ 'registrant_id': 'reg_987654321',
+ 'webinar_occurrence_id': 'occ_2025-10-15'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.js
new file mode 100644
index 000000000..c6ba9fd89
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.js
@@ -0,0 +1,29 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveZoomDeviceByVendorAndMac";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "device_vendor": "Cisco",
+ "device_mac_address": "00:1A:2B:3C:4D:5E"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.py
new file mode 100644
index 000000000..ec286a3c2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_by_vendor_and_mac_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveZoomDeviceByVendorAndMac"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'device_vendor': 'Cisco', 'device_mac_address': '00:1A:2B:3C:4D:5E'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.js
new file mode 100644
index 000000000..443e0d2e9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RemoveZoomDevice";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "device_id": "device_12345"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.py
new file mode 100644
index 000000000..686deeacd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/remove_zoom_device_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RemoveZoomDevice"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'device_id': 'device_12345'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.js
new file mode 100644
index 000000000..e0371aa73
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RetrieveWebinarParticipants";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": "123456789",
+ "number_of_records_per_call": 100,
+ "pagination_token_for_participants": "eyJ0b2tlbiI6IjEyMzQ1In0"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.py
new file mode 100644
index 000000000..c760a703b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_webinar_participants_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RetrieveWebinarParticipants"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': '123456789',
+ 'number_of_records_per_call': 100,
+ 'pagination_token_for_participants': 'eyJ0b2tlbiI6IjEyMzQ1In0'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.js
new file mode 100644
index 000000000..048858540
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomDeviceDetails";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "device_unique_identifier": "device_12345ABC"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.py
new file mode 100644
index 000000000..c1d36bb49
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_device_details_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomDeviceDetails"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'device_unique_identifier': 'device_12345ABC'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.js
new file mode 100644
index 000000000..1eb15330c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.js
@@ -0,0 +1,32 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomOperationLogs";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "start_date_for_report": "2025-09-01",
+ "end_date": "2025-09-30",
+ "records_per_page": 100,
+ "pagination_next_page_token": "eyJ0b2tlbiI6IjEyMzQ1NiIsImV4cCI6MTY5ODAwMDAwMCJ9",
+ "filter_by_category_type": "all"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.py
new file mode 100644
index 000000000..fbc4c0603
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_operation_logs_example_call_tool.py
@@ -0,0 +1,33 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomOperationLogs"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'start_date_for_report': '2025-09-01',
+ 'end_date': '2025-09-30',
+ 'records_per_page': 100,
+ 'pagination_next_page_token': 'eyJ0b2tlbiI6IjEyMzQ1NiIsImV4cCI6MTY5ODAwMDAwMCJ9',
+ 'filter_by_category_type': 'all'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.js
new file mode 100644
index 000000000..42bf52bdb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomWebinarPollsReport";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": "1234567890"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.py
new file mode 100644
index 000000000..0fb2bc589
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/retrieve_zoom_webinar_polls_report_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.RetrieveZoomWebinarPollsReport"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.js
new file mode 100644
index 000000000..41158eef8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.js
@@ -0,0 +1,30 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.SetWebinarVirtualBackground";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "webinar_id": 987654321,
+ "virtual_background_file_id": "vb_12345",
+ "set_default_virtual_background_for_all_panelists": true
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.py
new file mode 100644
index 000000000..7881c4580
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/set_webinar_virtual_background_example_call_tool.py
@@ -0,0 +1,31 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.SetWebinarVirtualBackground"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'webinar_id': 987654321,
+ 'virtual_background_file_id': 'vb_12345',
+ 'set_default_virtual_background_for_all_panelists': True
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.js b/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.js
new file mode 100644
index 000000000..b7c2db63d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.js
@@ -0,0 +1,28 @@
+import { Arcade } from "@arcadeai/arcadejs";
+
+const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
+
+const USER_ID = "{arcade_user_id}";
+const TOOL_NAME = "ZoomMeetingsApi.ZoomReportMeetingQa";
+
+// Start the authorization process
+const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
+
+if (authResponse.status !== "completed") {
+ console.log(`Click this link to authorize: ${authResponse.url}`);
+}
+
+// Wait for the authorization to complete
+await client.auth.waitForCompletion(authResponse);
+
+const toolInput = {
+ "meeting_identifier": "a1b2c3d4-ef56-7890-ab12-34567890abcd"
+};
+
+const response = await client.tools.execute({
+ tool_name: TOOL_NAME,
+ input: toolInput,
+ user_id: USER_ID,
+});
+
+console.log(JSON.stringify(response.output.value, null, 2));
diff --git a/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.py b/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.py
new file mode 100644
index 000000000..3f7d02282
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/zoom_meetings_api/zoom_report_meeting_qa_example_call_tool.py
@@ -0,0 +1,29 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "ZoomMeetingsApi.ZoomReportMeetingQa"
+
+auth_response = client.tools.authorize(
+ tool_name=TOOL_NAME,
+ user_id=USER_ID,
+)
+
+if auth_response.status != "completed":
+ print(f"Click this link to authorize: {auth_response.url}")
+
+# Wait for the authorization to complete
+client.auth.wait_for_completion(auth_response)
+
+tool_input = {
+ 'meeting_identifier': 'a1b2c3d4-ef56-7890-ab12-34567890abcd'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))