diff --git a/app/en/mcp-servers/components/toolkits-config.ts b/app/en/mcp-servers/components/toolkits-config.ts
index 775de27e..b04afe64 100644
--- a/app/en/mcp-servers/components/toolkits-config.ts
+++ b/app/en/mcp-servers/components/toolkits-config.ts
@@ -481,13 +481,13 @@ const comingSoonTools: Tool[] = [
isComingSoon: true,
},
{
- name: "Box",
+ name: "Box API",
image: "box.svg",
- summary: "Manage files and folders in Box with your agents.",
- link: "/mcp-servers/productivity/box",
+ summary: "Enable agents to interact with the low-level Box API.",
+ link: "/mcp-servers/productivity/box-api",
category: "productivity",
- type: "arcade",
- isComingSoon: true,
+ type: "arcade_starter",
+ isComingSoon: false,
},
{
name: "Braze",
diff --git a/app/en/mcp-servers/productivity/box-api/page.mdx b/app/en/mcp-servers/productivity/box-api/page.mdx
new file mode 100644
index 00000000..b1e9c801
--- /dev/null
+++ b/app/en/mcp-servers/productivity/box-api/page.mdx
@@ -0,0 +1,5655 @@
+# BoxApi
+
+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 BoxApi MCP Server offers a comprehensive set of tools for managing Box content, metadata, security, collaboration, enterprise settings, Doc Gen/Sign workflows, and integrations. Key capabilities include:
+
+- Manage files, folders, trashed items, versions, thumbnails, downloads, and upload sessions (including chunked uploads).
+- Inspect and modify file/folder metadata, classifications, watermarks, skills metadata, and app associations.
+- Manage collaborations, comments, tasks, collections, shared links, web links, and related permissions.
+- Create, list, inspect, and remove Box Doc Gen templates, template tags, and Doc Gen jobs (including batch and template-specific job listings).
+- Manage Box Sign requests and templates (retrieve, resend, cancel, list).
+- Admin and enterprise ops: list/manage users, groups, Hubs, archives, storage policies, retention and legal hold policies, device pins, terms of service, safe-collaboration domains, shield information barriers, and enterprise events.
+- Manage metadata templates, cascade policies, and metadata instances (retrieve, find, delete).
+- Manage webhooks, integrations (Slack, Teams), AI agents, and related mappings.
+- Retrieve audit/operational data: recent items, events, collections, and activity for troubleshooting or reporting.
+- Permanently delete or restore content: delete files/folders, remove from trash, delete archives, templates, policies, and other irreversible removals.
+
+Use these tools to build agents or apps that automate Box content lifecycle, security/compliance workflows, collaboration administration, document generation/signing, and enterprise integrations.
+
+## 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).
+
+
+## BoxApi.ListBoxDocTemplates
+
+
+
+
+Retrieve Box Doc Gen templates the user collaborates on.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) Defines the starting position for pagination of results. Requires `usemarker` to be set to `true`.
+- **max_items_per_page** (`integer`, optional) Specify the maximum number of Box Doc Gen templates to return in a single page.
+
+## BoxApi.UnmarkBoxDocTemplate
+
+
+
+
+Unmarks a file as a Box Doc Gen template.
+
+**Parameters**
+
+- **file_id_to_unmark** (`string`, required) The ID of the file that will no longer be marked as a Box Doc Gen template.
+
+## BoxApi.GetBoxDocgenTemplateDetails
+
+
+
+
+Fetch details of a specific Box Doc Gen template.
+
+**Parameters**
+
+- **box_docgen_template_id** (`string`, required) The ID of the Box Doc Gen template to retrieve details for.
+
+## BoxApi.ListBoxDocgenTemplateTags
+
+
+
+
+Retrieve tags from a specific Box Doc Gen template.
+
+**Parameters**
+
+- **template_id** (`string`, required) The unique identifier for the Box Doc Gen template whose tags you want to retrieve.
+- **template_version_id** (`string`, optional) The ID of the specific version of the template to retrieve tags from.
+- **pagination_start_marker** (`string`, optional) Defines the starting position for results when using marker-based pagination. Must have `usemarker` set to `true`.
+- **maximum_items_per_page** (`integer`, optional) Specifies the maximum number of tags to return per page from the Box Doc Gen template.
+
+## BoxApi.GetBoxDocgenJobDetails
+
+
+
+
+Retrieve details of a Box Doc Gen job using its ID.
+
+**Parameters**
+
+- **box_doc_gen_job_id** (`string`, required) The unique identifier for the Box Doc Gen job you want details for.
+
+## BoxApi.ListBoxDocgenJobs
+
+
+
+
+Retrieves a list of Box Doc Gen jobs for a user.
+
+**Parameters**
+
+- **pagination_marker** (`string`, optional) Starting position marker for paginating results. Requires 'usemarker' set to true.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page. Specify an integer value to set the limit for pagination.
+
+## BoxApi.ListTemplateJobs
+
+
+
+
+Retrieve jobs associated with a specific document template.
+
+**Parameters**
+
+- **template_identifier** (`string`, required) The unique ID of the template for which jobs need to be retrieved.
+- **pagination_start_marker** (`string`, optional) Defines the starting position for pagination. Requires 'usemarker' to be set to true.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page from the list of jobs.
+
+## BoxApi.ListDocgenBatchJobs
+
+
+
+
+Retrieve details of Box Doc Gen jobs in a batch.
+
+**Parameters**
+
+- **box_doc_gen_batch_id** (`string`, required) The identifier for a Box Doc Gen batch used to retrieve specific job details.
+- **pagination_marker** (`string`, optional) The position marker to start returning results. Use for marker-based pagination. Requires `usemarker` set to `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving Box Doc Gen jobs.
+
+## BoxApi.GetBoxHubs
+
+
+
+
+Retrieve all Box Hubs for the user.
+
+**Parameters**
+
+- **hub_search_query** (`string`, optional) The string to search for specific Box Hubs. Use keywords to refine search results.
+- **hub_scope** (`string`, optional) Specifies which Box Hubs to retrieve. Options: `editable`, `view_only`, `all`. Default is `all`.
+- **sort_results_by** (`string`, optional) Field to sort Box Hubs by: `name`, `updated_at`, `last_accessed_at`, `view_count`, `relevance` (default: `relevance`).
+- **sort_direction** (`string`, optional) Specify the sort order: 'ASC' for ascending or 'DESC' for descending.
+- **pagination_start_marker** (`string`, optional) Defines the position marker to begin returning results, used for marker-based pagination.
+- **max_items_per_page** (`integer`, optional) The maximum number of Box Hubs to return per page. Use for pagination control.
+
+## BoxApi.GetEnterpriseBoxHubs
+
+
+
+
+Retrieve Box Hubs for an enterprise.
+
+**Parameters**
+
+- **search_query_for_box_hubs** (`string`, optional) The search query string to find specific Box Hubs within an enterprise.
+- **sort_results_by** (`string`, optional) The field to sort the Box Hubs by. Options: 'name', 'updated_at', 'last_accessed_at', 'view_count', 'relevance'. Default is 'relevance'.
+- **sort_direction** (`string`, optional) The direction to sort results: alphabetical ascending ('ASC') or descending ('DESC').
+- **pagination_marker** (`string`, optional) The starting position marker for returning results, used in marker-based pagination.
+- **max_items_per_page** (`integer`, optional) The maximum number of Box Hubs to return per page. This controls the page size for the result set.
+
+## BoxApi.RetrieveBoxHubDetails
+
+
+
+
+Fetch Box Hub details using its ID.
+
+**Parameters**
+
+- **box_hub_identifier** (`string`, required) The unique ID representing a Box Hub, found in the URL when visiting the hub.
+
+## BoxApi.DeleteBoxHub
+
+
+
+
+Delete a specific Box Hub using its ID.
+
+**Parameters**
+
+- **box_hub_unique_id** (`string`, required) The unique identifier for a Box Hub, obtainable from the hub's URL.
+
+## BoxApi.RetrieveBoxHubCollaborations
+
+
+
+
+Retrieves collaborations for a Box Hub.
+
+**Parameters**
+
+- **hub_identifier** (`string`, required) The unique string identifier for a Box Hub, found in the Hub's URL.
+- **pagination_marker** (`string`, optional) The position marker to begin returning results, used for marker-based pagination. Ensure `usemarker` is set to `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of collaboration items to return per page. Determines the page size for results.
+
+## BoxApi.GetBoxHubCollaborationDetails
+
+
+
+
+Retrieve details for a Box Hub collaboration by ID.
+
+**Parameters**
+
+- **hub_collaboration_id** (`string`, required) The unique identifier for the specific Box Hub collaboration you want to retrieve details for.
+
+## BoxApi.DeleteBoxHubCollaboration
+
+
+
+
+Remove a specific Box Hub collaboration.
+
+**Parameters**
+
+- **hub_collaboration_identifier** (`string`, required) The unique identifier for the Box Hub collaboration to be deleted.
+
+## BoxApi.RetrieveBoxHubItems
+
+
+
+
+Fetch all items from a specified Box Hub.
+
+**Parameters**
+
+- **hub_identifier** (`string`, required) The unique ID representing a Box Hub, retrievable from the hub's URL.
+- **pagination_start_marker** (`string`, optional) Defines the starting position for results when using marker-based pagination. Requires `usemarker` to be `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page from a Box Hub. Specify an integer value to limit the number of items in each result set.
+
+## BoxApi.GetEnterpriseShieldLists
+
+
+
+
+Retrieve all shield lists for the enterprise.
+
+**Parameters**
+
+This tool does not take any parameters.
+
+## BoxApi.RetrieveShieldListById
+
+
+
+
+Retrieve details of a specific shield list by ID.
+
+**Parameters**
+
+- **shield_list_identifier** (`string`, required) The unique identifier for a shield list. Retrieve this ID by calling the endpoint that lists all shield lists for your enterprise.
+
+## BoxApi.DeleteShieldListById
+
+
+
+
+Delete a shield list using its ID.
+
+**Parameters**
+
+- **shield_list_id** (`string`, required) The unique identifier for the shield list to be deleted. Obtainable from the response of fetching all shield lists for the enterprise.
+
+## BoxApi.RetrieveEnterpriseArchives
+
+
+
+
+Retrieve archives for an enterprise from Box.
+
+**Parameters**
+
+- **max_items_per_page** (`integer`, optional) The maximum number of archive items to return per page when retrieving data.
+- **pagination_start_marker** (`string`, optional) Defines the position marker to start returning results for pagination in archive retrieval.
+
+## BoxApi.DeleteArchive
+
+
+
+
+Permanently delete an archive by ID.
+
+**Parameters**
+
+- **archive_id** (`string`, required) The unique identifier of the archive to be permanently deleted. This ID is required for the deletion process.
+
+## BoxApi.RetrieveFileDetails
+
+
+
+
+Fetch details about a specific file using its ID.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, found in the URL of the file in the web application. Example: from `https://*.app.box.com/files/123`, use `123`.
+- **included_file_attributes** (`array[string]`, optional) Specify attributes to include in the response as a list of strings. Additional attributes replace standard fields unless explicitly included. Metadata can be queried using 'metadata' with scope and key.
+- **etag_conditional_retrieval** (`string`, optional) Provide the last observed etag value to retrieve the file only if it has changed. Returns a 304 status if unchanged.
+- **shared_link_with_optional_password** (`string`, optional) Provide the shared link URL for the item. Use the format 'shared_link=[link]' or 'shared_link=[link]&shared_link_password=[password]' if a password is required.
+- **file_representations_request** (`string`, optional) Request specific representations of a file using hints, e.g., '[jpg?dimensions=32x32][jpg?dimensions=64x64]'.
+
+## BoxApi.DeleteFileFromBox
+
+
+
+
+Delete a file from Box or move it to trash.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique ID representing a file in Box. Found in the URL when viewing a file: https://\*.app.box.com/files/file_id.
+- **ensure_no_recent_changes_etag** (`string`, optional) Pass the file's last observed etag value to ensure it hasn't changed before deletion. If the etag has changed, the operation will fail.
+
+## BoxApi.GetFileAppAssociations
+
+
+
+
+Retrieve app items associated with a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique ID representing a file in Box. Can be obtained from the file URL.
+- **items_per_page_limit** (`integer`, optional) The maximum number of items to return per page.
+- **pagination_marker** (`string`, optional) Defines the position marker for pagination. Required if using marker-based pagination. Ensure `usemarker` is set to `true`.
+- **filter_by_application_type** (`string`, optional) Specify the application type to filter and return only app items related to it.
+
+## BoxApi.DownloadFileContent
+
+
+
+
+Retrieve the binary content of a specified file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for the file to download. Obtainable from the file's URL in the web application.
+- **file_version_to_download** (`string`, optional) The specific version of the file to retrieve in binary format.
+- **optional_access_token** (`string`, optional) A string for an optional access token to pre-authenticate the file download request. Ensure it's scoped for read access only.
+- **download_byte_range** (`string`, optional) Specify the byte range for the content to download in the format `bytes={start_byte}-{end_byte}` to define which section of the file to retrieve.
+- **shared_link_with_optional_password** (`string`, optional) Provide the shared link URL of the item. Include a password if required, using the format `shared_link=[link]` or `shared_link=[link]&shared_link_password=[password]`. This allows access to files not explicitly shared with the user.
+
+## BoxApi.GetUploadSessionDetails
+
+
+
+
+Retrieve details of a specific file upload session.
+
+**Parameters**
+
+- **upload_session_id** (`string`, required) The ID of the upload session to retrieve information for.
+
+## BoxApi.AbortUploadSession
+
+
+
+
+Abort an upload session and discard all uploaded data.
+
+**Parameters**
+
+- **upload_session_id** (`string`, required) The unique identifier of the upload session to be aborted. This ID is required to specify which upload session should be cancelled and its data discarded.
+
+## BoxApi.GetUploadedChunksList
+
+
+
+
+Retrieve the list of uploaded chunks for an upload session.
+
+**Parameters**
+
+- **upload_session_identifier** (`string`, required) The unique identifier for the upload session. Use this to retrieve the list of uploaded chunks.
+- **response_offset** (`integer`, optional) The starting position of the response item list. Must not exceed 10000, as higher values will result in a 400 error.
+- **max_items_per_page** (`integer`, optional) The maximum number of uploaded chunks to return per page in the response.
+
+## BoxApi.RetrieveFileThumbnail
+
+
+
+
+Retrieves a thumbnail image of a specified file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for the file. You can find this ID in the file URL on the Box web application.
+- **thumbnail_file_format** (`string`, required) Specify the file format for the thumbnail, either 'png' or 'jpg'.
+- **minimum_thumbnail_height** (`integer`, optional) Specify the minimum height for the thumbnail image required. Accepts an integer value.
+- **minimum_thumbnail_width** (`integer`, optional) The minimum width of the thumbnail to be retrieved. Specify an integer value.
+- **maximum_thumbnail_height** (`integer`, optional) The maximum height of the thumbnail in pixels. Valid values depend on the specified format. For .png, maximum is 256; for .jpg, maximum is 320.
+- **maximum_thumbnail_width** (`integer`, optional) The maximum width for the thumbnail image in pixels. Define the width according to the available sizes in .png or .jpg formats.
+
+## BoxApi.GetFileCollaborations
+
+
+
+
+Retrieve collaborations for a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique file ID needed to retrieve collaborations. Obtainable from the file's URL in the web app.
+- **requested_fields** (`array[string]`, optional) A list of specific attributes to include in the response. These fields are not typically included and override the standard response fields.
+- **max_items_per_page** (`integer`, optional) The maximum number of collaboration items to return per page in the response. Useful for paginating results.
+- **pagination_start_marker** (`string`, optional) Specifies the position marker for starting result pagination. Requires 'usemarker' set to 'true'.
+
+## BoxApi.GetFileComments
+
+
+
+
+Retrieve comments for a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique file ID, found in the Box web app URL, e.g., for `https://*.app.box.com/files/123`, the ID is `123`.
+- **include_fields_in_response** (`array[string]`, optional) List of attributes to include in the response. Only specified fields and mini representation are returned.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of comments to return per page for the specified file.
+- **response_start_offset** (`integer`, optional) The starting point for comments retrieval. Must not exceed 10000, or a 400 error occurs.
+
+## BoxApi.GetFileTasks
+
+
+
+
+Retrieve all tasks associated with a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, found in the file URL on the Box web application.
+
+## BoxApi.RetrieveTrashedFile
+
+
+
+
+Retrieve a file that has been moved to the trash.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier of a file moved to trash, obtained from the file's URL in the web application.
+- **include_attributes_in_response** (`array[string]`, optional) A list of attributes to include in the response. Only specified fields and mini representation fields are returned.
+
+## BoxApi.PermanentlyDeleteFileFromTrash
+
+
+
+
+Permanently delete a file that is in the trash.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier of a file to be permanently deleted from the trash. Obtainable from the file URL.
+
+## BoxApi.GetFileVersionHistory
+
+
+
+
+Retrieve a list of past versions for a file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique ID representing a file in Box. Obtainable from the file's URL, e.g., `https://*.app.box.com/files/123` where `123` is the ID.
+- **requested_fields** (`array[string]`, optional) A list of specific file attributes to include in the response. Only these fields, plus the mini representation, will be returned.
+- **max_items_per_page** (`integer`, optional) Maximum number of file versions to return per page.
+- **response_start_offset** (`integer`, optional) The item offset to begin the response from. Must not exceed 10000; otherwise, a 400 error will be returned.
+
+## BoxApi.RetrieveFileVersion
+
+
+
+
+Retrieve a specific version of a file for premium Box users.
+
+**Parameters**
+
+- **unique_file_identifier** (`string`, required) The unique identifier for a file on Box. Obtainable from the file's URL (e.g., '123' in 'https://\*.app.box.com/files/123').
+- **file_version_identifier** (`string`, required) The unique ID representing the specific version of a file to retrieve.
+- **include_additional_attributes** (`array[string]`, optional) List of additional attributes to include in the response. Specify as an array of strings. Only fields specified will be returned, along with the mini representation.
+
+## BoxApi.DeleteBoxFileVersion
+
+
+
+
+Delete a specific file version from Box.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file in Box. Obtain it from the file's URL in the web app. Example: '123' for URL 'https://\*.app.box.com/files/123'.
+- **file_version_id** (`string`, required) The unique identifier of the file version to be deleted. Obtainable from the Box platform.
+- **if_match_etag_value** (`string`, optional) Pass the item's last observed etag value to ensure it hasn't changed before deletion. Use this to prevent conflicts.
+
+## BoxApi.RetrieveFileMetadata
+
+
+
+
+Retrieve all metadata for a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier of a file, obtained from the URL in the Box web application. For example, from `https://*.app.box.com/files/123`, the `file_id` is `123`.
+
+## BoxApi.GetFileClassificationMetadata
+
+
+
+
+Retrieve classification metadata for a specific file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, obtained from the file's URL in the Box web application. For example, in `https://*.app.box.com/files/123`, the `file_id` is `123`.
+
+## BoxApi.RemoveFileClassification
+
+
+
+
+Remove classifications from a specified file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for the file whose classification is to be removed. Obtainable from the Box file URL.
+
+## BoxApi.RetrieveFileTemplateMetadata
+
+
+
+
+Retrieve metadata for a specific file template.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, obtainable from the file URL in the Box web application.
+- **metadata_scope** (`string`, required) Defines the scope of the metadata template to be retrieved. Options are 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to retrieve for the specified file.
+
+## BoxApi.DeleteFileMetadata
+
+
+
+
+Deletes metadata from a specified file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, retrievable from the file URL, e.g., `https://*.app.box.com/files/123` where `123` is the ID.
+- **metadata_scope** (`string`, required) Specifies the scope of the metadata template. Choose 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to be deleted from the file.
+
+## BoxApi.GetBoxSkillsMetadata
+
+
+
+
+Retrieve Box Skills metadata cards for a given file.
+
+**Parameters**
+
+- **file_id** (`string`, required) The unique identifier for the file in Box. Obtainable from the file's URL in the Box web app.
+
+## BoxApi.RemoveBoxSkillsMetadata
+
+
+
+
+Remove Box Skills cards metadata from a file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier for a file, which can be extracted from the URL in the web application. For example, in `https://*.app.box.com/files/123`, the `file_id` is `123`.
+
+## BoxApi.GetFileWatermark
+
+
+
+
+Retrieve the watermark for a file by its ID.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique identifier of a file. Obtainable from the URL when viewing a file on the web application.
+
+## BoxApi.RemoveFileWatermark
+
+
+
+
+Removes the watermark from a specified file.
+
+**Parameters**
+
+- **file_identifier** (`string`, required) The unique ID for the file, found in its Box URL. For example, from `https://*.app.box.com/files/123`, `file_id` is `123`.
+
+## BoxApi.RetrieveFileRequestInfo
+
+
+
+
+Retrieve information about a specific file request.
+
+**Parameters**
+
+- **file_request_unique_id** (`string`, required) The unique identifier for a file request, obtainable from the URL in the file request builder.
+
+## BoxApi.DeleteFileRequest
+
+
+
+
+Permanently delete a specific file request.
+
+**Parameters**
+
+- **file_request_identifier** (`string`, required) The unique ID representing a file request, extracted from the URL in the file request builder.
+
+## BoxApi.GetFolderDetails
+
+
+
+
+Retrieve details for a folder and its first 100 entries.
+
+**Parameters**
+
+- **folder_unique_identifier** (`string`, required) The unique identifier for a folder. Obtainable from the folder's URL, e.g., `123` in `https://*.app.box.com/folder/123`. The root folder's ID is `0`.
+- **requested_fields** (`array[string]`, optional) A list of attributes to include in the response. Use for fields not normally returned in standard responses or for querying file metadata.
+- **secondary_sort_attribute** (`string`, optional) Defines the second attribute by which folder items are sorted. Options include 'id', 'name', 'date', or 'size'. Not supported for root folders.
+- **sort_direction** (`string`, optional) The order to sort results: 'ASC' for ascending or 'DESC' for descending.
+- **response_offset** (`integer`, optional) The zero-based index to start the response from. Values exceeding 10000 are rejected with a 400 error.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return in a single page of results. Controls pagination by limiting the number of entries per response.
+- **ensure_item_has_changed** (`string`, optional) Supply the item's last known etag value to receive a response only if the item has changed. If unchanged, it returns a 304 status.
+- **shared_link_credentials** (`string`, optional) The URL and optional password for the shared link to access items. Format as `shared_link=[link]` or `shared_link=[link]&shared_link_password=[password]`.
+
+## BoxApi.DeleteFolder
+
+
+
+
+Delete a folder permanently or move it to the trash.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier representing a folder. Determine it by copying the ID from the folder's URL in the Box web application. The root folder ID is '0'.
+- **ensure_unchanged_etag** (`string`, optional) Last observed `etag` value to ensure the folder hasn't changed before deletion. If changed, the operation fails with a 412 error.
+- **delete_recursively** (`boolean`, optional) Set to true to delete a non-empty folder and all its content recursively.
+
+## BoxApi.GetFolderAppItemAssociations
+
+
+
+
+Retrieve app items associated with a specific folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier representing a folder. Obtainable from the folder's URL. The root folder ID is '0'.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving app items associated with a folder.
+- **pagination_start_marker** (`string`, optional) Position marker to begin returning results. Used for marker-based pagination. Requires `usemarker` set to `true`.
+- **filter_by_application_type** (`string`, optional) Return only app items for the specified application type.
+
+## BoxApi.RetrieveFolderItems
+
+
+
+
+Retrieve items in a specified folder, including files and links.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) Unique ID of a folder. Obtainable from the folder's URL. Root folder ID is always '0'.
+- **included_attributes** (`array[string]`, optional) List of attributes to include in the response. Specify fields normally omitted in standard responses or query metadata using the format 'metadata.scope.key'.
+- **pagination_start_marker** (`string`, optional) Specifies the starting point for marker-based pagination. Requires 'usemarker' to be set to true.
+- **starting_item_offset** (`integer`, optional) Specifies the starting point for the items to be returned. Must be an integer and cannot exceed 10000, or a 400 response is returned.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page. Specify an integer value.
+- **sort_attribute** (`string`, optional) Specifies the secondary attribute for sorting folder items. Options: 'id', 'name', 'date', or 'size'. Not supported for marker-based pagination on root folders.
+- **sort_direction** (`string`, optional) The direction to sort results: alphabetical ascending (ASC) or descending (DESC).
+- **shared_link_credentials** (`string`, optional) Provide the shared link URL and optional password to access items not explicitly shared with a user. Use 'shared_link=[link]' or 'shared_link=[link]&shared_link_password=[password]'.
+- **use_marker_based_pagination** (`boolean`, optional) Set to true to enable marker-based pagination, which returns a marker for fetching the next page. Only one pagination method can be active at a time.
+
+## BoxApi.GetFolderCollaborations
+
+
+
+
+Retrieve pending and active collaborations for a folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder, obtainable from the folder's URL in the Box web application. For example, in the URL `https://*.app.box.com/folder/123`, the `folder_id` is `123`.
+- **included_attributes** (`array[string]`, optional) List of attributes to include in the response, overriding standard fields unless specified.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page.
+- **start_position_marker** (`string`, optional) The position marker to begin returning results for marker-based pagination. Requires usemarker set to true.
+
+## BoxApi.RetrieveTrashedFolder
+
+
+
+
+Retrieve a specific folder from the trash.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder. Obtainable from the folder's URL in the web application. '0' represents the root folder.
+- **include_attributes_in_response** (`array[string]`, optional) A list of attribute names to include in the response, specifying non-standard fields for retrieval.
+
+## BoxApi.PermanentlyDeleteFolderInTrash
+
+
+
+
+Permanently delete a folder from the trash.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier representing a folder to be permanently deleted from the trash. Obtainable from folder URL or use '0' for root folder.
+
+## BoxApi.RetrieveFolderMetadata
+
+
+
+
+Retrieve all metadata for a specific folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder, excluding the root folder with ID `0`. Obtainable from the URL when viewing a folder in Box.
+
+## BoxApi.GetFolderClassification
+
+
+
+
+Retrieve classification metadata for a specific folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder, retrievable from the folder's URL or as `0` for the root folder.
+
+## BoxApi.RemoveFolderClassifications
+
+
+
+
+Remove classifications from a specified folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier representing a folder. Obtain this by visiting the folder URL (e.g., `https://*.app.box.com/folder/123`). The root folder ID is `0`.
+
+## BoxApi.GetFolderMetadata
+
+
+
+
+Retrieve metadata template instance applied to a folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique ID representing a folder. Obtainable from the folder's URL, but not the root folder (ID `0`).
+- **metadata_scope** (`string`, required) The scope of the metadata template. It can be either 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to retrieve from the folder. Excludes root folder (ID `0`).
+
+## BoxApi.DeleteFolderMetadata
+
+
+
+
+Deletes metadata from a specified folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder. Obtainable from the folder URL; use '0' for the root folder.
+- **metadata_template_scope** (`string`, required) The scope of the metadata template. Choose either 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to be deleted from the folder.
+
+## BoxApi.RetrieveTrashedItems
+
+
+
+
+Retrieve files and folders from the trash.
+
+**Parameters**
+
+- **include_attributes** (`array[string]`, optional) List of attributes to include in the response, such as non-default fields. Only these and mini representation fields will be returned.
+- **maximum_items_per_page** (`integer`, optional) Specify the maximum number of items to return per page when retrieving trashed items. This value controls pagination to limit the items returned in a single request.
+- **pagination_offset** (`integer`, optional) The index to start retrieving items from the trash. Must be less than or equal to 10000.
+- **pagination_marker** (`string`, optional) Defines the position marker for marker-based pagination. Requires 'use_marker_based_pagination' to be true.
+- **sort_direction** (`string`, optional) The direction to sort results: 'ASC' for ascending or 'DESC' for descending alphabetical order.
+- **secondary_sort_attribute** (`string`, optional) Defines the second attribute by which items are sorted, such as 'name', 'date', or 'size'. Unsupported with marker-based pagination.
+- **use_marker_based_pagination** (`boolean`, optional) Set to true to use marker-based pagination instead of offset-based pagination, allowing retrieval of the next page with a 'marker' field.
+
+## BoxApi.GetFolderWatermark
+
+
+
+
+Retrieve the watermark for a specific folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique ID representing a folder. It can be found in the URL when viewing the folder in the web app. The root folder ID is '0'.
+
+## BoxApi.RemoveWatermarkFromFolder
+
+
+
+
+Removes the watermark from a specified folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder. This ID can be found in the URL when visiting the folder in the Box web application. For instance, in `https://*.app.box.com/folder/123`, the `folder_id` is `123`. The root folder is always `0`.
+
+## BoxApi.RetrieveFolderLockDetails
+
+
+
+
+Retrieve lock details for a specific folder.
+
+**Parameters**
+
+- **folder_identifier** (`string`, required) The unique identifier for a folder. Obtainable by visiting the folder URL in the Box web app. The root folder is ID '0'.
+
+## BoxApi.DeleteFolderLock
+
+
+
+
+Delete a specific folder lock if you're the owner or co-owner.
+
+**Parameters**
+
+- **folder_lock_identifier** (`string`, required) The unique ID of the folder lock to be deleted. You must be the owner or co-owner of the folder.
+
+## BoxApi.FindMetadataTemplate
+
+
+
+
+Retrieve metadata template details by ID.
+
+**Parameters**
+
+- **metadata_instance_id** (`string`, required) The ID of the metadata template instance to retrieve details for.
+- **pagination_position_marker** (`string`, optional) Defines the starting position for marker-based pagination results. Requires `usemarker` to be `true`.
+- **items_per_page_limit** (`integer`, optional) Specify the maximum number of items to return per page for pagination purposes.
+
+## BoxApi.GetClassificationMetadata
+
+
+
+
+Retrieve classification metadata template for the enterprise.
+
+**Parameters**
+
+This tool does not take any parameters.
+
+## BoxApi.RetrieveMetadataTemplate
+
+
+
+
+Retrieve a metadata template by scope and template key.
+
+**Parameters**
+
+- **metadata_template_scope** (`string`, required) Specifies the scope for the metadata template. Choose between 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to retrieve its details.
+
+## BoxApi.DeleteMetadataTemplate
+
+
+
+
+Permanently delete a metadata template and its instances.
+
+**Parameters**
+
+- **metadata_template_scope** (`string`, required) Specifies the scope of the metadata template. Allowed values are 'global' or 'enterprise'.
+- **metadata_template_name** (`string`, required) The name of the metadata template to be permanently deleted.
+
+## BoxApi.FetchMetadataTemplateById
+
+
+
+
+Retrieve a metadata template using its ID.
+
+**Parameters**
+
+- **template_id** (`string`, required) The unique identifier for the metadata template to be retrieved. Provide a valid template ID.
+
+## BoxApi.RetrieveGlobalMetadataTemplates
+
+
+
+
+Fetches global metadata templates from Box.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) Specifies the position marker to begin returning results for paginated data.
+- **max_items_per_page** (`integer`, optional) The maximum number of metadata templates to return per page from the Box global templates.
+
+## BoxApi.RetrieveEnterpriseMetadataTemplates
+
+
+
+
+Retrieve metadata templates for the user's enterprise.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) Position marker to begin returning results, used with marker-based pagination. Requires `usemarker` to be `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving metadata templates.
+
+## BoxApi.GetMetadataCascadePolicies
+
+
+
+
+Retrieve metadata cascade policies for a folder.
+
+**Parameters**
+
+- **target_folder_id** (`string`, required) The ID of the folder to query for metadata cascade policies. The root folder with ID '0' is not allowed.
+- **owner_enterprise_id** (`string`, optional) The ID of the enterprise to find metadata cascade policies for. Defaults to the current enterprise if not specified.
+- **pagination_marker** (`string`, optional) Position marker for paginating results. Set `usemarker` to true to enable.
+- **response_offset** (`integer`, optional) The offset at which to begin the response, must not exceed 10000.
+
+## BoxApi.RetrieveMetadataCascadePolicy
+
+
+
+
+Retrieve a specific metadata cascade policy for a folder.
+
+**Parameters**
+
+- **metadata_cascade_policy_id** (`string`, required) The unique identifier for the metadata cascade policy to retrieve.
+
+## BoxApi.DeleteMetadataCascadePolicy
+
+
+
+
+Deletes a metadata cascade policy by ID.
+
+**Parameters**
+
+- **metadata_cascade_policy_id** (`string`, required) The unique ID of the metadata cascade policy to be deleted. Ensure it is valid and exists.
+
+## BoxApi.FetchCommentDetails
+
+
+
+
+Retrieve detailed information about a specific comment.
+
+**Parameters**
+
+- **comment_id** (`string`, required) The unique identifier for the comment whose details are being fetched. This ID is required to retrieve the comment's message, metadata, and creator information.
+- **include_fields** (`array[string]`, optional) A list of attributes to include in the response. Only specified fields will be returned along with the mini representation.
+
+## BoxApi.DeleteComment
+
+
+
+
+Permanently deletes a specific comment by ID.
+
+**Parameters**
+
+- **comment_id** (`string`, required) The unique identifier of the comment you want to permanently delete.
+
+## BoxApi.GetCollaborationDetails
+
+
+
+
+Retrieve details of a specific collaboration.
+
+**Parameters**
+
+- **collaboration_id** (`string`, required) The unique identifier for the collaboration to retrieve details about.
+- **include_fields** (`array[string]`, optional) List of specific attributes to include in the response, which are not typically returned. Specify explicitly to retrieve these fields.
+
+## BoxApi.DeleteCollaboration
+
+
+
+
+Deletes a specified collaboration by ID.
+
+**Parameters**
+
+- **collaboration_id_to_delete** (`string`, required) The unique identifier of the collaboration to be deleted. Provide this ID to remove the specified collaboration.
+
+## BoxApi.GetPendingCollaborationInvites
+
+
+
+
+Retrieve user's pending collaboration invites from Box.
+
+**Parameters**
+
+- **collaboration_status** (`string`, required) Set to 'pending' to retrieve all pending collaboration invitations.
+- **include_attributes** (`array[string]`, optional) List of attribute names to include in the response. This overrides default fields, returning only specified attributes.
+- **starting_item_offset** (`integer`, optional) Starting index for the response items. Cannot exceed 10000 to avoid errors.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of collaboration invites to return per page.
+
+## BoxApi.RetrieveTaskInformation
+
+
+
+
+Fetch details of a specific task by ID.
+
+**Parameters**
+
+- **task_id** (`string`, required) The unique identifier for the specific task to retrieve information about.
+
+## BoxApi.DeleteTaskFromFile
+
+
+
+
+Removes a specific task from a file.
+
+**Parameters**
+
+- **task_identifier** (`string`, required) The unique identifier for the task to be removed from the file.
+
+## BoxApi.ListTaskAssignments
+
+
+
+
+Retrieve all assignments for a specified task.
+
+**Parameters**
+
+- **task_id** (`string`, required) The unique identifier of the task for which assignments need to be retrieved. It must be provided as a string.
+
+## BoxApi.RetrieveTaskAssignmentInfo
+
+
+
+
+Retrieve detailed information about a task assignment.
+
+**Parameters**
+
+- **task_assignment_id** (`string`, required) The unique identifier for the task assignment to retrieve its details.
+
+## BoxApi.DeleteTaskAssignment
+
+
+
+
+Delete a specific task assignment.
+
+**Parameters**
+
+- **task_assignment_id** (`string`, required) The unique identifier of the task assignment to be deleted.
+
+## BoxApi.RetrieveSharedFileInfo
+
+
+
+
+Retrieve file information from a shared link.
+
+**Parameters**
+
+- **shared_link_credentials** (`string`, required) A header string containing the shared link and optional password. Format: `shared_link=[link]&shared_link_password=[password]`.
+- **include_attributes_in_response** (`array[string]`, optional) A list of attributes to include in the response, specifying non-standard fields and affecting returned data format.
+- **etag_for_change_detection** (`string`, optional) Pass the last observed etag value to return the item only if it has changed.
+
+## BoxApi.GetSharedLinkInfo
+
+
+
+
+Retrieve shared link details for a specific file.
+
+**Parameters**
+
+- **include_shared_link_fields** (`string`, required) Specify if the `shared_link` fields should be explicitly returned for the file item.
+- **file_identifier** (`string`, required) The unique identifier for a file, found in the URL when accessing a file in the web application (e.g., for the URL `https://*.app.box.com/files/123`, the `file_id` is `123`).
+
+## BoxApi.GetSharedFolderInfo
+
+
+
+
+Retrieve folder details using a shared link.
+
+**Parameters**
+
+- **shared_link_header** (`string`, required) A string containing the shared link and optional password formatted as 'shared_link=[link]&shared_link_password=[password]'.
+- **include_fields** (`array[string]`, optional) A list of specific attributes to include in the response. Only these fields will be returned unless explicitly specified otherwise.
+- **etag_condition** (`string`, optional) Provide the last observed etag to receive the item only if it has changed. Useful for caching and reducing unnecessary data transfer.
+
+## BoxApi.GetFolderSharedLinkInfo
+
+
+
+
+Retrieve information for a shared link on a folder.
+
+**Parameters**
+
+- **include_shared_link_fields** (`string`, required) Specify if the shared_link fields should be explicitly returned for this folder.
+- **folder_identifier** (`string`, required) The unique ID of the folder to retrieve shared link info for. It can be found in the folder URL in Box or use '0' for the root folder.
+
+## BoxApi.RetrieveWebLinkInfo
+
+
+
+
+Retrieve information about a specific web link.
+
+**Parameters**
+
+- **web_link_id** (`string`, required) The unique identifier for the web link to retrieve information about.
+- **shared_link_access_details** (`string`, optional) The URL and optional password for accessing the shared link, formatted as `shared_link=[link]` or `shared_link=[link]&shared_link_password=[password]`. Use this to access items not explicitly shared with a user.
+
+## BoxApi.DeleteWebLink
+
+
+
+
+Delete a specified web link based on its ID.
+
+**Parameters**
+
+- **web_link_id** (`string`, required) The unique identifier for the web link to be deleted.
+
+## BoxApi.RetrieveTrashedWebLink
+
+
+
+
+Retrieves a web link that has been moved to the trash.
+
+**Parameters**
+
+- **web_link_id** (`string`, required) The unique identifier of the web link to retrieve from the trash.
+- **include_fields_in_response** (`array[string]`, optional) List of attributes to include in the response, overriding standard fields; only mini representation plus these fields will be returned.
+
+## BoxApi.PermanentlyDeleteTrashedWebLink
+
+
+
+
+Permanently delete a trashed web link.
+
+**Parameters**
+
+- **web_link_identifier** (`string`, required) The unique identifier of the web link to be permanently deleted from the trash. This ID is required to specify which web link should be removed.
+
+## BoxApi.RetrieveSharedWebLink
+
+
+
+
+Retrieve information about a shared web link using a shared link.
+
+**Parameters**
+
+- **shared_link_header** (`string`, required) A string containing the shared link and optional password in the format: 'shared_link=[link]&shared_link_password=[password]'.
+- **include_attributes_in_response** (`array[string]`, optional) A list of attributes to include in the response. Only specified fields and fields for the mini representation will be returned.
+- **etag_if_updated_only** (`string`, optional) Provide the last observed etag value to only return the web link if it has been updated. This helps avoid unnecessary data transfer if no changes have occurred.
+
+## BoxApi.GetSharedWebLinkInfo
+
+
+
+
+Retrieve shared link information for a web link.
+
+**Parameters**
+
+- **request_shared_link_fields** (`string`, required) Specify the shared link fields to be explicitly returned for the web link.
+- **web_link_identifier** (`string`, required) The ID of the web link for which to retrieve shared link information.
+
+## BoxApi.GetSharedAppItem
+
+
+
+
+Retrieve details of an app item using a shared link.
+
+**Parameters**
+
+- **shared_link_information** (`string`, required) A string with the format `shared_link=[link]&shared_link_password=[password]`, containing the shared link and an optional password.
+
+## BoxApi.ListEnterpriseUsers
+
+
+
+
+Retrieve all users in the enterprise.
+
+**Parameters**
+
+- **search_term_for_user_filtering** (`string`, optional) Limits results to users whose name or login begins with the specified term. Complete match required for external users.
+- **user_type_filter** (`string`, optional) Specify the type of users to include: 'all', 'managed', or 'external'.
+- **filter_by_external_app_user_id** (`string`, optional) Filter results to app users with the specified external app user ID. Used for retrieving users matching this ID.
+- **include_additional_fields** (`array[string]`, optional) Specify additional attributes for inclusion in the response. Only selected fields and mini representation fields will be returned.
+- **response_offset** (`integer`, optional) The starting point for the response; queries exceeding 10000 will return a 400 error.
+- **max_items_per_page** (`integer`, optional) The maximum number of user records to return per page.
+- **pagination_start_marker** (`string`, optional) Defines the position marker where results begin when using marker-based pagination. Requires `usemarker` set to `true`.
+- **use_marker_pagination** (`boolean`, optional) Set to true to use marker-based pagination. This enables a `marker` field in the response for pagination.
+
+## BoxApi.GetAuthenticatedUserInfo
+
+
+
+
+Retrieve details of the currently authenticated user.
+
+**Parameters**
+
+- **requested_user_attributes** (`array[string]`, optional) List of user attributes to include in the response. Use to request non-standard fields, results in basic fields only unless specified.
+
+## BoxApi.GetUserInformation
+
+
+
+
+Retrieve detailed user information in the enterprise.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The unique identifier for the user whose information you want to retrieve.
+- **requested_user_fields** (`array[string]`, optional) An array of attributes to include in the response. Only specified fields are returned unless otherwise stated.
+
+## BoxApi.DeleteUserAccount
+
+
+
+
+Delete a user account from the system.
+
+**Parameters**
+
+- **user_id** (`string`, required) The unique identifier for the user to be deleted. Required for specifying which user account to delete.
+- **send_deletion_notification** (`boolean`, optional) Indicate whether the user should receive an email notification about the deletion. Set to true to send notification.
+- **force_delete_user** (`boolean`, optional) Set to true to delete the user and their files even if they still own content.
+
+## BoxApi.GetUserAvatar
+
+
+
+
+Retrieve the image of a user's avatar.
+
+**Parameters**
+
+- **user_id** (`string`, required) The ID of the user whose avatar you want to retrieve.
+
+## BoxApi.RemoveUserAvatar
+
+
+
+
+Removes a user's existing avatar.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The unique identifier of the user whose avatar is to be deleted. Ensure this ID is correct, as the operation cannot be reversed.
+
+## BoxApi.GetUserEmailAliases
+
+
+
+
+Retrieve all email aliases for a specific user.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The unique ID of the user to retrieve email aliases for, formatted as a string.
+
+## BoxApi.RemoveUserEmailAlias
+
+
+
+
+Removes an email alias from a user account.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The unique ID of the user whose email alias is to be removed.
+- **email_alias_id** (`string`, required) The unique identifier of the email alias to be removed. This is required to specify which alias to delete from the user account.
+
+## BoxApi.GetUserGroupMemberships
+
+
+
+
+Retrieve all groups a user belongs to.
+
+**Parameters**
+
+- **user_identifier** (`string`, required) The ID of the user to retrieve group memberships for.
+- **max_items_per_page** (`integer`, optional) Maximum number of items to return per page. Set an integer value to limit the results displayed at once.
+- **response_offset** (`integer`, optional) The starting point offset for the response items. Must be 10000 or less.
+
+## BoxApi.CheckUserInviteStatus
+
+
+
+
+Retrieve the status of a specific user invite.
+
+**Parameters**
+
+- **invite_id** (`string`, required) The unique identifier for the user invite you want to check. This ID is necessary to retrieve the invite's status.
+- **included_attributes** (`array[string]`, optional) A list of attributes to include in the response. Specify attributes not normally returned in a standard response. Only the mini representation fields are returned unless explicitly specified.
+
+## BoxApi.RetrieveEnterpriseGroups
+
+
+
+
+Retrieve all groups for an enterprise with admin rights.
+
+**Parameters**
+
+- **group_name_starts_with** (`string`, optional) Returns groups whose names start with this search term.
+- **included_attributes** (`array[string]`, optional) List of specific attributes to include in the response. Defaults to mini representation if unspecified.
+- **max_items_per_page** (`integer`, optional) The maximum number of groups to return per page.
+- **starting_item_offset** (`integer`, optional) The offset of the item at which to begin the response. Ensure the value does not exceed 10000 to avoid errors.
+
+## BoxApi.RetrieveGroupInfo
+
+
+
+
+Retrieve detailed information about a specified group.
+
+**Parameters**
+
+- **group_id** (`string`, required) The unique identifier of the group to retrieve information for. Ensure the user has the necessary permissions.
+- **include_additional_fields** (`array[string]`, optional) A list of attributes to include in the response. Only specified fields will be returned alongside default mini representation fields.
+
+## BoxApi.DeleteGroup
+
+
+
+
+Permanently delete a group with admin permissions.
+
+**Parameters**
+
+- **group_id** (`string`, required) The unique identifier of the group to be permanently deleted. Must be used by an admin.
+
+## BoxApi.RetrieveGroupMemberships
+
+
+
+
+Fetch members of a specified group.
+
+**Parameters**
+
+- **group_identifier** (`string`, required) The unique ID of the group to fetch its members. Only members or admins can access this.
+- **max_items_per_page** (`integer`, optional) Specify the maximum number of members to retrieve per page.
+- **response_offset** (`integer`, optional) The starting point for retrieving members. Must not exceed 10000 to avoid errors.
+
+## BoxApi.GetGroupCollaborations
+
+
+
+
+Retrieve collaborations for a specified group.
+
+**Parameters**
+
+- **group_id** (`string`, required) The unique identifier of the group whose collaborations you want to retrieve. This ID is required to specify the group.
+- **max_items_per_page** (`integer`, optional) Specifies the maximum number of collaboration items to return per page. Accepts an integer value.
+- **response_offset** (`integer`, optional) Starting point in the list of collaborations. Must be an integer not exceeding 10000 to avoid rejection.
+
+## BoxApi.RetrieveGroupMembership
+
+
+
+
+Fetch details of a specific group membership.
+
+**Parameters**
+
+- **group_membership_id** (`string`, required) The unique identifier for the specific group membership to retrieve. Only admins or users with admin-level permissions can access this information.
+- **include_fields_list** (`array[string]`, optional) List of specific attributes to include in the response, overriding standard fields.
+
+## BoxApi.DeleteGroupMembership
+
+
+
+
+Delete a specific group membership by ID.
+
+**Parameters**
+
+- **group_membership_id** (`string`, required) The unique identifier for the group membership to be deleted. Required for specifying which membership to remove.
+
+## BoxApi.ListDefinedWebhooks
+
+
+
+
+Retrieve all webhooks for your application.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) The position marker to start returning results from. Required for marker-based pagination with `usemarker` set to `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of webhooks to return per page.
+
+## BoxApi.GetSpecificWebhook
+
+
+
+
+Retrieve details of a specific webhook by ID.
+
+**Parameters**
+
+- **webhook_id** (`string`, required) The unique identifier of the webhook to retrieve details for.
+
+## BoxApi.DeleteWebhook
+
+
+
+
+Delete a specified webhook.
+
+**Parameters**
+
+- **webhook_id** (`string`, required) The unique identifier of the webhook to be deleted. It must be a valid string.
+
+## BoxApi.GetBoxEvents
+
+
+
+
+Retrieve up to a year of past events for a user or enterprise.
+
+**Parameters**
+
+- **event_stream_type** (`string`, optional) Specifies the category of events to retrieve. Options: 'all' for all user events, 'changes' for file updates, 'sync' for synced folders, 'admin_logs' for full enterprise events (requires admin), and 'admin_logs_streaming' for live enterprise events (requires admin).
+- **event_stream_start_position** (`string`, optional) Specifies where to start receiving events in the stream. Use 'now' for initialization or '0' to retrieve all events.
+- **event_limit** (`integer`, optional) The maximum number of events to retrieve. Fewer events may be returned if already available.
+- **event_type_filter** (`array[string]`, optional) List of event types to filter by. Only applicable for 'admin_logs' or 'admin_logs_streaming' stream types.
+- **event_start_date** (`string`, optional) The start date and time for filtering events. Used only with 'admin_logs' stream type.
+- **event_time_upper_bound** (`string`, optional) The upper bound date and time for returning events, used only with 'admin_logs' stream type. Ignored for other stream types.
+
+## BoxApi.RetrieveUserCollections
+
+
+
+
+Retrieve collections for a user, including favorites.
+
+**Parameters**
+
+- **requested_fields** (`array[string]`, optional) A list of attribute names to include in the response. Only specified fields will be returned along with the mini representation.
+- **pagination_offset** (`integer`, optional) Offset of the item to start the response. Must be 10000 or less to avoid rejection with a 400 error.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving user collections.
+
+## BoxApi.RetrieveCollectionContents
+
+
+
+
+Fetch files and folders from a specific collection.
+
+**Parameters**
+
+- **collection_id** (`string`, required) The unique identifier for the collection whose contents are to be retrieved.
+- **attributes_to_include** (`array[string]`, optional) List of attributes to include in the response. Only the specified fields will be returned alongside the mini representation.
+- **response_offset** (`integer`, optional) The starting position in the collection. Must not exceed 10000 to avoid errors.
+- **max_items_per_page** (`integer`, optional) Specifies the maximum number of items to return per page when retrieving the collection contents. This controls pagination and helps manage large datasets.
+
+## BoxApi.RetrieveCollectionById
+
+
+
+
+Retrieve details of a collection using its ID.
+
+**Parameters**
+
+- **collection_identifier** (`string`, required) The unique ID of the collection to retrieve details for.
+
+## BoxApi.GetRecentItemsInfo
+
+
+
+
+Fetch recent items accessed by a user in Box.
+
+**Parameters**
+
+- **include_additional_fields** (`array[string]`, optional) A list of attributes to include in the response, overriding the default fields.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page when fetching recent items accessed by a user.
+- **pagination_start_marker** (`string`, optional) A position marker to begin returning results, used for marker-based pagination. Requires `usemarker=true`.
+
+## BoxApi.GetEnterpriseRetentionPolicies
+
+
+
+
+Retrieve all retention policies for an enterprise.
+
+**Parameters**
+
+- **filter_by_policy_name_prefix** (`string`, optional) Filter results using a case-sensitive prefix for retention policy names.
+- **filter_by_retention_policy_type** (`string`, optional) Filter retention policies by type: 'finite' or 'indefinite'.
+- **filter_by_creator_user_id** (`string`, optional) Filters the retention policies by the ID of the user who created them. Provide the user ID for specific filtering.
+- **include_fields** (`array[string]`, optional) A list of attributes to include in the response, replacing standard fields unless specified.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of retention policies to return per page.
+- **pagination_start_marker** (`string`, optional) Defines the position marker to begin returning results for marker-based pagination.
+
+## BoxApi.GetRetentionPolicy
+
+
+
+
+Retrieve details of a specified retention policy.
+
+**Parameters**
+
+- **retention_policy_id** (`string`, required) The ID of the retention policy to retrieve details for. This ID is essential for accessing the specific policy information.
+- **include_attributes** (`array[string]`, optional) List of attributes to include in the response. Standard fields are omitted unless explicitly specified.
+
+## BoxApi.DeleteRetentionPolicy
+
+
+
+
+Permanently deletes a specified retention policy.
+
+**Parameters**
+
+- **retention_policy_id** (`string`, required) The unique identifier of the retention policy to be permanently deleted.
+
+## BoxApi.GetRetentionPolicyAssignments
+
+
+
+
+Retrieve retention policy assignments by policy ID.
+
+**Parameters**
+
+- **retention_policy_id** (`string`, required) The unique identifier of the retention policy to retrieve assignments for.
+- **assignment_type** (`string`, optional) The type of retention policy assignment to retrieve, such as 'folder', 'enterprise', or 'metadata_template'.
+- **include_fields_in_response** (`array[string]`, optional) A list of attribute names to include in the response. These specify additional fields to return beyond the standard response.
+- **pagination_start_marker** (`string`, optional) The position marker to begin returning results for marker-based pagination.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving retention policy assignments.
+
+## BoxApi.RetrieveRetentionPolicyAssignment
+
+
+
+
+Fetch details of a retention policy assignment by ID.
+
+**Parameters**
+
+- **retention_policy_assignment_id** (`string`, required) The ID of the specific retention policy assignment to retrieve details for.
+- **include_fields_in_response** (`array[string]`, optional) A list of attributes to include in the response. If specified, standard fields are excluded unless explicitly mentioned.
+
+## BoxApi.RemoveRetentionPolicyAssignment
+
+
+
+
+Removes a retention policy assignment from content.
+
+**Parameters**
+
+- **retention_policy_assignment_id** (`string`, required) The unique identifier for the retention policy assignment to be removed.
+
+## BoxApi.ListFilesUnderRetentionPolicy
+
+
+
+
+Retrieve files under a retention policy assignment.
+
+**Parameters**
+
+- **retention_policy_assignment_id** (`string`, required) The ID of the retention policy assignment used to identify which retention policy's files to retrieve.
+- **position_marker** (`string`, optional) A string to define where to start returning results for pagination using marker-based pagination. Requires `usemarker` to be `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of files to retrieve per page. Determines the page size for the results.
+
+## BoxApi.GetFileVersionsUnderRetention
+
+
+
+
+Fetch file versions under a specific retention policy assignment.
+
+**Parameters**
+
+- **retention_policy_assignment_id** (`string`, required) The ID of the retention policy assignment to retrieve file versions under retention.
+- **pagination_start_marker** (`string`, optional) Defines the position marker to start returning results. Requires `usemarker` to be `true` for marker-based pagination.
+- **max_items_per_page** (`integer`, optional) Specifies the maximum number of file versions to return per page during retrieval.
+
+## BoxApi.RetrieveLegalHoldPolicies
+
+
+
+
+Retrieve a list of enterprise legal hold policies.
+
+**Parameters**
+
+- **policy_name_prefix** (`string`, optional) Limits results to policies where names start with this term. It's case-insensitive.
+- **response_attributes** (`array[string]`, optional) A list of attributes to include in the response. Only the specified fields and mini representation fields will be returned.
+- **pagination_marker** (`string`, optional) The position marker to start returning results, used for marker-based pagination. Requires `usemarker` to be `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page. This controls the number of legal hold policies retrieved in a single request.
+
+## BoxApi.RetrieveLegalHoldPolicy
+
+
+
+
+Retrieve information about a specific legal hold policy.
+
+**Parameters**
+
+- **legal_hold_policy_id** (`string`, required) The unique identifier for the specific legal hold policy to retrieve.
+
+## BoxApi.DeleteLegalHoldPolicy
+
+
+
+
+Initiate deletion of a legal hold policy.
+
+**Parameters**
+
+- **legal_hold_policy_id** (`string`, required) The ID of the legal hold policy to delete. This is necessary to identify and initiate the deletion of the specified policy.
+
+## BoxApi.GetLegalHoldPolicyAssignments
+
+
+
+
+Retrieve items assigned to a legal hold policy.
+
+**Parameters**
+
+- **legal_hold_policy_id** (`string`, required) The unique identifier for the legal hold policy to retrieve assignments for.
+- **filter_by_assignment_type** (`string`, optional) Specify the type of item (e.g., file, folder, user, etc.) the policy was applied to. Choices: ['file', 'file_version', 'folder', 'user', 'ownership', 'interactions'].
+- **filter_by_item_id** (`string`, optional) Filters results by the ID of the item the policy was applied to.
+- **pagination_marker** (`string`, optional) Specifies the position to start retrieving results using marker-based pagination. Requires `usemarker` to be set to `true`.
+- **maximum_items_per_page** (`integer`, optional) Set the maximum number of items to retrieve per page for optimal pagination control.
+- **response_fields** (`array[string]`, optional) List of attributes to include in the response, overriding standard fields unless specified.
+
+## BoxApi.RetrieveLegalHoldPolicyAssignment
+
+
+
+
+Retrieve details of a specific legal hold policy assignment.
+
+**Parameters**
+
+- **legal_hold_policy_assignment_id** (`string`, required) The unique identifier for the legal hold policy assignment to retrieve details about.
+
+## BoxApi.RemoveLegalHoldFromItem
+
+
+
+
+Initiate removal of a legal hold from an item.
+
+**Parameters**
+
+- **legal_hold_policy_assignment_id** (`string`, required) The unique identifier for the legal hold policy assignment you wish to remove. This value is necessary to initiate the removal process.
+
+## BoxApi.GetFilesOnLegalHold
+
+
+
+
+Retrieve files currently on legal hold for a specific assignment.
+
+**Parameters**
+
+- **legal_hold_policy_assignment_id** (`string`, required) The ID of the legal hold policy assignment to retrieve files currently on hold.
+- **pagination_marker** (`string`, optional) Position marker for starting the result set when using marker-based pagination. Requires the 'usemarker' parameter to be true.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of items to return per page. Use this to control pagination size.
+- **included_attributes** (`array[string]`, optional) A list of specific attributes to include in the response. Only these attributes will be returned unless others are explicitly specified. Use this to customize the response fields.
+
+## BoxApi.GetFileVersionRetentions
+
+
+
+
+Retrieve file version retentions for an enterprise.
+
+**Parameters**
+
+- **filter_by_file_id** (`string`, optional) Filters results to include only files with this specific file ID.
+- **filter_by_file_version_id** (`string`, optional) Filters results by file versions matching this ID.
+- **retention_policy_id** (`string`, optional) Filter results by the specific retention policy ID.
+- **filter_by_disposition_action** (`string`, optional) Filter results based on the retention policy's disposition action, such as 'permanently_delete' or 'remove_retention'.
+- **filter_by_disposition_before_date** (`string`, optional) Provide a date to filter results by files that will have their disposition come into effect before this date. Format: YYYY-MM-DD.
+- **disposition_effective_after_date** (`string`, optional) Filter results by files with disposition effective after this date. Use ISO 8601 format (e.g., '2023-10-01').
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page.
+- **pagination_start_marker** (`string`, optional) Defines the starting point for paginated results using a position marker. Requires marker-based pagination to be enabled.
+
+## BoxApi.GetFileVersionsOnLegalHold
+
+
+
+
+Retrieve previous file versions under a legal hold assignment.
+
+**Parameters**
+
+- **legal_hold_policy_assignment_id** (`string`, required) The ID of the legal hold policy assignment to retrieve previous file versions for.
+- **pagination_start_marker** (`string`, optional) Defines the position marker to start returning results for paginated data retrieval. Requires `usemarker` to be set to `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving file versions.
+- **include_additional_fields_in_response** (`array[string]`, optional) List of attribute names to include in the response. Only specified fields and mini representation fields will be returned.
+
+## BoxApi.GetFileVersionRetentionInfo
+
+
+
+
+Retrieve details of a file version retention.
+
+**Parameters**
+
+- **file_version_retention_id** (`string`, required) The ID of the specific file version retention to retrieve information for. This is required to access retention details.
+
+## BoxApi.RetrieveFileVersionLegalHolds
+
+
+
+
+Get details of legal holds on a specific file version.
+
+**Parameters**
+
+- **file_version_legal_hold_id** (`string`, required) The unique identifier of the file version legal hold to retrieve specific legal hold policy details.
+
+## BoxApi.GetLegacyFileVersionLegalHolds
+
+
+
+
+Retrieve file versions on legal hold in the legacy system.
+
+**Parameters**
+
+- **legal_hold_policy_id** (`string`, required) The ID of the legal hold policy for which file version legal holds need to be retrieved.
+- **pagination_marker** (`string`, optional) A string that defines the starting point for marker-based pagination. Requires `usemarker` to be true.
+- **max_items_per_page** (`integer`, optional) Specify the maximum number of items to return per page for the request.
+
+## BoxApi.GetShieldInformationBarrier
+
+
+
+
+Retrieve shield information barrier by ID.
+
+**Parameters**
+
+- **shield_information_barrier_id** (`string`, required) The unique identifier for the shield information barrier to be retrieved.
+
+## BoxApi.GetShieldInformationBarriers
+
+
+
+
+Retrieve shield information barriers for the enterprise.
+
+**Parameters**
+
+- **pagination_marker** (`string`, optional) Defines the starting point for paginated results using marker-based pagination.
+- **max_items_per_page** (`integer`, optional) The maximum number of shield information barrier objects to return per page. This controls the pagination size.
+
+## BoxApi.GetShieldInformationBarrierReports
+
+
+
+
+Retrieve shield information barrier reports.
+
+**Parameters**
+
+- **shield_information_barrier_id** (`string`, required) The unique identifier for the shield information barrier whose reports need to be fetched.
+- **pagination_marker** (`string`, optional) Position marker to start returning results for pagination. Requires 'usemarker' set to 'true'.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of shield information barrier reports to return per page. This integer value controls the page size for result sets.
+
+## BoxApi.FetchShieldBarrierReport
+
+
+
+
+Retrieve details of a shield information barrier report by ID.
+
+**Parameters**
+
+- **shield_barrier_report_id** (`string`, required) The unique ID of the shield information barrier report to retrieve.
+
+## BoxApi.GetShieldInfoBarrierSegment
+
+
+
+
+Retrieve shield information barrier segment by ID.
+
+**Parameters**
+
+- **barrier_segment_id** (`string`, required) The unique ID of the shield information barrier segment to be retrieved.
+
+## BoxApi.DeleteShieldInformationBarrierSegment
+
+
+
+
+Delete a shield information barrier segment by ID.
+
+**Parameters**
+
+- **shield_information_barrier_segment_id** (`string`, required) The ID of the shield information barrier segment to delete. This should be a valid string representing the segment's unique identifier.
+
+## BoxApi.GetShieldInformationBarrierSegments
+
+
+
+
+Retrieve shield information barrier segment details.
+
+**Parameters**
+
+- **shield_information_barrier_id** (`string`, required) The unique identifier for the shield information barrier that specifies the segment objects to retrieve.
+- **pagination_position_marker** (`string`, optional) Defines the position marker to start returning results from, used for marker-based pagination. Requires usemarker to be true.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of shield information barrier segment items to return in a single request. Ideal for controlling page size during pagination.
+
+## BoxApi.GetShieldInfoBarrierMember
+
+
+
+
+Retrieve details of a shield information barrier segment member.
+
+**Parameters**
+
+- **member_id** (`string`, required) The ID of the shield information barrier segment member to retrieve details for.
+
+## BoxApi.RemoveShieldBarrierMember
+
+
+
+
+Delete a shield information barrier segment member by ID.
+
+**Parameters**
+
+- **member_id_for_deletion** (`string`, required) The ID of the shield information barrier segment member to be deleted.
+
+## BoxApi.ListShieldBarrierSegmentMembers
+
+
+
+
+Retrieve members of shield information barrier segments.
+
+**Parameters**
+
+- **segment_id** (`string`, required) The ID of the shield information barrier segment to retrieve members for.
+- **pagination_marker** (`string`, optional) The position marker to begin returning paginated results. Requires `usemarker` to be `true`.
+- **items_per_page_limit** (`integer`, optional) The maximum number of segment members to return per page. Use this to control pagination by specifying the number of results per page.
+
+## BoxApi.GetShieldInformationBarrierSegmentInfo
+
+
+
+
+Retrieve shield barrier segment restriction by ID.
+
+**Parameters**
+
+- **segment_restriction_id** (`string`, required) The unique identifier for the shield information barrier segment restriction.
+
+## BoxApi.DeleteShieldBarrierSegmentRestriction
+
+
+
+
+Delete a specific shield barrier segment restriction by ID.
+
+**Parameters**
+
+- **barrier_segment_restriction_id** (`string`, required) The ID of the shield information barrier segment restriction to delete.
+
+## BoxApi.GetShieldInformationRestrictions
+
+
+
+
+Retrieve restrictions for a shield information barrier segment.
+
+**Parameters**
+
+- **segment_id** (`string`, required) The unique identifier for the shield information barrier segment to retrieve restrictions.
+- **pagination_position_marker** (`string`, optional) Defines the position marker to begin results, used for marker-based pagination. Requires `usemarker` to be `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of items to return per page when retrieving shield information barrier segment restrictions.
+
+## BoxApi.GetDevicePinInfo
+
+
+
+
+Retrieve details of a specific device pin.
+
+**Parameters**
+
+- **device_pin_identifier** (`string`, required) The unique identifier for the device pin to retrieve information about.
+
+## BoxApi.DeleteDevicePin
+
+
+
+
+Delete a specific device pin from the system.
+
+**Parameters**
+
+- **device_pin_id** (`string`, required) The unique identifier of the device pin to be deleted.
+
+## BoxApi.GetEnterpriseDevicePins
+
+
+
+
+Retrieve all device pins for a specific enterprise.
+
+**Parameters**
+
+- **enterprise_id** (`string`, required) The unique identifier for the enterprise whose device pins are to be retrieved. This is a mandatory field.
+- **pagination_start_marker** (`string`, optional) Defines the starting position for paginated results. Requires 'usemarker' to be true.
+- **max_items_per_page** (`integer`, optional) The maximum number of device pins to retrieve per page.
+- **sort_direction** (`string`, optional) The direction to sort results: alphabetical ascending ('ASC') or descending ('DESC').
+
+## BoxApi.GetEnterpriseTermsOfService
+
+
+
+
+Retrieve the enterprise's terms of service.
+
+**Parameters**
+
+- **terms_of_service_type** (`string`, optional) Specify the type of terms of service to retrieve. Options are 'external' or 'managed'.
+
+## BoxApi.GetSpecificTermsOfService
+
+
+
+
+Fetches details of a specific terms of service.
+
+**Parameters**
+
+- **terms_of_service_id** (`string`, required) The unique identifier for the terms of service to be fetched.
+
+## BoxApi.GetUserTosStatus
+
+
+
+
+Retrieve user acceptance status for terms of service.
+
+**Parameters**
+
+- **terms_of_service_id** (`string`, required) The unique identifier for the specific terms of service document.
+- **filter_by_user_id** (`string`, optional) Limits results to the specified user ID for retrieving their terms of service acceptance status.
+
+## BoxApi.GetSafeCollaborationDomains
+
+
+
+
+Retrieve domains approved for safe collaboration.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) The position marker to begin returning results, used for marker-based pagination. Requires `usemarker` to be `true`.
+- **maximum_items_per_page** (`integer`, optional) The maximum number of domains to return per page. Adjust this to control the page size of results.
+
+## BoxApi.FetchSafeCollaborationDomain
+
+
+
+
+Retrieve a designated safe collaboration domain within an enterprise.
+
+**Parameters**
+
+- **collaboration_whitelist_entry_id** (`string`, required) The ID of the trusted domain entry in the whitelist. Provide this to retrieve its details.
+
+## BoxApi.RemoveSafeCollaborationDomain
+
+
+
+
+Remove a domain from the safe collaboration list.
+
+**Parameters**
+
+- **whitelist_entry_id** (`string`, required) The unique identifier for the domain entry in the safe collaboration list to be removed.
+
+## BoxApi.GetCollaborationWhitelistExemptUsers
+
+
+
+
+Retrieve users exempt from collaboration restrictions.
+
+**Parameters**
+
+- **pagination_position_marker** (`string`, optional) Start position for returning results. Used for marker-based pagination. Requires `usemarker` set to `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of users to return per page. Controls pagination size.
+
+## BoxApi.GetCollaborationWhitelistExemptUser
+
+
+
+
+Retrieve user exempt from collaboration restrictions.
+
+**Parameters**
+
+- **exemption_target_id** (`string`, required) The ID of the user who is exempt from collaboration domain restrictions. This ID is required to retrieve specific user details.
+
+## BoxApi.RemoveCollaborationWhitelistExemption
+
+
+
+
+Remove a user's exemption from domain restrictions in collaborations.
+
+**Parameters**
+
+- **exemption_id** (`string`, required) The ID of the user's exemption to be removed from the collaboration whitelist.
+
+## BoxApi.FetchEnterpriseStoragePolicies
+
+
+
+
+Fetches all storage policies in the enterprise.
+
+**Parameters**
+
+- **include_attributes** (`array[string]`, optional) An array of attribute names to include in the response. Specify attributes not normally returned in a standard response. Only mini representation fields and requested attributes will be returned.
+- **pagination_marker** (`string`, optional) Defines the starting position for returning results using marker-based pagination. Requires `usemarker` to be `true`.
+- **max_items_per_page** (`integer`, optional) Specify the maximum number of storage policy items to return per page.
+
+## BoxApi.FetchStoragePolicy
+
+
+
+
+Retrieve details of a specific storage policy.
+
+**Parameters**
+
+- **storage_policy_identifier** (`string`, required) The unique ID of the storage policy to retrieve details for.
+
+## BoxApi.FetchStoragePolicyAssignments
+
+
+
+
+Retrieve storage policy assignments for enterprise or user.
+
+**Parameters**
+
+- **target_type_for_assignments** (`string`, required) Specifies whether to return storage policy assignments for a 'user' or 'enterprise'.
+- **target_user_or_enterprise_id** (`string`, required) The ID of the user or enterprise to fetch storage policy assignments for.
+- **pagination_marker** (`string`, optional) Defines the position marker to start returning results for pagination. Requires 'usemarker' to be true.
+
+## BoxApi.FetchStoragePolicyAssignment
+
+
+
+
+Retrieve a storage policy assignment by ID.
+
+**Parameters**
+
+- **storage_policy_assignment_id** (`string`, required) The unique identifier of the storage policy assignment to be retrieved.
+
+## BoxApi.DeleteStoragePolicyAssignment
+
+
+
+
+Delete a user's storage policy assignment.
+
+**Parameters**
+
+- **storage_policy_assignment_id** (`string`, required) The ID of the storage policy assignment to delete. This is required and identifies which assignment to delete, reverting the user to the default policy.
+
+## BoxApi.DownloadZipContent
+
+
+
+
+Download the contents of a zip archive.
+
+**Parameters**
+
+- **zip_archive_unique_id** (`string`, required) The unique identifier for the zip archive to be downloaded. This ID must be obtained from the 'Create zip download' API response.
+
+## BoxApi.CheckZipDownloadStatus
+
+
+
+
+Check the status of a zip archive download.
+
+**Parameters**
+
+- **zip_archive_unique_identifier** (`string`, required) The unique identifier representing the zip archive for which to check download status. Obtainable from the `status_url` in the Create zip download API.
+
+## BoxApi.CancelSignRequest
+
+
+
+
+Cancel an existing sign request to stop further processing.
+
+**Parameters**
+
+- **sign_request_id** (`string`, required) The unique identifier of the signature request to be cancelled.
+
+## BoxApi.ResendSignatureRequestEmail
+
+
+
+
+Resend signature request email to outstanding signers.
+
+**Parameters**
+
+- **signature_request_id** (`string`, required) The unique identifier of the signature request to resend emails to outstanding signers.
+
+## BoxApi.RetrieveSignRequestById
+
+
+
+
+Retrieve details of a specific sign request by ID.
+
+**Parameters**
+
+- **signature_request_id** (`string`, required) The unique identifier for the signature request to retrieve.
+
+## BoxApi.FetchSignatureRequests
+
+
+
+
+Retrieve signature requests created by a user.
+
+**Parameters**
+
+- **pagination_marker** (`string`, optional) Defines the starting point for returning results, used for marker-based pagination. Requires use_marker to be true.
+- **max_items_per_page** (`integer`, optional) Specify the maximum number of signature requests to return per page.
+- **sender_email_list** (`array[string]`, optional) A list of sender emails to filter the signature requests by sender. `shared_requests` must be `true` if provided.
+- **include_shared_requests** (`boolean`, optional) Set to true to include signature requests where the user is a collaborator but not the owner. Must be true if sender emails are provided.
+
+## BoxApi.GetManualStartWorkflows
+
+
+
+
+Retrieve workflows with manual start triggers for a folder.
+
+**Parameters**
+
+- **folder_id** (`string`, required) The unique identifier representing a folder. You can find this by visiting the folder in the web application and copying the ID from the URL. The root folder is always represented by ID '0'.
+- **trigger_type_filter** (`string`, optional) Specify the trigger type to search for in workflows. Use 'WORKFLOW_MANUAL_START' for manual triggers.
+- **max_items_per_page** (`integer`, optional) The maximum number of workflows to retrieve per page. Adjust based on your needs to control pagination.
+- **pagination_marker** (`string`, optional) Specifies the position marker to start returning results. Used for marker-based pagination and requires `usemarker` to be set to `true`.
+
+## BoxApi.GetBoxSignTemplates
+
+
+
+
+Retrieve Box Sign templates created by a user.
+
+**Parameters**
+
+- **pagination_marker** (`string`, optional) The starting position marker for result pagination. Requires `usemarker` to be set to `true`.
+- **max_items_per_page** (`integer`, optional) The maximum number of templates to return in a single response.
+
+## BoxApi.FetchBoxSignTemplateDetails
+
+
+
+
+Retrieve details of a specific Box Sign template.
+
+**Parameters**
+
+- **box_sign_template_id** (`string`, required) The unique identifier for a Box Sign template to retrieve its details.
+
+## BoxApi.ListSlackIntegrationMappings
+
+
+
+
+Retrieve Slack integration mappings for a Box enterprise.
+
+**Parameters**
+
+- **pagination_start_marker** (`string`, optional) Defines the starting position for pagination results. Requires 'usemarker' to be true.
+- **max_items_per_page** (`integer`, optional) The maximum number of Slack integration mappings to return per page from the user's enterprise.
+- **mapped_item_type** (`string`, optional) The type of mapped item for which the Slack integration mapping should be returned. Only 'channel' is supported.
+- **mapped_item_id** (`string`, optional) ID of the mapped item for which the Slack integration mapping should be retrieved.
+- **box_item_id** (`string`, optional) Box item ID for which to retrieve Slack integration mappings. Must be a valid ID within the user's enterprise.
+- **box_item_type** (`string`, optional) Specify the type of Box item for which the mappings should be returned. Currently, only 'folder' is supported.
+- **include_manually_created_mappings** (`boolean`, optional) Set to true to include mappings that have been manually created.
+
+## BoxApi.DeleteSlackIntegrationMapping
+
+
+
+
+Deletes a Slack integration mapping for Box content.
+
+**Parameters**
+
+- **slack_integration_mapping_id** (`string`, required) The ID of the Slack integration mapping to be deleted. This requires Admin or Co-Admin permission.
+
+## BoxApi.GetTeamsIntegrationMappings
+
+
+
+
+Retrieve Teams integration mappings for an enterprise.
+
+**Parameters**
+
+- **mapped_item_type** (`string`, optional) Specify the type of item ('channel' or 'team') for which the mapping should be returned.
+- **mapped_item_id** (`string`, optional) The ID of the mapped item for which the mapping should be returned. Required for retrieving specific integration mappings.
+- **box_item_id_for_mappings** (`string`, optional) The Box item ID to retrieve integration mappings for. Required for fetching specific mappings.
+- **box_item_type** (`string`, optional) Specify the type of Box item for which the mappings should be returned. Acceptable value is 'folder'.
+
+## BoxApi.DeleteTeamsIntegrationMapping
+
+
+
+
+Deletes a Teams integration mapping in Box.
+
+**Parameters**
+
+- **integration_mapping_identifier** (`string`, required) The ID of the Teams integration mapping to be deleted. Required for identifying the specific mapping.
+
+## BoxApi.GetAiAgentDefaultConfig
+
+
+
+
+Retrieve the default configuration for the AI agent.
+
+**Parameters**
+
+- **filter_mode** (`string`, required) Specifies the mode to filter and return the agent configuration. Options: 'ask', 'text_gen', 'extract', 'extract_structured'.
+- **agent_config_language_code** (`string`, optional) The ISO language code to specify the language for the AI agent configuration. Default is returned if unsupported.
+- **model_identifier** (`string`, optional) Specify the model name to retrieve the default agent configuration. Ensure it matches the supported model names.
+
+## BoxApi.ListAiAgents
+
+
+
+
+Retrieve a list of AI agents with specified parameters.
+
+**Parameters**
+
+- **filter_by_mode** (`array[string]`, optional) List of modes to filter the agent configuration. Options: `ask`, `text_gen`, `extract`.
+- **response_fields** (`array[string]`, optional) List of fields to return for each AI agent in the response. Specify as an array of strings.
+- **agent_state_filter** (`array[string]`, optional) Specify the states of agents to return. Acceptable values include: 'enabled', 'disabled', and 'enabled_for_selected_users'.
+- **results_start_position_marker** (`string`, optional) The starting point marker for returning paginated results. Use this to continue a previous query from where it left off.
+- **max_items_per_page** (`integer`, optional) The maximum number of AI agents to return for a single page of results.
+- **include_box_default_agents** (`boolean`, optional) Set to true to include Box default AI agents in the response, false otherwise.
+
+## BoxApi.GetAiAgentDetails
+
+
+
+
+Retrieve details of a specific AI agent by ID.
+
+**Parameters**
+
+- **agent_unique_identifier** (`string`, required) The unique identifier of the AI agent to retrieve details for.
+- **fields_to_return** (`array[string]`, optional) List of specific fields to return in the response for the AI agent details.
+
+## BoxApi.DeleteAiAgent
+
+
+
+
+Removes an AI agent by its ID.
+
+**Parameters**
+
+- **agent_id** (`string`, required) The unique identifier of the AI agent you want to delete. This ID specifies which agent will be removed.
+
+
diff --git a/public/examples/integrations/mcp-servers/box_api/abort_upload_session_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/abort_upload_session_example_call_tool.js
new file mode 100644
index 00000000..878c1b60
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/abort_upload_session_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 = "BoxApi.AbortUploadSession";
+
+// 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 = {
+ "upload_session_id": "sess_Abc123XYZ"
+};
+
+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/box_api/abort_upload_session_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/abort_upload_session_example_call_tool.py
new file mode 100644
index 00000000..dcd60837
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/abort_upload_session_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 = "BoxApi.AbortUploadSession"
+
+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 = {
+ 'upload_session_id': 'sess_Abc123XYZ'
+}
+
+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/box_api/cancel_sign_request_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/cancel_sign_request_example_call_tool.js
new file mode 100644
index 00000000..8f853e3e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/cancel_sign_request_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 = "BoxApi.CancelSignRequest";
+
+// 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 = {
+ "sign_request_id": "sr_abc123xyz"
+};
+
+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/box_api/cancel_sign_request_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/cancel_sign_request_example_call_tool.py
new file mode 100644
index 00000000..12bc53b8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/cancel_sign_request_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 = "BoxApi.CancelSignRequest"
+
+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 = {
+ 'sign_request_id': 'sr_abc123xyz'
+}
+
+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/box_api/check_user_invite_status_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/check_user_invite_status_example_call_tool.js
new file mode 100644
index 00000000..5cd741e9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/check_user_invite_status_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 = "BoxApi.CheckUserInviteStatus";
+
+// 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 = {
+ "invite_id": "inv_9a8b7c6d",
+ "included_attributes": [
+ "created_at",
+ "expires_at"
+ ]
+};
+
+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/box_api/check_user_invite_status_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/check_user_invite_status_example_call_tool.py
new file mode 100644
index 00000000..79bef366
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/check_user_invite_status_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 = "BoxApi.CheckUserInviteStatus"
+
+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 = {
+ 'invite_id': 'inv_9a8b7c6d', 'included_attributes': ['created_at', 'expires_at']
+}
+
+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/box_api/check_zip_download_status_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/check_zip_download_status_example_call_tool.js
new file mode 100644
index 00000000..b69229c5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/check_zip_download_status_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 = "BoxApi.CheckZipDownloadStatus";
+
+// 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 = {
+ "zip_archive_unique_identifier": "zip_12345abcdef"
+};
+
+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/box_api/check_zip_download_status_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/check_zip_download_status_example_call_tool.py
new file mode 100644
index 00000000..771a958a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/check_zip_download_status_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 = "BoxApi.CheckZipDownloadStatus"
+
+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 = {
+ 'zip_archive_unique_identifier': 'zip_12345abcdef'
+}
+
+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/box_api/delete_ai_agent_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_ai_agent_example_call_tool.js
new file mode 100644
index 00000000..065d79ad
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_ai_agent_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 = "BoxApi.DeleteAiAgent";
+
+// 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 = {
+ "agent_id": "agent_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/box_api/delete_ai_agent_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_ai_agent_example_call_tool.py
new file mode 100644
index 00000000..eb1a70eb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_ai_agent_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 = "BoxApi.DeleteAiAgent"
+
+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 = {
+ 'agent_id': 'agent_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/box_api/delete_archive_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_archive_example_call_tool.js
new file mode 100644
index 00000000..feae9a76
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_archive_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 = "BoxApi.DeleteArchive";
+
+// 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 = {
+ "archive_id": "arch_12345abcd"
+};
+
+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/box_api/delete_archive_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_archive_example_call_tool.py
new file mode 100644
index 00000000..4a170fc4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_archive_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 = "BoxApi.DeleteArchive"
+
+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 = {
+ 'archive_id': 'arch_12345abcd'
+}
+
+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/box_api/delete_box_file_version_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_box_file_version_example_call_tool.js
new file mode 100644
index 00000000..d96a2f8c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_file_version_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 = "BoxApi.DeleteBoxFileVersion";
+
+// 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 = {
+ "file_identifier": "12345",
+ "file_version_id": "67890",
+ "if_match_etag_value": "\"3a5f9c2b\""
+};
+
+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/box_api/delete_box_file_version_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_box_file_version_example_call_tool.py
new file mode 100644
index 00000000..6ab197ec
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_file_version_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 = "BoxApi.DeleteBoxFileVersion"
+
+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 = {
+ 'file_identifier': '12345', 'file_version_id': '67890', 'if_match_etag_value': '"3a5f9c2b"'
+}
+
+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/box_api/delete_box_hub_collaboration_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_collaboration_example_call_tool.js
new file mode 100644
index 00000000..87c3ab09
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_collaboration_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 = "BoxApi.DeleteBoxHubCollaboration";
+
+// 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 = {
+ "hub_collaboration_identifier": "collab_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/box_api/delete_box_hub_collaboration_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_collaboration_example_call_tool.py
new file mode 100644
index 00000000..c67293f2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_collaboration_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 = "BoxApi.DeleteBoxHubCollaboration"
+
+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 = {
+ 'hub_collaboration_identifier': 'collab_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/box_api/delete_box_hub_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_example_call_tool.js
new file mode 100644
index 00000000..7ce72049
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_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 = "BoxApi.DeleteBoxHub";
+
+// 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 = {
+ "box_hub_unique_id": "hub_3f7a9b2c"
+};
+
+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/box_api/delete_box_hub_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_example_call_tool.py
new file mode 100644
index 00000000..049bdbc1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_box_hub_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 = "BoxApi.DeleteBoxHub"
+
+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 = {
+ 'box_hub_unique_id': 'hub_3f7a9b2c'
+}
+
+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/box_api/delete_collaboration_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_collaboration_example_call_tool.js
new file mode 100644
index 00000000..e3e86f55
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_collaboration_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 = "BoxApi.DeleteCollaboration";
+
+// 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 = {
+ "collaboration_id_to_delete": "collab_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/box_api/delete_collaboration_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_collaboration_example_call_tool.py
new file mode 100644
index 00000000..6e03bc9a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_collaboration_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 = "BoxApi.DeleteCollaboration"
+
+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 = {
+ 'collaboration_id_to_delete': 'collab_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/box_api/delete_comment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_comment_example_call_tool.js
new file mode 100644
index 00000000..11bb4770
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_comment_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 = "BoxApi.DeleteComment";
+
+// 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 = {
+ "comment_id": "cmt_8f3a2b9d"
+};
+
+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/box_api/delete_comment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_comment_example_call_tool.py
new file mode 100644
index 00000000..4a7c71d6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_comment_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 = "BoxApi.DeleteComment"
+
+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 = {
+ 'comment_id': 'cmt_8f3a2b9d'
+}
+
+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/box_api/delete_device_pin_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_device_pin_example_call_tool.js
new file mode 100644
index 00000000..b8a924d8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_device_pin_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 = "BoxApi.DeleteDevicePin";
+
+// 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_pin_id": "pin_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/box_api/delete_device_pin_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_device_pin_example_call_tool.py
new file mode 100644
index 00000000..5a2df5f7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_device_pin_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 = "BoxApi.DeleteDevicePin"
+
+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_pin_id': 'pin_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/box_api/delete_file_from_box_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_file_from_box_example_call_tool.js
new file mode 100644
index 00000000..cd3546d8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_from_box_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 = "BoxApi.DeleteFileFromBox";
+
+// 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 = {
+ "file_identifier": "1234567890",
+ "ensure_no_recent_changes_etag": "0a1b2c3d4e"
+};
+
+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/box_api/delete_file_from_box_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_file_from_box_example_call_tool.py
new file mode 100644
index 00000000..9cec3155
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_from_box_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 = "BoxApi.DeleteFileFromBox"
+
+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 = {
+ 'file_identifier': '1234567890', 'ensure_no_recent_changes_etag': '0a1b2c3d4e'
+}
+
+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/box_api/delete_file_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_file_metadata_example_call_tool.js
new file mode 100644
index 00000000..330a6630
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_metadata_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 = "BoxApi.DeleteFileMetadata";
+
+// 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 = {
+ "file_identifier": "12345",
+ "metadata_scope": "enterprise",
+ "metadata_template_name": "project-info"
+};
+
+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/box_api/delete_file_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_file_metadata_example_call_tool.py
new file mode 100644
index 00000000..b358036d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_metadata_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 = "BoxApi.DeleteFileMetadata"
+
+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 = {
+ 'file_identifier': '12345',
+ 'metadata_scope': 'enterprise',
+ 'metadata_template_name': 'project-info'
+}
+
+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/box_api/delete_file_request_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_file_request_example_call_tool.js
new file mode 100644
index 00000000..d152ff24
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_request_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 = "BoxApi.DeleteFileRequest";
+
+// 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 = {
+ "file_request_identifier": "fr_8a1b2c3d4e5f6g7h"
+};
+
+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/box_api/delete_file_request_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_file_request_example_call_tool.py
new file mode 100644
index 00000000..c07824dc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_file_request_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 = "BoxApi.DeleteFileRequest"
+
+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 = {
+ 'file_request_identifier': 'fr_8a1b2c3d4e5f6g7h'
+}
+
+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/box_api/delete_folder_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_folder_example_call_tool.js
new file mode 100644
index 00000000..fbd93b02
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_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 = "BoxApi.DeleteFolder";
+
+// 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 = {
+ "folder_identifier": "123456789",
+ "ensure_unchanged_etag": "0a1b2c3d4e",
+ "delete_recursively": 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/box_api/delete_folder_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_folder_example_call_tool.py
new file mode 100644
index 00000000..d3d49d2c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_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 = "BoxApi.DeleteFolder"
+
+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 = {
+ 'folder_identifier': '123456789',
+ 'ensure_unchanged_etag': '0a1b2c3d4e',
+ 'delete_recursively': 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/box_api/delete_folder_lock_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_folder_lock_example_call_tool.js
new file mode 100644
index 00000000..9257ea4d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_lock_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 = "BoxApi.DeleteFolderLock";
+
+// 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 = {
+ "folder_lock_identifier": "lock_9f4b2a1c"
+};
+
+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/box_api/delete_folder_lock_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_folder_lock_example_call_tool.py
new file mode 100644
index 00000000..a83ad6e2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_lock_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 = "BoxApi.DeleteFolderLock"
+
+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 = {
+ 'folder_lock_identifier': 'lock_9f4b2a1c'
+}
+
+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/box_api/delete_folder_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_folder_metadata_example_call_tool.js
new file mode 100644
index 00000000..fc3fed0b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_metadata_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 = "BoxApi.DeleteFolderMetadata";
+
+// 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 = {
+ "folder_identifier": "123456789",
+ "metadata_template_scope": "enterprise",
+ "metadata_template_name": "project_status"
+};
+
+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/box_api/delete_folder_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_folder_metadata_example_call_tool.py
new file mode 100644
index 00000000..2e151000
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_folder_metadata_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 = "BoxApi.DeleteFolderMetadata"
+
+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 = {
+ 'folder_identifier': '123456789',
+ 'metadata_template_scope': 'enterprise',
+ 'metadata_template_name': 'project_status'
+}
+
+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/box_api/delete_group_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_group_example_call_tool.js
new file mode 100644
index 00000000..1a928c6c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_group_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 = "BoxApi.DeleteGroup";
+
+// 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 = {
+ "group_id": "grp_4a1f9b2c"
+};
+
+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/box_api/delete_group_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_group_example_call_tool.py
new file mode 100644
index 00000000..7a0c6acb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_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 = "BoxApi.DeleteGroup"
+
+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 = {
+ 'group_id': 'grp_4a1f9b2c'
+}
+
+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/box_api/delete_group_membership_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_group_membership_example_call_tool.js
new file mode 100644
index 00000000..f6cd941b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_group_membership_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 = "BoxApi.DeleteGroupMembership";
+
+// 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 = {
+ "group_membership_id": "gm_9b2f7a1c"
+};
+
+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/box_api/delete_group_membership_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_group_membership_example_call_tool.py
new file mode 100644
index 00000000..7ab65f72
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_group_membership_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 = "BoxApi.DeleteGroupMembership"
+
+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 = {
+ 'group_membership_id': 'gm_9b2f7a1c'
+}
+
+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/box_api/delete_legal_hold_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_legal_hold_policy_example_call_tool.js
new file mode 100644
index 00000000..f9d8d86e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_legal_hold_policy_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 = "BoxApi.DeleteLegalHoldPolicy";
+
+// 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 = {
+ "legal_hold_policy_id": "lhp_8f3b2a1c"
+};
+
+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/box_api/delete_legal_hold_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_legal_hold_policy_example_call_tool.py
new file mode 100644
index 00000000..59045035
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_legal_hold_policy_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 = "BoxApi.DeleteLegalHoldPolicy"
+
+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 = {
+ 'legal_hold_policy_id': 'lhp_8f3b2a1c'
+}
+
+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/box_api/delete_metadata_cascade_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_metadata_cascade_policy_example_call_tool.js
new file mode 100644
index 00000000..368b2b44
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_metadata_cascade_policy_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 = "BoxApi.DeleteMetadataCascadePolicy";
+
+// 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 = {
+ "metadata_cascade_policy_id": "csp_1234567890abcdef"
+};
+
+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/box_api/delete_metadata_cascade_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_metadata_cascade_policy_example_call_tool.py
new file mode 100644
index 00000000..258c3e9a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_metadata_cascade_policy_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 = "BoxApi.DeleteMetadataCascadePolicy"
+
+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 = {
+ 'metadata_cascade_policy_id': 'csp_1234567890abcdef'
+}
+
+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/box_api/delete_metadata_template_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_metadata_template_example_call_tool.js
new file mode 100644
index 00000000..92ff00e9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_metadata_template_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 = "BoxApi.DeleteMetadataTemplate";
+
+// 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 = {
+ "metadata_template_scope": "enterprise",
+ "metadata_template_name": "confidential_project_template"
+};
+
+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/box_api/delete_metadata_template_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_metadata_template_example_call_tool.py
new file mode 100644
index 00000000..0b4f5cde
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_metadata_template_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 = "BoxApi.DeleteMetadataTemplate"
+
+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 = {
+ 'metadata_template_scope': 'enterprise', 'metadata_template_name': 'confidential_project_template'
+}
+
+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/box_api/delete_retention_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_retention_policy_example_call_tool.js
new file mode 100644
index 00000000..1e448f02
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_retention_policy_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 = "BoxApi.DeleteRetentionPolicy";
+
+// 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 = {
+ "retention_policy_id": "rp_8f4b2a1c"
+};
+
+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/box_api/delete_retention_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_retention_policy_example_call_tool.py
new file mode 100644
index 00000000..728ef1ab
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_retention_policy_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 = "BoxApi.DeleteRetentionPolicy"
+
+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 = {
+ 'retention_policy_id': 'rp_8f4b2a1c'
+}
+
+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/box_api/delete_shield_barrier_segment_restriction_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_shield_barrier_segment_restriction_example_call_tool.js
new file mode 100644
index 00000000..625d3374
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_barrier_segment_restriction_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 = "BoxApi.DeleteShieldBarrierSegmentRestriction";
+
+// 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 = {
+ "barrier_segment_restriction_id": "rstr_123abc"
+};
+
+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/box_api/delete_shield_barrier_segment_restriction_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_shield_barrier_segment_restriction_example_call_tool.py
new file mode 100644
index 00000000..c3cb9e31
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_barrier_segment_restriction_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 = "BoxApi.DeleteShieldBarrierSegmentRestriction"
+
+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 = {
+ 'barrier_segment_restriction_id': 'rstr_123abc'
+}
+
+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/box_api/delete_shield_information_barrier_segment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_shield_information_barrier_segment_example_call_tool.js
new file mode 100644
index 00000000..917afdc9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_information_barrier_segment_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 = "BoxApi.DeleteShieldInformationBarrierSegment";
+
+// 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 = {
+ "shield_information_barrier_segment_id": "sibseg_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/box_api/delete_shield_information_barrier_segment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_shield_information_barrier_segment_example_call_tool.py
new file mode 100644
index 00000000..e057cfa8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_information_barrier_segment_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 = "BoxApi.DeleteShieldInformationBarrierSegment"
+
+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 = {
+ 'shield_information_barrier_segment_id': 'sibseg_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/box_api/delete_shield_list_by_id_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_shield_list_by_id_example_call_tool.js
new file mode 100644
index 00000000..65a99c7f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_list_by_id_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 = "BoxApi.DeleteShieldListById";
+
+// 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 = {
+ "shield_list_id": "shld_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/box_api/delete_shield_list_by_id_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_shield_list_by_id_example_call_tool.py
new file mode 100644
index 00000000..98f0a45e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_shield_list_by_id_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 = "BoxApi.DeleteShieldListById"
+
+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 = {
+ 'shield_list_id': 'shld_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/box_api/delete_slack_integration_mapping_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_slack_integration_mapping_example_call_tool.js
new file mode 100644
index 00000000..2c913244
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_slack_integration_mapping_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 = "BoxApi.DeleteSlackIntegrationMapping";
+
+// 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 = {
+ "slack_integration_mapping_id": "sim_01F2ABCD3EFGHIJKL"
+};
+
+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/box_api/delete_slack_integration_mapping_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_slack_integration_mapping_example_call_tool.py
new file mode 100644
index 00000000..af83d1af
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_slack_integration_mapping_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 = "BoxApi.DeleteSlackIntegrationMapping"
+
+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 = {
+ 'slack_integration_mapping_id': 'sim_01F2ABCD3EFGHIJKL'
+}
+
+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/box_api/delete_storage_policy_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_storage_policy_assignment_example_call_tool.js
new file mode 100644
index 00000000..8be89512
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_storage_policy_assignment_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 = "BoxApi.DeleteStoragePolicyAssignment";
+
+// 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 = {
+ "storage_policy_assignment_id": "spa_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/box_api/delete_storage_policy_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_storage_policy_assignment_example_call_tool.py
new file mode 100644
index 00000000..1cfa4b3d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_storage_policy_assignment_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 = "BoxApi.DeleteStoragePolicyAssignment"
+
+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 = {
+ 'storage_policy_assignment_id': 'spa_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/box_api/delete_task_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_task_assignment_example_call_tool.js
new file mode 100644
index 00000000..58ef5065
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_task_assignment_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 = "BoxApi.DeleteTaskAssignment";
+
+// 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 = {
+ "task_assignment_id": "ta_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/box_api/delete_task_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_task_assignment_example_call_tool.py
new file mode 100644
index 00000000..2875dda6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_task_assignment_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 = "BoxApi.DeleteTaskAssignment"
+
+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 = {
+ 'task_assignment_id': 'ta_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/box_api/delete_task_from_file_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_task_from_file_example_call_tool.js
new file mode 100644
index 00000000..048bd559
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_task_from_file_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 = "BoxApi.DeleteTaskFromFile";
+
+// 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 = {
+ "task_identifier": "task-3a9f2b"
+};
+
+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/box_api/delete_task_from_file_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_task_from_file_example_call_tool.py
new file mode 100644
index 00000000..483d4d66
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_task_from_file_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 = "BoxApi.DeleteTaskFromFile"
+
+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 = {
+ 'task_identifier': 'task-3a9f2b'
+}
+
+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/box_api/delete_teams_integration_mapping_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_teams_integration_mapping_example_call_tool.js
new file mode 100644
index 00000000..a665c82c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_teams_integration_mapping_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 = "BoxApi.DeleteTeamsIntegrationMapping";
+
+// 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 = {
+ "integration_mapping_identifier": "teams-mapping-789"
+};
+
+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/box_api/delete_teams_integration_mapping_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_teams_integration_mapping_example_call_tool.py
new file mode 100644
index 00000000..82572d44
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_teams_integration_mapping_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 = "BoxApi.DeleteTeamsIntegrationMapping"
+
+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 = {
+ 'integration_mapping_identifier': 'teams-mapping-789'
+}
+
+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/box_api/delete_user_account_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_user_account_example_call_tool.js
new file mode 100644
index 00000000..f191d31a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_user_account_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 = "BoxApi.DeleteUserAccount";
+
+// 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_id": "user_7890",
+ "send_deletion_notification": true,
+ "force_delete_user": 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/box_api/delete_user_account_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_user_account_example_call_tool.py
new file mode 100644
index 00000000..850fe5c4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_user_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 = "BoxApi.DeleteUserAccount"
+
+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_id': 'user_7890', 'send_deletion_notification': True, 'force_delete_user': 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/box_api/delete_web_link_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_web_link_example_call_tool.js
new file mode 100644
index 00000000..b2c16825
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_web_link_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 = "BoxApi.DeleteWebLink";
+
+// 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 = {
+ "web_link_id": "wl_9a7b3c"
+};
+
+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/box_api/delete_web_link_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_web_link_example_call_tool.py
new file mode 100644
index 00000000..3d559078
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_web_link_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 = "BoxApi.DeleteWebLink"
+
+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 = {
+ 'web_link_id': 'wl_9a7b3c'
+}
+
+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/box_api/delete_webhook_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/delete_webhook_example_call_tool.js
new file mode 100644
index 00000000..fc88c350
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_webhook_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 = "BoxApi.DeleteWebhook";
+
+// 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 = {
+ "webhook_id": "wh_12345abcdef"
+};
+
+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/box_api/delete_webhook_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/delete_webhook_example_call_tool.py
new file mode 100644
index 00000000..7f5007ac
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/delete_webhook_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 = "BoxApi.DeleteWebhook"
+
+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 = {
+ 'webhook_id': 'wh_12345abcdef'
+}
+
+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/box_api/download_file_content_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/download_file_content_example_call_tool.js
new file mode 100644
index 00000000..708f8fa5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/download_file_content_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 = "BoxApi.DownloadFileContent";
+
+// 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 = {
+ "file_identifier": "f_9a8b7c6d",
+ "file_version_to_download": "v2",
+ "optional_access_token": "rk-read-12345",
+ "download_byte_range": "bytes=0-1048575",
+ "shared_link_with_optional_password": "shared_link=https://files.example.com/s/abc123&shared_link_password=secret"
+};
+
+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/box_api/download_file_content_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/download_file_content_example_call_tool.py
new file mode 100644
index 00000000..b3924dab
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/download_file_content_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 = "BoxApi.DownloadFileContent"
+
+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 = {
+ 'file_identifier': 'f_9a8b7c6d',
+ 'file_version_to_download': 'v2',
+ 'optional_access_token': 'rk-read-12345',
+ 'download_byte_range': 'bytes=0-1048575',
+ 'shared_link_with_optional_password': 'shared_link=https://files.example.com/s/abc123&shared_link_password=secret'
+}
+
+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/box_api/download_zip_content_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/download_zip_content_example_call_tool.js
new file mode 100644
index 00000000..cacc4ebc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/download_zip_content_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 = "BoxApi.DownloadZipContent";
+
+// 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 = {
+ "zip_archive_unique_id": "zip_01H7XYZABC123example"
+};
+
+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/box_api/download_zip_content_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/download_zip_content_example_call_tool.py
new file mode 100644
index 00000000..6ec7faef
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/download_zip_content_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 = "BoxApi.DownloadZipContent"
+
+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 = {
+ 'zip_archive_unique_id': 'zip_01H7XYZABC123example'
+}
+
+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/box_api/fetch_box_sign_template_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_box_sign_template_details_example_call_tool.js
new file mode 100644
index 00000000..04548e44
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_box_sign_template_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 = "BoxApi.FetchBoxSignTemplateDetails";
+
+// 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 = {
+ "box_sign_template_id": "tmpl_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/box_api/fetch_box_sign_template_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_box_sign_template_details_example_call_tool.py
new file mode 100644
index 00000000..5baa46da
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_box_sign_template_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 = "BoxApi.FetchBoxSignTemplateDetails"
+
+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 = {
+ 'box_sign_template_id': 'tmpl_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/box_api/fetch_comment_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_comment_details_example_call_tool.js
new file mode 100644
index 00000000..a9bd0093
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_comment_details_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 = "BoxApi.FetchCommentDetails";
+
+// 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 = {
+ "comment_id": "cmt_8f3a12b9",
+ "include_fields": [
+ "message",
+ "creator",
+ "created_at",
+ "attachments"
+ ]
+};
+
+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/box_api/fetch_comment_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_comment_details_example_call_tool.py
new file mode 100644
index 00000000..07888f2b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_comment_details_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.FetchCommentDetails"
+
+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 = {
+ 'comment_id': 'cmt_8f3a12b9',
+ 'include_fields': ['message', 'creator', 'created_at', 'attachments']
+}
+
+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/box_api/fetch_enterprise_storage_policies_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_enterprise_storage_policies_example_call_tool.js
new file mode 100644
index 00000000..29d3f075
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_enterprise_storage_policies_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 = "BoxApi.FetchEnterpriseStoragePolicies";
+
+// 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 = {
+ "include_attributes": [
+ "creation_date",
+ "retention_period"
+ ],
+ "pagination_marker": "abc123marker",
+ "max_items_per_page": 50
+};
+
+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/box_api/fetch_enterprise_storage_policies_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_enterprise_storage_policies_example_call_tool.py
new file mode 100644
index 00000000..8f318b6f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_enterprise_storage_policies_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 = "BoxApi.FetchEnterpriseStoragePolicies"
+
+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 = {
+ 'include_attributes': ['creation_date', 'retention_period'],
+ 'pagination_marker': 'abc123marker',
+ 'max_items_per_page': 50
+}
+
+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/box_api/fetch_metadata_template_by_id_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_metadata_template_by_id_example_call_tool.js
new file mode 100644
index 00000000..2037b0d1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_metadata_template_by_id_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 = "BoxApi.FetchMetadataTemplateById";
+
+// 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 = {
+ "template_id": "mt_12345abcdef"
+};
+
+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/box_api/fetch_metadata_template_by_id_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_metadata_template_by_id_example_call_tool.py
new file mode 100644
index 00000000..49f46bae
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_metadata_template_by_id_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 = "BoxApi.FetchMetadataTemplateById"
+
+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 = {
+ 'template_id': 'mt_12345abcdef'
+}
+
+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/box_api/fetch_safe_collaboration_domain_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_safe_collaboration_domain_example_call_tool.js
new file mode 100644
index 00000000..5445c905
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_safe_collaboration_domain_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 = "BoxApi.FetchSafeCollaborationDomain";
+
+// 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 = {
+ "collaboration_whitelist_entry_id": "whitelist-entry-7890"
+};
+
+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/box_api/fetch_safe_collaboration_domain_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_safe_collaboration_domain_example_call_tool.py
new file mode 100644
index 00000000..a1fc133f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_safe_collaboration_domain_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 = "BoxApi.FetchSafeCollaborationDomain"
+
+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 = {
+ 'collaboration_whitelist_entry_id': 'whitelist-entry-7890'
+}
+
+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/box_api/fetch_shield_barrier_report_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_shield_barrier_report_example_call_tool.js
new file mode 100644
index 00000000..1109da02
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_shield_barrier_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 = "BoxApi.FetchShieldBarrierReport";
+
+// 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 = {
+ "shield_barrier_report_id": "rpt_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/box_api/fetch_shield_barrier_report_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_shield_barrier_report_example_call_tool.py
new file mode 100644
index 00000000..1fff1b54
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_shield_barrier_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 = "BoxApi.FetchShieldBarrierReport"
+
+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 = {
+ 'shield_barrier_report_id': 'rpt_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/box_api/fetch_signature_requests_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_signature_requests_example_call_tool.js
new file mode 100644
index 00000000..c77f2c10
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_signature_requests_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 = "BoxApi.FetchSignatureRequests";
+
+// 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 = {
+ "pagination_marker": "abc123",
+ "max_items_per_page": 25,
+ "sender_email_list": [
+ "alice@example.com",
+ "bob@example.com"
+ ],
+ "include_shared_requests": 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/box_api/fetch_signature_requests_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_signature_requests_example_call_tool.py
new file mode 100644
index 00000000..e7a46d82
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_signature_requests_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 = "BoxApi.FetchSignatureRequests"
+
+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 = {
+ 'pagination_marker': 'abc123',
+ 'max_items_per_page': 25,
+ 'sender_email_list': ['alice@example.com', 'bob@example.com'],
+ 'include_shared_requests': 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/box_api/fetch_storage_policy_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignment_example_call_tool.js
new file mode 100644
index 00000000..7890b6d3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignment_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 = "BoxApi.FetchStoragePolicyAssignment";
+
+// 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 = {
+ "storage_policy_assignment_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/box_api/fetch_storage_policy_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignment_example_call_tool.py
new file mode 100644
index 00000000..a8f09f28
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignment_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 = "BoxApi.FetchStoragePolicyAssignment"
+
+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 = {
+ 'storage_policy_assignment_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/box_api/fetch_storage_policy_assignments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignments_example_call_tool.js
new file mode 100644
index 00000000..f2e23f61
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignments_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 = "BoxApi.FetchStoragePolicyAssignments";
+
+// 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 = {
+ "target_type_for_assignments": "user",
+ "target_user_or_enterprise_id": "1234567890",
+ "pagination_marker": "marker_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/box_api/fetch_storage_policy_assignments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignments_example_call_tool.py
new file mode 100644
index 00000000..9bfe0db3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_assignments_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 = "BoxApi.FetchStoragePolicyAssignments"
+
+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 = {
+ 'target_type_for_assignments': 'user',
+ 'target_user_or_enterprise_id': '1234567890',
+ 'pagination_marker': 'marker_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/box_api/fetch_storage_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_example_call_tool.js
new file mode 100644
index 00000000..0435c19a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_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 = "BoxApi.FetchStoragePolicy";
+
+// 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 = {
+ "storage_policy_identifier": "policy-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/box_api/fetch_storage_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_example_call_tool.py
new file mode 100644
index 00000000..d7109523
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/fetch_storage_policy_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 = "BoxApi.FetchStoragePolicy"
+
+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 = {
+ 'storage_policy_identifier': 'policy-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/box_api/find_metadata_template_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/find_metadata_template_example_call_tool.js
new file mode 100644
index 00000000..52d6ecf6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/find_metadata_template_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 = "BoxApi.FindMetadataTemplate";
+
+// 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 = {
+ "metadata_instance_id": "tmpl_12345",
+ "pagination_position_marker": "marker_abc",
+ "items_per_page_limit": 25
+};
+
+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/box_api/find_metadata_template_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/find_metadata_template_example_call_tool.py
new file mode 100644
index 00000000..50eb3fad
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/find_metadata_template_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 = "BoxApi.FindMetadataTemplate"
+
+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 = {
+ 'metadata_instance_id': 'tmpl_12345',
+ 'pagination_position_marker': 'marker_abc',
+ 'items_per_page_limit': 25
+}
+
+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/box_api/get_ai_agent_default_config_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_default_config_example_call_tool.js
new file mode 100644
index 00000000..51c1435a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_default_config_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 = "BoxApi.GetAiAgentDefaultConfig";
+
+// 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_mode": "text_gen",
+ "agent_config_language_code": "en",
+ "model_identifier": "gpt-4o-mini"
+};
+
+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/box_api/get_ai_agent_default_config_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_default_config_example_call_tool.py
new file mode 100644
index 00000000..1107cc69
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_default_config_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 = "BoxApi.GetAiAgentDefaultConfig"
+
+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_mode': 'text_gen', 'agent_config_language_code': 'en', 'model_identifier': 'gpt-4o-mini'
+}
+
+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/box_api/get_ai_agent_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_details_example_call_tool.js
new file mode 100644
index 00000000..ee51134a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_details_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 = "BoxApi.GetAiAgentDetails";
+
+// 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 = {
+ "agent_unique_identifier": "agent_9f8b3c2a",
+ "fields_to_return": [
+ "name",
+ "status",
+ "created_at",
+ "capabilities"
+ ]
+};
+
+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/box_api/get_ai_agent_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_details_example_call_tool.py
new file mode 100644
index 00000000..c50abd35
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_ai_agent_details_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.GetAiAgentDetails"
+
+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 = {
+ 'agent_unique_identifier': 'agent_9f8b3c2a',
+ 'fields_to_return': ['name', 'status', 'created_at', 'capabilities']
+}
+
+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/box_api/get_authenticated_user_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_authenticated_user_info_example_call_tool.js
new file mode 100644
index 00000000..087145d6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_authenticated_user_info_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 = "BoxApi.GetAuthenticatedUserInfo";
+
+// 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 = {
+ "requested_user_attributes": [
+ "email",
+ "phone_number",
+ "roles",
+ "profile_picture_url"
+ ]
+};
+
+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/box_api/get_authenticated_user_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_authenticated_user_info_example_call_tool.py
new file mode 100644
index 00000000..d4220dd1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_authenticated_user_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 = "BoxApi.GetAuthenticatedUserInfo"
+
+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 = {
+ 'requested_user_attributes': ['email', 'phone_number', 'roles', 'profile_picture_url']
+}
+
+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/box_api/get_box_docgen_job_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_job_details_example_call_tool.js
new file mode 100644
index 00000000..78a1d919
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_job_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 = "BoxApi.GetBoxDocgenJobDetails";
+
+// 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 = {
+ "box_doc_gen_job_id": "job_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/box_api/get_box_docgen_job_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_job_details_example_call_tool.py
new file mode 100644
index 00000000..238c748e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_job_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 = "BoxApi.GetBoxDocgenJobDetails"
+
+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 = {
+ 'box_doc_gen_job_id': 'job_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/box_api/get_box_docgen_template_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_template_details_example_call_tool.js
new file mode 100644
index 00000000..a99742de
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_template_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 = "BoxApi.GetBoxDocgenTemplateDetails";
+
+// 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 = {
+ "box_docgen_template_id": "tmpl_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/box_api/get_box_docgen_template_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_template_details_example_call_tool.py
new file mode 100644
index 00000000..5097fdcd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_docgen_template_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 = "BoxApi.GetBoxDocgenTemplateDetails"
+
+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 = {
+ 'box_docgen_template_id': 'tmpl_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/box_api/get_box_events_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_events_example_call_tool.js
new file mode 100644
index 00000000..2022047e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_events_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 = "BoxApi.GetBoxEvents";
+
+// 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 = {
+ "event_stream_type": "admin_logs",
+ "event_stream_start_position": "0",
+ "event_limit": 100,
+ "event_type_filter": [
+ "LOGIN",
+ "ITEM_CREATE",
+ "ITEM_UPLOAD"
+ ],
+ "event_start_date": "2024-01-01T00:00:00Z",
+ "event_time_upper_bound": "2024-06-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/box_api/get_box_events_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_events_example_call_tool.py
new file mode 100644
index 00000000..ae860778
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_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 = "BoxApi.GetBoxEvents"
+
+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 = {
+ 'event_stream_type': 'admin_logs',
+ 'event_stream_start_position': '0',
+ 'event_limit': 100,
+ 'event_type_filter': ['LOGIN', 'ITEM_CREATE', 'ITEM_UPLOAD'],
+ 'event_start_date': '2024-01-01T00:00:00Z',
+ 'event_time_upper_bound': '2024-06-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/box_api/get_box_hub_collaboration_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_hub_collaboration_details_example_call_tool.js
new file mode 100644
index 00000000..9e8f82d6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_hub_collaboration_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 = "BoxApi.GetBoxHubCollaborationDetails";
+
+// 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 = {
+ "hub_collaboration_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/box_api/get_box_hub_collaboration_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_hub_collaboration_details_example_call_tool.py
new file mode 100644
index 00000000..6bfaedf4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_hub_collaboration_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 = "BoxApi.GetBoxHubCollaborationDetails"
+
+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 = {
+ 'hub_collaboration_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/box_api/get_box_hubs_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_hubs_example_call_tool.js
new file mode 100644
index 00000000..fe6112a0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_hubs_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 = "BoxApi.GetBoxHubs";
+
+// 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 = {
+ "hub_search_query": "design templates",
+ "hub_scope": "editable",
+ "sort_results_by": "updated_at",
+ "sort_direction": "DESC",
+ "pagination_start_marker": "marker_42",
+ "max_items_per_page": 25
+};
+
+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/box_api/get_box_hubs_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_hubs_example_call_tool.py
new file mode 100644
index 00000000..7b04d274
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_hubs_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 = "BoxApi.GetBoxHubs"
+
+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 = {
+ 'hub_search_query': 'design templates',
+ 'hub_scope': 'editable',
+ 'sort_results_by': 'updated_at',
+ 'sort_direction': 'DESC',
+ 'pagination_start_marker': 'marker_42',
+ 'max_items_per_page': 25
+}
+
+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/box_api/get_box_sign_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_sign_templates_example_call_tool.js
new file mode 100644
index 00000000..b4cedff3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_sign_templates_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 = "BoxApi.GetBoxSignTemplates";
+
+// 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 = {
+ "pagination_marker": "abc123marker",
+ "max_items_per_page": 25
+};
+
+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/box_api/get_box_sign_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_sign_templates_example_call_tool.py
new file mode 100644
index 00000000..edb44c9c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_sign_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 = "BoxApi.GetBoxSignTemplates"
+
+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 = {
+ 'pagination_marker': 'abc123marker', 'max_items_per_page': 25
+}
+
+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/box_api/get_box_skills_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_box_skills_metadata_example_call_tool.js
new file mode 100644
index 00000000..1b49d0af
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_skills_metadata_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 = "BoxApi.GetBoxSkillsMetadata";
+
+// 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 = {
+ "file_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/box_api/get_box_skills_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_box_skills_metadata_example_call_tool.py
new file mode 100644
index 00000000..5017cbd1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_box_skills_metadata_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 = "BoxApi.GetBoxSkillsMetadata"
+
+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 = {
+ 'file_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/box_api/get_classification_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_classification_metadata_example_call_tool.js
new file mode 100644
index 00000000..0075400e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_classification_metadata_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 = "BoxApi.GetClassificationMetadata";
+
+// 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/box_api/get_classification_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_classification_metadata_example_call_tool.py
new file mode 100644
index 00000000..965bf05d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_classification_metadata_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 = "BoxApi.GetClassificationMetadata"
+
+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/box_api/get_collaboration_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_collaboration_details_example_call_tool.js
new file mode 100644
index 00000000..9cd19987
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_details_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 = "BoxApi.GetCollaborationDetails";
+
+// 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 = {
+ "collaboration_id": "col_9a1b2c3d",
+ "include_fields": [
+ "auditTrail",
+ "participantRoles"
+ ]
+};
+
+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/box_api/get_collaboration_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_collaboration_details_example_call_tool.py
new file mode 100644
index 00000000..a2f4595b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_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 = "BoxApi.GetCollaborationDetails"
+
+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 = {
+ 'collaboration_id': 'col_9a1b2c3d', 'include_fields': ['auditTrail', 'participantRoles']
+}
+
+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/box_api/get_collaboration_whitelist_exempt_user_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_user_example_call_tool.js
new file mode 100644
index 00000000..9c4b9cc5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_user_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 = "BoxApi.GetCollaborationWhitelistExemptUser";
+
+// 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 = {
+ "exemption_target_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/box_api/get_collaboration_whitelist_exempt_user_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_user_example_call_tool.py
new file mode 100644
index 00000000..8e97e2c8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_user_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 = "BoxApi.GetCollaborationWhitelistExemptUser"
+
+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 = {
+ 'exemption_target_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/box_api/get_collaboration_whitelist_exempt_users_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_users_example_call_tool.js
new file mode 100644
index 00000000..3c6b8be0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_users_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 = "BoxApi.GetCollaborationWhitelistExemptUsers";
+
+// 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 = {
+ "pagination_position_marker": "marker_abc123",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_collaboration_whitelist_exempt_users_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_users_example_call_tool.py
new file mode 100644
index 00000000..796ae04d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_collaboration_whitelist_exempt_users_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 = "BoxApi.GetCollaborationWhitelistExemptUsers"
+
+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 = {
+ 'pagination_position_marker': 'marker_abc123', 'max_items_per_page': 50
+}
+
+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/box_api/get_device_pin_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_device_pin_info_example_call_tool.js
new file mode 100644
index 00000000..4ad79a26
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_device_pin_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 = "BoxApi.GetDevicePinInfo";
+
+// 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_pin_identifier": "pin-42"
+};
+
+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/box_api/get_device_pin_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_device_pin_info_example_call_tool.py
new file mode 100644
index 00000000..30b81c7f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_device_pin_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 = "BoxApi.GetDevicePinInfo"
+
+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_pin_identifier': 'pin-42'
+}
+
+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/box_api/get_enterprise_box_hubs_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_enterprise_box_hubs_example_call_tool.js
new file mode 100644
index 00000000..dcc24017
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_box_hubs_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 = "BoxApi.GetEnterpriseBoxHubs";
+
+// 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 = {
+ "search_query_for_box_hubs": "engineering roadmap",
+ "sort_results_by": "updated_at",
+ "sort_direction": "DESC",
+ "pagination_marker": "marker_abc123",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_enterprise_box_hubs_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_enterprise_box_hubs_example_call_tool.py
new file mode 100644
index 00000000..877e336f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_box_hubs_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 = "BoxApi.GetEnterpriseBoxHubs"
+
+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 = {
+ 'search_query_for_box_hubs': 'engineering roadmap',
+ 'sort_results_by': 'updated_at',
+ 'sort_direction': 'DESC',
+ 'pagination_marker': 'marker_abc123',
+ 'max_items_per_page': 50
+}
+
+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/box_api/get_enterprise_device_pins_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_enterprise_device_pins_example_call_tool.js
new file mode 100644
index 00000000..c1ed6997
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_device_pins_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 = "BoxApi.GetEnterpriseDevicePins";
+
+// 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 = {
+ "enterprise_id": "ent_abc123",
+ "pagination_start_marker": "marker_001",
+ "max_items_per_page": 50,
+ "sort_direction": "ASC"
+};
+
+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/box_api/get_enterprise_device_pins_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_enterprise_device_pins_example_call_tool.py
new file mode 100644
index 00000000..845c8fcc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_device_pins_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 = "BoxApi.GetEnterpriseDevicePins"
+
+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 = {
+ 'enterprise_id': 'ent_abc123',
+ 'pagination_start_marker': 'marker_001',
+ 'max_items_per_page': 50,
+ 'sort_direction': 'ASC'
+}
+
+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/box_api/get_enterprise_retention_policies_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_enterprise_retention_policies_example_call_tool.js
new file mode 100644
index 00000000..c2f82ffc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_retention_policies_example_call_tool.js
@@ -0,0 +1,38 @@
+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 = "BoxApi.GetEnterpriseRetentionPolicies";
+
+// 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_policy_name_prefix": "HR-",
+ "filter_by_retention_policy_type": "finite",
+ "filter_by_creator_user_id": "u_98765",
+ "include_fields": [
+ "id",
+ "name",
+ "type",
+ "duration_days"
+ ],
+ "maximum_items_per_page": 50,
+ "pagination_start_marker": "marker_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/box_api/get_enterprise_retention_policies_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_enterprise_retention_policies_example_call_tool.py
new file mode 100644
index 00000000..9ff2e7d0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_retention_policies_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 = "BoxApi.GetEnterpriseRetentionPolicies"
+
+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_policy_name_prefix': 'HR-',
+ 'filter_by_retention_policy_type': 'finite',
+ 'filter_by_creator_user_id': 'u_98765',
+ 'include_fields': ['id', 'name', 'type', 'duration_days'],
+ 'maximum_items_per_page': 50,
+ 'pagination_start_marker': 'marker_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/box_api/get_enterprise_shield_lists_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_enterprise_shield_lists_example_call_tool.js
new file mode 100644
index 00000000..27814cad
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_shield_lists_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 = "BoxApi.GetEnterpriseShieldLists";
+
+// 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/box_api/get_enterprise_shield_lists_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_enterprise_shield_lists_example_call_tool.py
new file mode 100644
index 00000000..f6bd6ea3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_shield_lists_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 = "BoxApi.GetEnterpriseShieldLists"
+
+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/box_api/get_enterprise_terms_of_service_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_enterprise_terms_of_service_example_call_tool.js
new file mode 100644
index 00000000..860d3b9f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_terms_of_service_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 = "BoxApi.GetEnterpriseTermsOfService";
+
+// 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 = {
+ "terms_of_service_type": "external"
+};
+
+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/box_api/get_enterprise_terms_of_service_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_enterprise_terms_of_service_example_call_tool.py
new file mode 100644
index 00000000..d5a7ffdb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_enterprise_terms_of_service_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 = "BoxApi.GetEnterpriseTermsOfService"
+
+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 = {
+ 'terms_of_service_type': 'external'
+}
+
+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/box_api/get_file_app_associations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_app_associations_example_call_tool.js
new file mode 100644
index 00000000..b3817705
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_app_associations_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 = "BoxApi.GetFileAppAssociations";
+
+// 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 = {
+ "file_identifier": "1234567890",
+ "items_per_page_limit": 50,
+ "pagination_marker": "marker_abc123",
+ "filter_by_application_type": "com.box.thirdparty.app"
+};
+
+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/box_api/get_file_app_associations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_app_associations_example_call_tool.py
new file mode 100644
index 00000000..f42e305a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_app_associations_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 = "BoxApi.GetFileAppAssociations"
+
+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 = {
+ 'file_identifier': '1234567890',
+ 'items_per_page_limit': 50,
+ 'pagination_marker': 'marker_abc123',
+ 'filter_by_application_type': 'com.box.thirdparty.app'
+}
+
+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/box_api/get_file_classification_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_classification_metadata_example_call_tool.js
new file mode 100644
index 00000000..079b6559
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_classification_metadata_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 = "BoxApi.GetFileClassificationMetadata";
+
+// 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 = {
+ "file_identifier": "123"
+};
+
+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/box_api/get_file_classification_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_classification_metadata_example_call_tool.py
new file mode 100644
index 00000000..54ef7d04
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_classification_metadata_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 = "BoxApi.GetFileClassificationMetadata"
+
+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 = {
+ 'file_identifier': '123'
+}
+
+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/box_api/get_file_collaborations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_collaborations_example_call_tool.js
new file mode 100644
index 00000000..403c062d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_collaborations_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 = "BoxApi.GetFileCollaborations";
+
+// 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 = {
+ "file_identifier": "1234567890",
+ "requested_fields": [
+ "role",
+ "status",
+ "created_at"
+ ],
+ "max_items_per_page": 50,
+ "pagination_start_marker": "abc123marker"
+};
+
+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/box_api/get_file_collaborations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_collaborations_example_call_tool.py
new file mode 100644
index 00000000..e3286c8d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_collaborations_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 = "BoxApi.GetFileCollaborations"
+
+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 = {
+ 'file_identifier': '1234567890',
+ 'requested_fields': ['role', 'status', 'created_at'],
+ 'max_items_per_page': 50,
+ 'pagination_start_marker': 'abc123marker'
+}
+
+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/box_api/get_file_comments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_comments_example_call_tool.js
new file mode 100644
index 00000000..cbaf2c9a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_comments_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 = "BoxApi.GetFileComments";
+
+// 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 = {
+ "file_identifier": "123456789",
+ "include_fields_in_response": [
+ "id",
+ "message",
+ "created_by",
+ "created_at"
+ ],
+ "maximum_items_per_page": 50,
+ "response_start_offset": 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/box_api/get_file_comments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_comments_example_call_tool.py
new file mode 100644
index 00000000..e8a27d4a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_comments_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 = "BoxApi.GetFileComments"
+
+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 = {
+ 'file_identifier': '123456789',
+ 'include_fields_in_response': ['id', 'message', 'created_by', 'created_at'],
+ 'maximum_items_per_page': 50,
+ 'response_start_offset': 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/box_api/get_file_tasks_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_tasks_example_call_tool.js
new file mode 100644
index 00000000..46435a39
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_tasks_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 = "BoxApi.GetFileTasks";
+
+// 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 = {
+ "file_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/box_api/get_file_tasks_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_tasks_example_call_tool.py
new file mode 100644
index 00000000..48e02f9c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_tasks_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 = "BoxApi.GetFileTasks"
+
+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 = {
+ 'file_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/box_api/get_file_version_history_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_version_history_example_call_tool.js
new file mode 100644
index 00000000..4129123b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_history_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 = "BoxApi.GetFileVersionHistory";
+
+// 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 = {
+ "file_identifier": "123456789",
+ "requested_fields": [
+ "version_number",
+ "modified_at",
+ "modified_by",
+ "size"
+ ],
+ "max_items_per_page": 25,
+ "response_start_offset": 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/box_api/get_file_version_history_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_version_history_example_call_tool.py
new file mode 100644
index 00000000..57bf8a67
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_history_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 = "BoxApi.GetFileVersionHistory"
+
+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 = {
+ 'file_identifier': '123456789',
+ 'requested_fields': ['version_number', 'modified_at', 'modified_by', 'size'],
+ 'max_items_per_page': 25,
+ 'response_start_offset': 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/box_api/get_file_version_retention_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_version_retention_info_example_call_tool.js
new file mode 100644
index 00000000..7f3085d0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_retention_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 = "BoxApi.GetFileVersionRetentionInfo";
+
+// 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 = {
+ "file_version_retention_id": "ret_12345abcd"
+};
+
+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/box_api/get_file_version_retention_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_version_retention_info_example_call_tool.py
new file mode 100644
index 00000000..06e4f7f5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_retention_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 = "BoxApi.GetFileVersionRetentionInfo"
+
+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 = {
+ 'file_version_retention_id': 'ret_12345abcd'
+}
+
+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/box_api/get_file_version_retentions_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_version_retentions_example_call_tool.js
new file mode 100644
index 00000000..b4f5759b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_retentions_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 = "BoxApi.GetFileVersionRetentions";
+
+// 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_file_id": "1234567890",
+ "filter_by_file_version_id": "v1.2.3",
+ "retention_policy_id": "ret-pol-001",
+ "filter_by_disposition_action": "permanently_delete",
+ "filter_by_disposition_before_date": "2025-12-31",
+ "disposition_effective_after_date": "2025-01-01",
+ "max_items_per_page": 100,
+ "pagination_start_marker": "marker_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/box_api/get_file_version_retentions_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_version_retentions_example_call_tool.py
new file mode 100644
index 00000000..5c74b028
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_version_retentions_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 = "BoxApi.GetFileVersionRetentions"
+
+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_file_id': '1234567890',
+ 'filter_by_file_version_id': 'v1.2.3',
+ 'retention_policy_id': 'ret-pol-001',
+ 'filter_by_disposition_action': 'permanently_delete',
+ 'filter_by_disposition_before_date': '2025-12-31',
+ 'disposition_effective_after_date': '2025-01-01',
+ 'max_items_per_page': 100,
+ 'pagination_start_marker': 'marker_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/box_api/get_file_versions_on_legal_hold_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_versions_on_legal_hold_example_call_tool.js
new file mode 100644
index 00000000..c67dfbdd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_versions_on_legal_hold_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 = "BoxApi.GetFileVersionsOnLegalHold";
+
+// 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 = {
+ "legal_hold_policy_assignment_id": "lhpa_987654321",
+ "pagination_start_marker": "mkr_0001",
+ "max_items_per_page": 50,
+ "include_additional_fields_in_response": [
+ "file_name",
+ "version_id",
+ "modified_at"
+ ]
+};
+
+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/box_api/get_file_versions_on_legal_hold_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_versions_on_legal_hold_example_call_tool.py
new file mode 100644
index 00000000..e5d2610f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_versions_on_legal_hold_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 = "BoxApi.GetFileVersionsOnLegalHold"
+
+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 = {
+ 'legal_hold_policy_assignment_id': 'lhpa_987654321',
+ 'pagination_start_marker': 'mkr_0001',
+ 'max_items_per_page': 50,
+ 'include_additional_fields_in_response': ['file_name', 'version_id', 'modified_at']
+}
+
+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/box_api/get_file_versions_under_retention_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_versions_under_retention_example_call_tool.js
new file mode 100644
index 00000000..8620d78f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_versions_under_retention_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 = "BoxApi.GetFileVersionsUnderRetention";
+
+// 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 = {
+ "retention_policy_assignment_id": "rpa_7890abcd",
+ "pagination_start_marker": "marker_100",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_file_versions_under_retention_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_versions_under_retention_example_call_tool.py
new file mode 100644
index 00000000..aa245a90
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_versions_under_retention_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 = "BoxApi.GetFileVersionsUnderRetention"
+
+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 = {
+ 'retention_policy_assignment_id': 'rpa_7890abcd',
+ 'pagination_start_marker': 'marker_100',
+ 'max_items_per_page': 50
+}
+
+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/box_api/get_file_watermark_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_file_watermark_example_call_tool.js
new file mode 100644
index 00000000..3384382a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_watermark_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 = "BoxApi.GetFileWatermark";
+
+// 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 = {
+ "file_identifier": "file_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/box_api/get_file_watermark_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_file_watermark_example_call_tool.py
new file mode 100644
index 00000000..0fdf10f6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_file_watermark_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 = "BoxApi.GetFileWatermark"
+
+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 = {
+ 'file_identifier': 'file_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/box_api/get_files_on_legal_hold_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_files_on_legal_hold_example_call_tool.js
new file mode 100644
index 00000000..3f276d51
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_files_on_legal_hold_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 = "BoxApi.GetFilesOnLegalHold";
+
+// 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 = {
+ "legal_hold_policy_assignment_id": "assign_7890",
+ "pagination_marker": "marker_abc123",
+ "maximum_items_per_page": 50,
+ "included_attributes": [
+ "file_id",
+ "file_name",
+ "current_version",
+ "hold_created_at"
+ ]
+};
+
+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/box_api/get_files_on_legal_hold_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_files_on_legal_hold_example_call_tool.py
new file mode 100644
index 00000000..0ad7d8b4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_files_on_legal_hold_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 = "BoxApi.GetFilesOnLegalHold"
+
+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 = {
+ 'legal_hold_policy_assignment_id': 'assign_7890',
+ 'pagination_marker': 'marker_abc123',
+ 'maximum_items_per_page': 50,
+ 'included_attributes': ['file_id', 'file_name', 'current_version', 'hold_created_at']
+}
+
+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/box_api/get_folder_app_item_associations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_app_item_associations_example_call_tool.js
new file mode 100644
index 00000000..81ddc95b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_app_item_associations_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 = "BoxApi.GetFolderAppItemAssociations";
+
+// 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 = {
+ "folder_identifier": "1234567890",
+ "max_items_per_page": 50,
+ "pagination_start_marker": "marker_abc123",
+ "filter_by_application_type": "dashboard"
+};
+
+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/box_api/get_folder_app_item_associations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_app_item_associations_example_call_tool.py
new file mode 100644
index 00000000..68bf4d41
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_app_item_associations_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 = "BoxApi.GetFolderAppItemAssociations"
+
+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 = {
+ 'folder_identifier': '1234567890',
+ 'max_items_per_page': 50,
+ 'pagination_start_marker': 'marker_abc123',
+ 'filter_by_application_type': 'dashboard'
+}
+
+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/box_api/get_folder_classification_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_classification_example_call_tool.js
new file mode 100644
index 00000000..cc731c62
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_classification_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 = "BoxApi.GetFolderClassification";
+
+// 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 = {
+ "folder_identifier": "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/box_api/get_folder_classification_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_classification_example_call_tool.py
new file mode 100644
index 00000000..e6da1a60
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_classification_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 = "BoxApi.GetFolderClassification"
+
+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 = {
+ 'folder_identifier': '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/box_api/get_folder_collaborations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_collaborations_example_call_tool.js
new file mode 100644
index 00000000..22e68656
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_collaborations_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 = "BoxApi.GetFolderCollaborations";
+
+// 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 = {
+ "folder_identifier": "12345",
+ "included_attributes": [
+ "role",
+ "status",
+ "invited_at"
+ ],
+ "max_items_per_page": 50,
+ "start_position_marker": "abc123marker"
+};
+
+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/box_api/get_folder_collaborations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_collaborations_example_call_tool.py
new file mode 100644
index 00000000..1defe8d2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_collaborations_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 = "BoxApi.GetFolderCollaborations"
+
+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 = {
+ 'folder_identifier': '12345',
+ 'included_attributes': ['role', 'status', 'invited_at'],
+ 'max_items_per_page': 50,
+ 'start_position_marker': 'abc123marker'
+}
+
+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/box_api/get_folder_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_details_example_call_tool.js
new file mode 100644
index 00000000..b12c6766
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_details_example_call_tool.js
@@ -0,0 +1,41 @@
+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 = "BoxApi.GetFolderDetails";
+
+// 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 = {
+ "folder_unique_identifier": "456",
+ "requested_fields": [
+ "id",
+ "name",
+ "size",
+ "created_at",
+ "shared_link"
+ ],
+ "secondary_sort_attribute": "name",
+ "sort_direction": "ASC",
+ "response_offset": 0,
+ "max_items_per_page": 50,
+ "ensure_item_has_changed": "0a1b2c3d4e",
+ "shared_link_credentials": "shared_link=https://app.box.com/s/abcdef&shared_link_password=Tr0ub4dor"
+};
+
+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/box_api/get_folder_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_details_example_call_tool.py
new file mode 100644
index 00000000..984fd81f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_details_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 = "BoxApi.GetFolderDetails"
+
+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 = {
+ 'folder_unique_identifier': '456',
+ 'requested_fields': ['id', 'name', 'size', 'created_at', 'shared_link'],
+ 'secondary_sort_attribute': 'name',
+ 'sort_direction': 'ASC',
+ 'response_offset': 0,
+ 'max_items_per_page': 50,
+ 'ensure_item_has_changed': '0a1b2c3d4e',
+ 'shared_link_credentials': 'shared_link=https://app.box.com/s/abcdef&shared_link_password=Tr0ub4dor'
+}
+
+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/box_api/get_folder_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_metadata_example_call_tool.js
new file mode 100644
index 00000000..904755a8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_metadata_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 = "BoxApi.GetFolderMetadata";
+
+// 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 = {
+ "folder_identifier": "1234567890",
+ "metadata_scope": "enterprise",
+ "metadata_template_name": "ProjectDetails"
+};
+
+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/box_api/get_folder_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_metadata_example_call_tool.py
new file mode 100644
index 00000000..d66ff886
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_metadata_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 = "BoxApi.GetFolderMetadata"
+
+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 = {
+ 'folder_identifier': '1234567890',
+ 'metadata_scope': 'enterprise',
+ 'metadata_template_name': 'ProjectDetails'
+}
+
+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/box_api/get_folder_shared_link_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_shared_link_info_example_call_tool.js
new file mode 100644
index 00000000..d49faf55
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_shared_link_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 = "BoxApi.GetFolderSharedLinkInfo";
+
+// 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 = {
+ "include_shared_link_fields": "true",
+ "folder_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/box_api/get_folder_shared_link_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_shared_link_info_example_call_tool.py
new file mode 100644
index 00000000..0c2ccf93
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_shared_link_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 = "BoxApi.GetFolderSharedLinkInfo"
+
+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 = {
+ 'include_shared_link_fields': 'true', 'folder_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/box_api/get_folder_watermark_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_folder_watermark_example_call_tool.js
new file mode 100644
index 00000000..8f2d3af0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_watermark_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 = "BoxApi.GetFolderWatermark";
+
+// 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 = {
+ "folder_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/box_api/get_folder_watermark_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_folder_watermark_example_call_tool.py
new file mode 100644
index 00000000..c0667759
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_folder_watermark_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 = "BoxApi.GetFolderWatermark"
+
+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 = {
+ 'folder_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/box_api/get_group_collaborations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_group_collaborations_example_call_tool.js
new file mode 100644
index 00000000..65a22478
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_group_collaborations_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 = "BoxApi.GetGroupCollaborations";
+
+// 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 = {
+ "group_id": "12345",
+ "max_items_per_page": 50,
+ "response_offset": 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/box_api/get_group_collaborations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_group_collaborations_example_call_tool.py
new file mode 100644
index 00000000..7f1a26b0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_group_collaborations_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 = "BoxApi.GetGroupCollaborations"
+
+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 = {
+ 'group_id': '12345', 'max_items_per_page': 50, 'response_offset': 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/box_api/get_legacy_file_version_legal_holds_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_legacy_file_version_legal_holds_example_call_tool.js
new file mode 100644
index 00000000..707ab356
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_legacy_file_version_legal_holds_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 = "BoxApi.GetLegacyFileVersionLegalHolds";
+
+// 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 = {
+ "legal_hold_policy_id": "lh_policy_789",
+ "pagination_marker": "marker_abc123",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_legacy_file_version_legal_holds_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_legacy_file_version_legal_holds_example_call_tool.py
new file mode 100644
index 00000000..de30519f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_legacy_file_version_legal_holds_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 = "BoxApi.GetLegacyFileVersionLegalHolds"
+
+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 = {
+ 'legal_hold_policy_id': 'lh_policy_789',
+ 'pagination_marker': 'marker_abc123',
+ 'max_items_per_page': 50
+}
+
+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/box_api/get_legal_hold_policy_assignments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_legal_hold_policy_assignments_example_call_tool.js
new file mode 100644
index 00000000..aa60668d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_legal_hold_policy_assignments_example_call_tool.js
@@ -0,0 +1,38 @@
+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 = "BoxApi.GetLegalHoldPolicyAssignments";
+
+// 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 = {
+ "legal_hold_policy_id": "lh_9f8a7b6c",
+ "filter_by_assignment_type": "file",
+ "filter_by_item_id": "1234567890",
+ "pagination_marker": "marker_abc123",
+ "maximum_items_per_page": 50,
+ "response_fields": [
+ "id",
+ "assigned_at",
+ "assigned_by",
+ "item_type"
+ ]
+};
+
+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/box_api/get_legal_hold_policy_assignments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_legal_hold_policy_assignments_example_call_tool.py
new file mode 100644
index 00000000..c136b1b9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_legal_hold_policy_assignments_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 = "BoxApi.GetLegalHoldPolicyAssignments"
+
+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 = {
+ 'legal_hold_policy_id': 'lh_9f8a7b6c',
+ 'filter_by_assignment_type': 'file',
+ 'filter_by_item_id': '1234567890',
+ 'pagination_marker': 'marker_abc123',
+ 'maximum_items_per_page': 50,
+ 'response_fields': ['id', 'assigned_at', 'assigned_by', 'item_type']
+}
+
+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/box_api/get_manual_start_workflows_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_manual_start_workflows_example_call_tool.js
new file mode 100644
index 00000000..859ac823
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_manual_start_workflows_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 = "BoxApi.GetManualStartWorkflows";
+
+// 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 = {
+ "folder_id": "123456789",
+ "trigger_type_filter": "WORKFLOW_MANUAL_START",
+ "max_items_per_page": 50,
+ "pagination_marker": "marker_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/box_api/get_manual_start_workflows_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_manual_start_workflows_example_call_tool.py
new file mode 100644
index 00000000..141713b5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_manual_start_workflows_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 = "BoxApi.GetManualStartWorkflows"
+
+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 = {
+ 'folder_id': '123456789',
+ 'trigger_type_filter': 'WORKFLOW_MANUAL_START',
+ 'max_items_per_page': 50,
+ 'pagination_marker': 'marker_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/box_api/get_metadata_cascade_policies_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_metadata_cascade_policies_example_call_tool.js
new file mode 100644
index 00000000..76382694
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_metadata_cascade_policies_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 = "BoxApi.GetMetadataCascadePolicies";
+
+// 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 = {
+ "target_folder_id": "123456789",
+ "owner_enterprise_id": "987654321",
+ "pagination_marker": "abcMarker",
+ "response_offset": 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/box_api/get_metadata_cascade_policies_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_metadata_cascade_policies_example_call_tool.py
new file mode 100644
index 00000000..261a055d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_metadata_cascade_policies_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 = "BoxApi.GetMetadataCascadePolicies"
+
+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 = {
+ 'target_folder_id': '123456789',
+ 'owner_enterprise_id': '987654321',
+ 'pagination_marker': 'abcMarker',
+ 'response_offset': 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/box_api/get_pending_collaboration_invites_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_pending_collaboration_invites_example_call_tool.js
new file mode 100644
index 00000000..87f6fbfb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_pending_collaboration_invites_example_call_tool.js
@@ -0,0 +1,38 @@
+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 = "BoxApi.GetPendingCollaborationInvites";
+
+// 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 = {
+ "collaboration_status": "pending",
+ "include_attributes": [
+ "id",
+ "created_by",
+ "created_at",
+ "item",
+ "role",
+ "status"
+ ],
+ "starting_item_offset": 0,
+ "maximum_items_per_page": 100
+};
+
+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/box_api/get_pending_collaboration_invites_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_pending_collaboration_invites_example_call_tool.py
new file mode 100644
index 00000000..79428658
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_pending_collaboration_invites_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 = "BoxApi.GetPendingCollaborationInvites"
+
+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 = {
+ 'collaboration_status': 'pending',
+ 'include_attributes': ['id', 'created_by', 'created_at', 'item', 'role', 'status'],
+ 'starting_item_offset': 0,
+ 'maximum_items_per_page': 100
+}
+
+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/box_api/get_recent_items_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_recent_items_info_example_call_tool.js
new file mode 100644
index 00000000..84caf1db
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_recent_items_info_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 = "BoxApi.GetRecentItemsInfo";
+
+// 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 = {
+ "include_additional_fields": [
+ "size",
+ "created_by",
+ "parent"
+ ],
+ "max_items_per_page": 100,
+ "pagination_start_marker": "marker_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/box_api/get_recent_items_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_recent_items_info_example_call_tool.py
new file mode 100644
index 00000000..e8359bac
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_recent_items_info_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 = "BoxApi.GetRecentItemsInfo"
+
+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 = {
+ 'include_additional_fields': ['size', 'created_by', 'parent'],
+ 'max_items_per_page': 100,
+ 'pagination_start_marker': 'marker_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/box_api/get_retention_policy_assignments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_assignments_example_call_tool.js
new file mode 100644
index 00000000..0c2b0787
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_assignments_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 = "BoxApi.GetRetentionPolicyAssignments";
+
+// 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 = {
+ "retention_policy_id": "rp_9a3f2b",
+ "assignment_type": "folder",
+ "include_fields_in_response": [
+ "assigned_to",
+ "created_by"
+ ],
+ "pagination_start_marker": "m_0",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_retention_policy_assignments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_assignments_example_call_tool.py
new file mode 100644
index 00000000..5d1b3653
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_assignments_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 = "BoxApi.GetRetentionPolicyAssignments"
+
+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 = {
+ 'retention_policy_id': 'rp_9a3f2b',
+ 'assignment_type': 'folder',
+ 'include_fields_in_response': ['assigned_to', 'created_by'],
+ 'pagination_start_marker': 'm_0',
+ 'max_items_per_page': 50
+}
+
+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/box_api/get_retention_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_example_call_tool.js
new file mode 100644
index 00000000..0ccbbabf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_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 = "BoxApi.GetRetentionPolicy";
+
+// 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 = {
+ "retention_policy_id": "rp_12345",
+ "include_attributes": [
+ "name",
+ "rules",
+ "created_by"
+ ]
+};
+
+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/box_api/get_retention_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_example_call_tool.py
new file mode 100644
index 00000000..c6fe3e62
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_retention_policy_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 = "BoxApi.GetRetentionPolicy"
+
+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 = {
+ 'retention_policy_id': 'rp_12345', 'include_attributes': ['name', 'rules', 'created_by']
+}
+
+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/box_api/get_safe_collaboration_domains_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_safe_collaboration_domains_example_call_tool.js
new file mode 100644
index 00000000..d5b8fc43
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_safe_collaboration_domains_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 = "BoxApi.GetSafeCollaborationDomains";
+
+// 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 = {
+ "pagination_start_marker": "marker_abc123",
+ "maximum_items_per_page": 25
+};
+
+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/box_api/get_safe_collaboration_domains_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_safe_collaboration_domains_example_call_tool.py
new file mode 100644
index 00000000..eccf5dde
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_safe_collaboration_domains_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 = "BoxApi.GetSafeCollaborationDomains"
+
+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 = {
+ 'pagination_start_marker': 'marker_abc123', 'maximum_items_per_page': 25
+}
+
+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/box_api/get_shared_app_item_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shared_app_item_example_call_tool.js
new file mode 100644
index 00000000..91a6e60c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_app_item_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 = "BoxApi.GetSharedAppItem";
+
+// 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 = {
+ "shared_link_information": "shared_link=https://example.com/s/abc123&shared_link_password=secret"
+};
+
+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/box_api/get_shared_app_item_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shared_app_item_example_call_tool.py
new file mode 100644
index 00000000..857335c9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_app_item_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 = "BoxApi.GetSharedAppItem"
+
+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 = {
+ 'shared_link_information': 'shared_link=https://example.com/s/abc123&shared_link_password=secret'
+}
+
+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/box_api/get_shared_folder_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shared_folder_info_example_call_tool.js
new file mode 100644
index 00000000..23b85bc8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_folder_info_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 = "BoxApi.GetSharedFolderInfo";
+
+// 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 = {
+ "shared_link_header": "shared_link=https://cloud.example.com/s/AbCdEf&shared_link_password=tr0ub4dor",
+ "include_fields": [
+ "id",
+ "name",
+ "size",
+ "created_at"
+ ],
+ "etag_condition": "\"3f80f-1b6-3e9\""
+};
+
+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/box_api/get_shared_folder_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shared_folder_info_example_call_tool.py
new file mode 100644
index 00000000..4748848e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_folder_info_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 = "BoxApi.GetSharedFolderInfo"
+
+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 = {
+ 'shared_link_header': 'shared_link=https://cloud.example.com/s/AbCdEf&shared_link_password=tr0ub4dor',
+ 'include_fields': ['id', 'name', 'size', 'created_at'],
+ 'etag_condition': '"3f80f-1b6-3e9"'
+}
+
+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/box_api/get_shared_link_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shared_link_info_example_call_tool.js
new file mode 100644
index 00000000..5efa9cb9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_link_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 = "BoxApi.GetSharedLinkInfo";
+
+// 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 = {
+ "include_shared_link_fields": "shared_link",
+ "file_identifier": "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/box_api/get_shared_link_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shared_link_info_example_call_tool.py
new file mode 100644
index 00000000..e72dd0b5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_link_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 = "BoxApi.GetSharedLinkInfo"
+
+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 = {
+ 'include_shared_link_fields': 'shared_link', 'file_identifier': '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/box_api/get_shared_web_link_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shared_web_link_info_example_call_tool.js
new file mode 100644
index 00000000..1c4c6d54
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_web_link_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 = "BoxApi.GetSharedWebLinkInfo";
+
+// 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 = {
+ "request_shared_link_fields": "url,access,permissions",
+ "web_link_identifier": "wl_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/box_api/get_shared_web_link_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shared_web_link_info_example_call_tool.py
new file mode 100644
index 00000000..a58836b8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shared_web_link_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 = "BoxApi.GetSharedWebLinkInfo"
+
+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 = {
+ 'request_shared_link_fields': 'url,access,permissions', 'web_link_identifier': 'wl_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/box_api/get_shield_info_barrier_member_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_member_example_call_tool.js
new file mode 100644
index 00000000..9ae9bc21
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_member_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 = "BoxApi.GetShieldInfoBarrierMember";
+
+// 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 = {
+ "member_id": "mbr_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/box_api/get_shield_info_barrier_member_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_member_example_call_tool.py
new file mode 100644
index 00000000..a332d243
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_member_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 = "BoxApi.GetShieldInfoBarrierMember"
+
+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 = {
+ 'member_id': 'mbr_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/box_api/get_shield_info_barrier_segment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_segment_example_call_tool.js
new file mode 100644
index 00000000..e6113456
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_segment_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 = "BoxApi.GetShieldInfoBarrierSegment";
+
+// 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 = {
+ "barrier_segment_id": "seg_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/box_api/get_shield_info_barrier_segment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_segment_example_call_tool.py
new file mode 100644
index 00000000..763891de
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_info_barrier_segment_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 = "BoxApi.GetShieldInfoBarrierSegment"
+
+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 = {
+ 'barrier_segment_id': 'seg_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/box_api/get_shield_information_barrier_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_example_call_tool.js
new file mode 100644
index 00000000..d5a0cc19
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_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 = "BoxApi.GetShieldInformationBarrier";
+
+// 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 = {
+ "shield_information_barrier_id": "sib_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/box_api/get_shield_information_barrier_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_example_call_tool.py
new file mode 100644
index 00000000..fe37b8f8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_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 = "BoxApi.GetShieldInformationBarrier"
+
+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 = {
+ 'shield_information_barrier_id': 'sib_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/box_api/get_shield_information_barrier_reports_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_reports_example_call_tool.js
new file mode 100644
index 00000000..a64ca314
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_reports_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 = "BoxApi.GetShieldInformationBarrierReports";
+
+// 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 = {
+ "shield_information_barrier_id": "sib_7890abcd",
+ "pagination_marker": "marker_2",
+ "maximum_items_per_page": 25
+};
+
+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/box_api/get_shield_information_barrier_reports_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_reports_example_call_tool.py
new file mode 100644
index 00000000..18f6248d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_reports_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 = "BoxApi.GetShieldInformationBarrierReports"
+
+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 = {
+ 'shield_information_barrier_id': 'sib_7890abcd',
+ 'pagination_marker': 'marker_2',
+ 'maximum_items_per_page': 25
+}
+
+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/box_api/get_shield_information_barrier_segment_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segment_info_example_call_tool.js
new file mode 100644
index 00000000..a1a22361
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segment_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 = "BoxApi.GetShieldInformationBarrierSegmentInfo";
+
+// 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 = {
+ "segment_restriction_id": "sr_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/box_api/get_shield_information_barrier_segment_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segment_info_example_call_tool.py
new file mode 100644
index 00000000..fd4798fb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segment_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 = "BoxApi.GetShieldInformationBarrierSegmentInfo"
+
+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 = {
+ 'segment_restriction_id': 'sr_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/box_api/get_shield_information_barrier_segments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segments_example_call_tool.js
new file mode 100644
index 00000000..4fdc2e1a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segments_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 = "BoxApi.GetShieldInformationBarrierSegments";
+
+// 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 = {
+ "shield_information_barrier_id": "sib-12345",
+ "pagination_position_marker": "marker-2",
+ "maximum_items_per_page": 50
+};
+
+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/box_api/get_shield_information_barrier_segments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segments_example_call_tool.py
new file mode 100644
index 00000000..67de4ead
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barrier_segments_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 = "BoxApi.GetShieldInformationBarrierSegments"
+
+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 = {
+ 'shield_information_barrier_id': 'sib-12345',
+ 'pagination_position_marker': 'marker-2',
+ 'maximum_items_per_page': 50
+}
+
+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/box_api/get_shield_information_barriers_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barriers_example_call_tool.js
new file mode 100644
index 00000000..5f73fe83
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barriers_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 = "BoxApi.GetShieldInformationBarriers";
+
+// 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 = {
+ "pagination_marker": "abc123",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_shield_information_barriers_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barriers_example_call_tool.py
new file mode 100644
index 00000000..8bd07175
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_barriers_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 = "BoxApi.GetShieldInformationBarriers"
+
+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 = {
+ 'pagination_marker': 'abc123', 'max_items_per_page': 50
+}
+
+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/box_api/get_shield_information_restrictions_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_shield_information_restrictions_example_call_tool.js
new file mode 100644
index 00000000..b3128606
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_restrictions_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 = "BoxApi.GetShieldInformationRestrictions";
+
+// 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 = {
+ "segment_id": "seg-8f3b12a7",
+ "pagination_position_marker": "marker-2",
+ "max_items_per_page": 50
+};
+
+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/box_api/get_shield_information_restrictions_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_shield_information_restrictions_example_call_tool.py
new file mode 100644
index 00000000..238f3b83
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_shield_information_restrictions_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 = "BoxApi.GetShieldInformationRestrictions"
+
+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 = {
+ 'segment_id': 'seg-8f3b12a7', 'pagination_position_marker': 'marker-2', 'max_items_per_page': 50
+}
+
+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/box_api/get_specific_terms_of_service_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_specific_terms_of_service_example_call_tool.js
new file mode 100644
index 00000000..84e81cec
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_specific_terms_of_service_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 = "BoxApi.GetSpecificTermsOfService";
+
+// 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 = {
+ "terms_of_service_id": "tos_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/box_api/get_specific_terms_of_service_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_specific_terms_of_service_example_call_tool.py
new file mode 100644
index 00000000..6c74d735
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_specific_terms_of_service_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 = "BoxApi.GetSpecificTermsOfService"
+
+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 = {
+ 'terms_of_service_id': 'tos_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/box_api/get_specific_webhook_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_specific_webhook_example_call_tool.js
new file mode 100644
index 00000000..bb5b9a31
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_specific_webhook_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 = "BoxApi.GetSpecificWebhook";
+
+// 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 = {
+ "webhook_id": "wh_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/box_api/get_specific_webhook_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_specific_webhook_example_call_tool.py
new file mode 100644
index 00000000..0a534274
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_specific_webhook_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 = "BoxApi.GetSpecificWebhook"
+
+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 = {
+ 'webhook_id': 'wh_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/box_api/get_teams_integration_mappings_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_teams_integration_mappings_example_call_tool.js
new file mode 100644
index 00000000..7153cd79
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_teams_integration_mappings_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 = "BoxApi.GetTeamsIntegrationMappings";
+
+// 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 = {
+ "mapped_item_type": "channel",
+ "mapped_item_id": "19:abc123def456ghi789@thread.tacv2",
+ "box_item_id_for_mappings": "1234567890",
+ "box_item_type": "folder"
+};
+
+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/box_api/get_teams_integration_mappings_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_teams_integration_mappings_example_call_tool.py
new file mode 100644
index 00000000..c140c1f2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_teams_integration_mappings_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 = "BoxApi.GetTeamsIntegrationMappings"
+
+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 = {
+ 'mapped_item_type': 'channel',
+ 'mapped_item_id': '19:abc123def456ghi789@thread.tacv2',
+ 'box_item_id_for_mappings': '1234567890',
+ 'box_item_type': 'folder'
+}
+
+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/box_api/get_upload_session_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_upload_session_details_example_call_tool.js
new file mode 100644
index 00000000..c9227f08
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_upload_session_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 = "BoxApi.GetUploadSessionDetails";
+
+// 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 = {
+ "upload_session_id": "sess_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/box_api/get_upload_session_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_upload_session_details_example_call_tool.py
new file mode 100644
index 00000000..0b8bb424
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_upload_session_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 = "BoxApi.GetUploadSessionDetails"
+
+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 = {
+ 'upload_session_id': 'sess_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/box_api/get_uploaded_chunks_list_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_uploaded_chunks_list_example_call_tool.js
new file mode 100644
index 00000000..218cd0e1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_uploaded_chunks_list_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 = "BoxApi.GetUploadedChunksList";
+
+// 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 = {
+ "upload_session_identifier": "sess_abc123",
+ "response_offset": 0,
+ "max_items_per_page": 50
+};
+
+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/box_api/get_uploaded_chunks_list_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_uploaded_chunks_list_example_call_tool.py
new file mode 100644
index 00000000..aa8ddfa6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_uploaded_chunks_list_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 = "BoxApi.GetUploadedChunksList"
+
+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 = {
+ 'upload_session_identifier': 'sess_abc123', 'response_offset': 0, 'max_items_per_page': 50
+}
+
+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/box_api/get_user_avatar_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_user_avatar_example_call_tool.js
new file mode 100644
index 00000000..05156ad0
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_avatar_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 = "BoxApi.GetUserAvatar";
+
+// 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_id": "user_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/box_api/get_user_avatar_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_user_avatar_example_call_tool.py
new file mode 100644
index 00000000..bed4e487
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_avatar_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 = "BoxApi.GetUserAvatar"
+
+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_id': 'user_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/box_api/get_user_email_aliases_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_user_email_aliases_example_call_tool.js
new file mode 100644
index 00000000..b6ba043a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_email_aliases_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 = "BoxApi.GetUserEmailAliases";
+
+// 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_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/box_api/get_user_email_aliases_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_user_email_aliases_example_call_tool.py
new file mode 100644
index 00000000..5a95552e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_email_aliases_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 = "BoxApi.GetUserEmailAliases"
+
+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_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/box_api/get_user_group_memberships_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_user_group_memberships_example_call_tool.js
new file mode 100644
index 00000000..3008b624
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_group_memberships_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 = "BoxApi.GetUserGroupMemberships";
+
+// 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_7890",
+ "max_items_per_page": 50,
+ "response_offset": 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/box_api/get_user_group_memberships_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_user_group_memberships_example_call_tool.py
new file mode 100644
index 00000000..d942f9cb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_group_memberships_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 = "BoxApi.GetUserGroupMemberships"
+
+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_7890', 'max_items_per_page': 50, 'response_offset': 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/box_api/get_user_information_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_user_information_example_call_tool.js
new file mode 100644
index 00000000..d5562caa
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_information_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 = "BoxApi.GetUserInformation";
+
+// 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": "u-93b2f1",
+ "requested_user_fields": [
+ "email",
+ "displayName",
+ "department"
+ ]
+};
+
+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/box_api/get_user_information_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_user_information_example_call_tool.py
new file mode 100644
index 00000000..11f3f822
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_information_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 = "BoxApi.GetUserInformation"
+
+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': 'u-93b2f1', 'requested_user_fields': ['email', 'displayName', 'department']
+}
+
+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/box_api/get_user_tos_status_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/get_user_tos_status_example_call_tool.js
new file mode 100644
index 00000000..2e1d338e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_tos_status_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 = "BoxApi.GetUserTosStatus";
+
+// 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 = {
+ "terms_of_service_id": "tos_2025_07_v1",
+ "filter_by_user_id": "user_789"
+};
+
+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/box_api/get_user_tos_status_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/get_user_tos_status_example_call_tool.py
new file mode 100644
index 00000000..720dc814
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/get_user_tos_status_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 = "BoxApi.GetUserTosStatus"
+
+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 = {
+ 'terms_of_service_id': 'tos_2025_07_v1', 'filter_by_user_id': 'user_789'
+}
+
+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/box_api/list_ai_agents_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_ai_agents_example_call_tool.js
new file mode 100644
index 00000000..43a10f81
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_ai_agents_example_call_tool.js
@@ -0,0 +1,44 @@
+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 = "BoxApi.ListAiAgents";
+
+// 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_mode": [
+ "text_gen",
+ "extract"
+ ],
+ "response_fields": [
+ "id",
+ "name",
+ "mode",
+ "status"
+ ],
+ "agent_state_filter": [
+ "enabled",
+ "enabled_for_selected_users"
+ ],
+ "results_start_position_marker": "marker_abc123",
+ "max_items_per_page": 25,
+ "include_box_default_agents": 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/box_api/list_ai_agents_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_ai_agents_example_call_tool.py
new file mode 100644
index 00000000..620a856d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_ai_agents_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 = "BoxApi.ListAiAgents"
+
+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_mode': ['text_gen', 'extract'],
+ 'response_fields': ['id', 'name', 'mode', 'status'],
+ 'agent_state_filter': ['enabled', 'enabled_for_selected_users'],
+ 'results_start_position_marker': 'marker_abc123',
+ 'max_items_per_page': 25,
+ 'include_box_default_agents': 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/box_api/list_box_doc_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_box_doc_templates_example_call_tool.js
new file mode 100644
index 00000000..500fa1b3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_doc_templates_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 = "BoxApi.ListBoxDocTemplates";
+
+// 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 = {
+ "pagination_start_marker": "abc123marker",
+ "max_items_per_page": 25
+};
+
+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/box_api/list_box_doc_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_box_doc_templates_example_call_tool.py
new file mode 100644
index 00000000..2834726a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_doc_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 = "BoxApi.ListBoxDocTemplates"
+
+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 = {
+ 'pagination_start_marker': 'abc123marker', 'max_items_per_page': 25
+}
+
+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/box_api/list_box_docgen_jobs_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_jobs_example_call_tool.js
new file mode 100644
index 00000000..65ebedb7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_jobs_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 = "BoxApi.ListBoxDocgenJobs";
+
+// 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 = {
+ "pagination_marker": "abc123marker",
+ "maximum_items_per_page": 25
+};
+
+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/box_api/list_box_docgen_jobs_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_jobs_example_call_tool.py
new file mode 100644
index 00000000..057e5fc8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_jobs_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 = "BoxApi.ListBoxDocgenJobs"
+
+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 = {
+ 'pagination_marker': 'abc123marker', 'maximum_items_per_page': 25
+}
+
+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/box_api/list_box_docgen_template_tags_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_template_tags_example_call_tool.js
new file mode 100644
index 00000000..7a9e6e75
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_template_tags_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 = "BoxApi.ListBoxDocgenTemplateTags";
+
+// 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 = {
+ "template_id": "tmpl_12345",
+ "template_version_id": "v2",
+ "pagination_start_marker": "marker_0",
+ "maximum_items_per_page": 50
+};
+
+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/box_api/list_box_docgen_template_tags_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_template_tags_example_call_tool.py
new file mode 100644
index 00000000..cbfae3cf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_box_docgen_template_tags_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 = "BoxApi.ListBoxDocgenTemplateTags"
+
+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 = {
+ 'template_id': 'tmpl_12345',
+ 'template_version_id': 'v2',
+ 'pagination_start_marker': 'marker_0',
+ 'maximum_items_per_page': 50
+}
+
+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/box_api/list_defined_webhooks_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_defined_webhooks_example_call_tool.js
new file mode 100644
index 00000000..33b05f2f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_defined_webhooks_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 = "BoxApi.ListDefinedWebhooks";
+
+// 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 = {
+ "pagination_start_marker": "abc123",
+ "maximum_items_per_page": 50
+};
+
+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/box_api/list_defined_webhooks_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_defined_webhooks_example_call_tool.py
new file mode 100644
index 00000000..56731207
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_defined_webhooks_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 = "BoxApi.ListDefinedWebhooks"
+
+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 = {
+ 'pagination_start_marker': 'abc123', 'maximum_items_per_page': 50
+}
+
+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/box_api/list_docgen_batch_jobs_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_docgen_batch_jobs_example_call_tool.js
new file mode 100644
index 00000000..5e02321d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_docgen_batch_jobs_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 = "BoxApi.ListDocgenBatchJobs";
+
+// 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 = {
+ "box_doc_gen_batch_id": "batch_12345",
+ "pagination_marker": "marker_abc",
+ "maximum_items_per_page": 25
+};
+
+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/box_api/list_docgen_batch_jobs_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_docgen_batch_jobs_example_call_tool.py
new file mode 100644
index 00000000..e0b89baf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_docgen_batch_jobs_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 = "BoxApi.ListDocgenBatchJobs"
+
+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 = {
+ 'box_doc_gen_batch_id': 'batch_12345',
+ 'pagination_marker': 'marker_abc',
+ 'maximum_items_per_page': 25
+}
+
+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/box_api/list_enterprise_users_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_enterprise_users_example_call_tool.js
new file mode 100644
index 00000000..9bad866a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_enterprise_users_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 = "BoxApi.ListEnterpriseUsers";
+
+// 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 = {
+ "search_term_for_user_filtering": "alex",
+ "user_type_filter": "managed",
+ "include_additional_fields": [
+ "role",
+ "language"
+ ],
+ "response_offset": 0,
+ "max_items_per_page": 100,
+ "use_marker_pagination": 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/box_api/list_enterprise_users_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_enterprise_users_example_call_tool.py
new file mode 100644
index 00000000..e6dcca4c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_enterprise_users_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 = "BoxApi.ListEnterpriseUsers"
+
+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 = {
+ 'search_term_for_user_filtering': 'alex',
+ 'user_type_filter': 'managed',
+ 'include_additional_fields': ['role', 'language'],
+ 'response_offset': 0,
+ 'max_items_per_page': 100,
+ 'use_marker_pagination': 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/box_api/list_files_under_retention_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_files_under_retention_policy_example_call_tool.js
new file mode 100644
index 00000000..3853fdf1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_files_under_retention_policy_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 = "BoxApi.ListFilesUnderRetentionPolicy";
+
+// 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 = {
+ "retention_policy_assignment_id": "rp_7890abcd",
+ "position_marker": "marker_12345",
+ "max_items_per_page": 50
+};
+
+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/box_api/list_files_under_retention_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_files_under_retention_policy_example_call_tool.py
new file mode 100644
index 00000000..e56eb247
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_files_under_retention_policy_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 = "BoxApi.ListFilesUnderRetentionPolicy"
+
+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 = {
+ 'retention_policy_assignment_id': 'rp_7890abcd',
+ 'position_marker': 'marker_12345',
+ 'max_items_per_page': 50
+}
+
+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/box_api/list_shield_barrier_segment_members_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_shield_barrier_segment_members_example_call_tool.js
new file mode 100644
index 00000000..424fbf6e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_shield_barrier_segment_members_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 = "BoxApi.ListShieldBarrierSegmentMembers";
+
+// 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 = {
+ "segment_id": "seg_abc123",
+ "pagination_marker": "marker_xyz",
+ "items_per_page_limit": 50
+};
+
+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/box_api/list_shield_barrier_segment_members_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_shield_barrier_segment_members_example_call_tool.py
new file mode 100644
index 00000000..98e808fd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_shield_barrier_segment_members_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 = "BoxApi.ListShieldBarrierSegmentMembers"
+
+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 = {
+ 'segment_id': 'seg_abc123', 'pagination_marker': 'marker_xyz', 'items_per_page_limit': 50
+}
+
+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/box_api/list_slack_integration_mappings_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_slack_integration_mappings_example_call_tool.js
new file mode 100644
index 00000000..30b86f0f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_slack_integration_mappings_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 = "BoxApi.ListSlackIntegrationMappings";
+
+// 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 = {
+ "pagination_start_marker": "abc123",
+ "max_items_per_page": 25,
+ "mapped_item_type": "channel",
+ "mapped_item_id": "C0456XYZ",
+ "box_item_id": "7890123456",
+ "box_item_type": "folder",
+ "include_manually_created_mappings": 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/box_api/list_slack_integration_mappings_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_slack_integration_mappings_example_call_tool.py
new file mode 100644
index 00000000..2e4b90be
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_slack_integration_mappings_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 = "BoxApi.ListSlackIntegrationMappings"
+
+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 = {
+ 'pagination_start_marker': 'abc123',
+ 'max_items_per_page': 25,
+ 'mapped_item_type': 'channel',
+ 'mapped_item_id': 'C0456XYZ',
+ 'box_item_id': '7890123456',
+ 'box_item_type': 'folder',
+ 'include_manually_created_mappings': 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/box_api/list_task_assignments_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_task_assignments_example_call_tool.js
new file mode 100644
index 00000000..f47aa417
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_task_assignments_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 = "BoxApi.ListTaskAssignments";
+
+// 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 = {
+ "task_id": "task_7890abc"
+};
+
+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/box_api/list_task_assignments_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_task_assignments_example_call_tool.py
new file mode 100644
index 00000000..02c49309
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_task_assignments_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 = "BoxApi.ListTaskAssignments"
+
+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 = {
+ 'task_id': 'task_7890abc'
+}
+
+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/box_api/list_template_jobs_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/list_template_jobs_example_call_tool.js
new file mode 100644
index 00000000..afc107d7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_template_jobs_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 = "BoxApi.ListTemplateJobs";
+
+// 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 = {
+ "template_identifier": "tmpl_12345",
+ "pagination_start_marker": "marker_abc",
+ "max_items_per_page": 25
+};
+
+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/box_api/list_template_jobs_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/list_template_jobs_example_call_tool.py
new file mode 100644
index 00000000..1b846262
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/list_template_jobs_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 = "BoxApi.ListTemplateJobs"
+
+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 = {
+ 'template_identifier': 'tmpl_12345',
+ 'pagination_start_marker': 'marker_abc',
+ 'max_items_per_page': 25
+}
+
+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/box_api/permanently_delete_file_from_trash_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/permanently_delete_file_from_trash_example_call_tool.js
new file mode 100644
index 00000000..44ff12b4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_file_from_trash_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 = "BoxApi.PermanentlyDeleteFileFromTrash";
+
+// 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 = {
+ "file_identifier": "file_9a8b7c6d1234"
+};
+
+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/box_api/permanently_delete_file_from_trash_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/permanently_delete_file_from_trash_example_call_tool.py
new file mode 100644
index 00000000..3ff9eb3f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_file_from_trash_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 = "BoxApi.PermanentlyDeleteFileFromTrash"
+
+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 = {
+ 'file_identifier': 'file_9a8b7c6d1234'
+}
+
+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/box_api/permanently_delete_folder_in_trash_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/permanently_delete_folder_in_trash_example_call_tool.js
new file mode 100644
index 00000000..236172f9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_folder_in_trash_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 = "BoxApi.PermanentlyDeleteFolderInTrash";
+
+// 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 = {
+ "folder_identifier": "abc123-folder-id"
+};
+
+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/box_api/permanently_delete_folder_in_trash_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/permanently_delete_folder_in_trash_example_call_tool.py
new file mode 100644
index 00000000..5620f3ae
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_folder_in_trash_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 = "BoxApi.PermanentlyDeleteFolderInTrash"
+
+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 = {
+ 'folder_identifier': 'abc123-folder-id'
+}
+
+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/box_api/permanently_delete_trashed_web_link_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/permanently_delete_trashed_web_link_example_call_tool.js
new file mode 100644
index 00000000..1aca7c11
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_trashed_web_link_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 = "BoxApi.PermanentlyDeleteTrashedWebLink";
+
+// 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 = {
+ "web_link_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/box_api/permanently_delete_trashed_web_link_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/permanently_delete_trashed_web_link_example_call_tool.py
new file mode 100644
index 00000000..005176de
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/permanently_delete_trashed_web_link_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 = "BoxApi.PermanentlyDeleteTrashedWebLink"
+
+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 = {
+ 'web_link_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/box_api/remove_box_skills_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_box_skills_metadata_example_call_tool.js
new file mode 100644
index 00000000..3fd48ad7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_box_skills_metadata_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 = "BoxApi.RemoveBoxSkillsMetadata";
+
+// 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 = {
+ "file_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/box_api/remove_box_skills_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_box_skills_metadata_example_call_tool.py
new file mode 100644
index 00000000..60ca1e6f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_box_skills_metadata_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 = "BoxApi.RemoveBoxSkillsMetadata"
+
+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 = {
+ 'file_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/box_api/remove_collaboration_whitelist_exemption_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_collaboration_whitelist_exemption_example_call_tool.js
new file mode 100644
index 00000000..1f82bc01
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_collaboration_whitelist_exemption_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 = "BoxApi.RemoveCollaborationWhitelistExemption";
+
+// 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 = {
+ "exemption_id": "ex_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/box_api/remove_collaboration_whitelist_exemption_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_collaboration_whitelist_exemption_example_call_tool.py
new file mode 100644
index 00000000..9a43bef4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_collaboration_whitelist_exemption_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 = "BoxApi.RemoveCollaborationWhitelistExemption"
+
+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 = {
+ 'exemption_id': 'ex_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/box_api/remove_file_classification_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_file_classification_example_call_tool.js
new file mode 100644
index 00000000..793a9f78
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_file_classification_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 = "BoxApi.RemoveFileClassification";
+
+// 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 = {
+ "file_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/box_api/remove_file_classification_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_file_classification_example_call_tool.py
new file mode 100644
index 00000000..5661f305
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_file_classification_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 = "BoxApi.RemoveFileClassification"
+
+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 = {
+ 'file_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/box_api/remove_file_watermark_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_file_watermark_example_call_tool.js
new file mode 100644
index 00000000..47019415
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_file_watermark_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 = "BoxApi.RemoveFileWatermark";
+
+// 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 = {
+ "file_identifier": "123"
+};
+
+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/box_api/remove_file_watermark_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_file_watermark_example_call_tool.py
new file mode 100644
index 00000000..5b0bae2a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_file_watermark_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 = "BoxApi.RemoveFileWatermark"
+
+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 = {
+ 'file_identifier': '123'
+}
+
+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/box_api/remove_folder_classifications_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_folder_classifications_example_call_tool.js
new file mode 100644
index 00000000..0ad0e049
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_folder_classifications_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 = "BoxApi.RemoveFolderClassifications";
+
+// 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 = {
+ "folder_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/box_api/remove_folder_classifications_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_folder_classifications_example_call_tool.py
new file mode 100644
index 00000000..eabd75cf
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_folder_classifications_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 = "BoxApi.RemoveFolderClassifications"
+
+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 = {
+ 'folder_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/box_api/remove_legal_hold_from_item_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_legal_hold_from_item_example_call_tool.js
new file mode 100644
index 00000000..1d32668c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_legal_hold_from_item_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 = "BoxApi.RemoveLegalHoldFromItem";
+
+// 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 = {
+ "legal_hold_policy_assignment_id": "lhpa_8f3d2b1a"
+};
+
+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/box_api/remove_legal_hold_from_item_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_legal_hold_from_item_example_call_tool.py
new file mode 100644
index 00000000..d6e5946d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_legal_hold_from_item_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 = "BoxApi.RemoveLegalHoldFromItem"
+
+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 = {
+ 'legal_hold_policy_assignment_id': 'lhpa_8f3d2b1a'
+}
+
+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/box_api/remove_retention_policy_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_retention_policy_assignment_example_call_tool.js
new file mode 100644
index 00000000..d5a23ce8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_retention_policy_assignment_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 = "BoxApi.RemoveRetentionPolicyAssignment";
+
+// 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 = {
+ "retention_policy_assignment_id": "rpa_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/box_api/remove_retention_policy_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_retention_policy_assignment_example_call_tool.py
new file mode 100644
index 00000000..d5f41fe9
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_retention_policy_assignment_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 = "BoxApi.RemoveRetentionPolicyAssignment"
+
+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 = {
+ 'retention_policy_assignment_id': 'rpa_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/box_api/remove_safe_collaboration_domain_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_safe_collaboration_domain_example_call_tool.js
new file mode 100644
index 00000000..d7d8a7a4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_safe_collaboration_domain_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 = "BoxApi.RemoveSafeCollaborationDomain";
+
+// 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 = {
+ "whitelist_entry_id": "d41f2b7a-8c3e-4f6a-9b2d-12345abcde67"
+};
+
+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/box_api/remove_safe_collaboration_domain_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_safe_collaboration_domain_example_call_tool.py
new file mode 100644
index 00000000..4ea3f596
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_safe_collaboration_domain_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 = "BoxApi.RemoveSafeCollaborationDomain"
+
+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 = {
+ 'whitelist_entry_id': 'd41f2b7a-8c3e-4f6a-9b2d-12345abcde67'
+}
+
+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/box_api/remove_shield_barrier_member_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_shield_barrier_member_example_call_tool.js
new file mode 100644
index 00000000..6a9366f4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_shield_barrier_member_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 = "BoxApi.RemoveShieldBarrierMember";
+
+// 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 = {
+ "member_id_for_deletion": "mbr_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/box_api/remove_shield_barrier_member_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_shield_barrier_member_example_call_tool.py
new file mode 100644
index 00000000..85ed2429
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_shield_barrier_member_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 = "BoxApi.RemoveShieldBarrierMember"
+
+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 = {
+ 'member_id_for_deletion': 'mbr_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/box_api/remove_user_avatar_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_user_avatar_example_call_tool.js
new file mode 100644
index 00000000..1c3de43e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_user_avatar_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 = "BoxApi.RemoveUserAvatar";
+
+// 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_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/box_api/remove_user_avatar_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_user_avatar_example_call_tool.py
new file mode 100644
index 00000000..c9dc119a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_user_avatar_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 = "BoxApi.RemoveUserAvatar"
+
+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_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/box_api/remove_user_email_alias_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_user_email_alias_example_call_tool.js
new file mode 100644
index 00000000..06c021e2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_user_email_alias_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 = "BoxApi.RemoveUserEmailAlias";
+
+// 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_12345",
+ "email_alias_id": "alias_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/box_api/remove_user_email_alias_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_user_email_alias_example_call_tool.py
new file mode 100644
index 00000000..bd123fe7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_user_email_alias_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 = "BoxApi.RemoveUserEmailAlias"
+
+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_12345', 'email_alias_id': 'alias_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/box_api/remove_watermark_from_folder_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/remove_watermark_from_folder_example_call_tool.js
new file mode 100644
index 00000000..2409eb6a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_watermark_from_folder_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 = "BoxApi.RemoveWatermarkFromFolder";
+
+// 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 = {
+ "folder_identifier": "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/box_api/remove_watermark_from_folder_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/remove_watermark_from_folder_example_call_tool.py
new file mode 100644
index 00000000..e7660759
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/remove_watermark_from_folder_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 = "BoxApi.RemoveWatermarkFromFolder"
+
+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 = {
+ 'folder_identifier': '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/box_api/resend_signature_request_email_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/resend_signature_request_email_example_call_tool.js
new file mode 100644
index 00000000..cd331d10
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/resend_signature_request_email_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 = "BoxApi.ResendSignatureRequestEmail";
+
+// 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 = {
+ "signature_request_id": "req_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/box_api/resend_signature_request_email_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/resend_signature_request_email_example_call_tool.py
new file mode 100644
index 00000000..47cd471c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/resend_signature_request_email_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 = "BoxApi.ResendSignatureRequestEmail"
+
+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 = {
+ 'signature_request_id': 'req_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/box_api/retrieve_box_hub_collaborations_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_collaborations_example_call_tool.js
new file mode 100644
index 00000000..8c0d18c1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_collaborations_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 = "BoxApi.RetrieveBoxHubCollaborations";
+
+// 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 = {
+ "hub_identifier": "hub_12345abcdef",
+ "pagination_marker": "marker_01",
+ "max_items_per_page": 50
+};
+
+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/box_api/retrieve_box_hub_collaborations_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_collaborations_example_call_tool.py
new file mode 100644
index 00000000..b5dd5521
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_collaborations_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 = "BoxApi.RetrieveBoxHubCollaborations"
+
+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 = {
+ 'hub_identifier': 'hub_12345abcdef', 'pagination_marker': 'marker_01', 'max_items_per_page': 50
+}
+
+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/box_api/retrieve_box_hub_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_details_example_call_tool.js
new file mode 100644
index 00000000..f15cf9fd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_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 = "BoxApi.RetrieveBoxHubDetails";
+
+// 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 = {
+ "box_hub_identifier": "12345abcdef"
+};
+
+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/box_api/retrieve_box_hub_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_details_example_call_tool.py
new file mode 100644
index 00000000..fbf14673
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_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 = "BoxApi.RetrieveBoxHubDetails"
+
+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 = {
+ 'box_hub_identifier': '12345abcdef'
+}
+
+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/box_api/retrieve_box_hub_items_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_items_example_call_tool.js
new file mode 100644
index 00000000..ae4a9744
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_items_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 = "BoxApi.RetrieveBoxHubItems";
+
+// 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 = {
+ "hub_identifier": "1234567890",
+ "pagination_start_marker": "marker_abc123",
+ "maximum_items_per_page": 50
+};
+
+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/box_api/retrieve_box_hub_items_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_items_example_call_tool.py
new file mode 100644
index 00000000..8b046bc5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_box_hub_items_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 = "BoxApi.RetrieveBoxHubItems"
+
+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 = {
+ 'hub_identifier': '1234567890',
+ 'pagination_start_marker': 'marker_abc123',
+ 'maximum_items_per_page': 50
+}
+
+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/box_api/retrieve_collection_by_id_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_by_id_example_call_tool.js
new file mode 100644
index 00000000..28651e15
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_by_id_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 = "BoxApi.RetrieveCollectionById";
+
+// 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 = {
+ "collection_identifier": "col_9a8b7c6d5e"
+};
+
+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/box_api/retrieve_collection_by_id_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_by_id_example_call_tool.py
new file mode 100644
index 00000000..95163cc3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_by_id_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 = "BoxApi.RetrieveCollectionById"
+
+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 = {
+ 'collection_identifier': 'col_9a8b7c6d5e'
+}
+
+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/box_api/retrieve_collection_contents_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_contents_example_call_tool.js
new file mode 100644
index 00000000..26f02865
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_contents_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 = "BoxApi.RetrieveCollectionContents";
+
+// 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 = {
+ "collection_id": "col_9a8b7c6d",
+ "attributes_to_include": [
+ "name",
+ "size",
+ "modified_at"
+ ],
+ "response_offset": 0,
+ "max_items_per_page": 50
+};
+
+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/box_api/retrieve_collection_contents_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_contents_example_call_tool.py
new file mode 100644
index 00000000..12d7bc6e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_collection_contents_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 = "BoxApi.RetrieveCollectionContents"
+
+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 = {
+ 'collection_id': 'col_9a8b7c6d',
+ 'attributes_to_include': ['name', 'size', 'modified_at'],
+ 'response_offset': 0,
+ 'max_items_per_page': 50
+}
+
+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/box_api/retrieve_enterprise_archives_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_archives_example_call_tool.js
new file mode 100644
index 00000000..c21020e1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_archives_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 = "BoxApi.RetrieveEnterpriseArchives";
+
+// 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 = {
+ "max_items_per_page": 50,
+ "pagination_start_marker": "marker_0001"
+};
+
+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/box_api/retrieve_enterprise_archives_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_archives_example_call_tool.py
new file mode 100644
index 00000000..f2155b36
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_archives_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 = "BoxApi.RetrieveEnterpriseArchives"
+
+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 = {
+ 'max_items_per_page': 50, 'pagination_start_marker': 'marker_0001'
+}
+
+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/box_api/retrieve_enterprise_groups_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_groups_example_call_tool.js
new file mode 100644
index 00000000..3cf74e50
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_groups_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 = "BoxApi.RetrieveEnterpriseGroups";
+
+// 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 = {
+ "group_name_starts_with": "Dev",
+ "included_attributes": [
+ "id",
+ "name",
+ "member_count"
+ ],
+ "max_items_per_page": 50,
+ "starting_item_offset": 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/box_api/retrieve_enterprise_groups_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_groups_example_call_tool.py
new file mode 100644
index 00000000..fe7aa76c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_groups_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 = "BoxApi.RetrieveEnterpriseGroups"
+
+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 = {
+ 'group_name_starts_with': 'Dev',
+ 'included_attributes': ['id', 'name', 'member_count'],
+ 'max_items_per_page': 50,
+ 'starting_item_offset': 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/box_api/retrieve_enterprise_metadata_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_metadata_templates_example_call_tool.js
new file mode 100644
index 00000000..5adb436a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_metadata_templates_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 = "BoxApi.RetrieveEnterpriseMetadataTemplates";
+
+// 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 = {
+ "pagination_start_marker": "abc123marker",
+ "maximum_items_per_page": 50
+};
+
+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/box_api/retrieve_enterprise_metadata_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_metadata_templates_example_call_tool.py
new file mode 100644
index 00000000..5833cec3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_enterprise_metadata_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 = "BoxApi.RetrieveEnterpriseMetadataTemplates"
+
+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 = {
+ 'pagination_start_marker': 'abc123marker', 'maximum_items_per_page': 50
+}
+
+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/box_api/retrieve_file_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_details_example_call_tool.js
new file mode 100644
index 00000000..38ca0cda
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_details_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 = "BoxApi.RetrieveFileDetails";
+
+// 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 = {
+ "file_identifier": "12345",
+ "included_file_attributes": [
+ "name",
+ "size",
+ "metadata:global.key1"
+ ],
+ "etag_conditional_retrieval": "0xabcdef1234567890",
+ "shared_link_with_optional_password": "shared_link=https://example.app.box.com/s/abc123&shared_link_password=secret",
+ "file_representations_request": "[jpg?dimensions=128x128][pdf?max_width=1024]"
+};
+
+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/box_api/retrieve_file_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_details_example_call_tool.py
new file mode 100644
index 00000000..1aaa70f2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_details_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 = "BoxApi.RetrieveFileDetails"
+
+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 = {
+ 'file_identifier': '12345',
+ 'included_file_attributes': ['name', 'size', 'metadata:global.key1'],
+ 'etag_conditional_retrieval': '0xabcdef1234567890',
+ 'shared_link_with_optional_password': 'shared_link=https://example.app.box.com/s/abc123&shared_link_password=secret',
+ 'file_representations_request': '[jpg?dimensions=128x128][pdf?max_width=1024]'
+}
+
+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/box_api/retrieve_file_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_metadata_example_call_tool.js
new file mode 100644
index 00000000..955fa0ed
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_metadata_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 = "BoxApi.RetrieveFileMetadata";
+
+// 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 = {
+ "file_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/box_api/retrieve_file_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_metadata_example_call_tool.py
new file mode 100644
index 00000000..3f48d8c2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_metadata_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 = "BoxApi.RetrieveFileMetadata"
+
+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 = {
+ 'file_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/box_api/retrieve_file_request_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_request_info_example_call_tool.js
new file mode 100644
index 00000000..68ec36c2
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_request_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 = "BoxApi.RetrieveFileRequestInfo";
+
+// 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 = {
+ "file_request_unique_id": "fr_9a8b7c6d5e4f3a2b"
+};
+
+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/box_api/retrieve_file_request_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_request_info_example_call_tool.py
new file mode 100644
index 00000000..43d756c1
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_request_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 = "BoxApi.RetrieveFileRequestInfo"
+
+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 = {
+ 'file_request_unique_id': 'fr_9a8b7c6d5e4f3a2b'
+}
+
+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/box_api/retrieve_file_template_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_template_metadata_example_call_tool.js
new file mode 100644
index 00000000..ba26c3dd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_template_metadata_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 = "BoxApi.RetrieveFileTemplateMetadata";
+
+// 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 = {
+ "file_identifier": "1234567890",
+ "metadata_scope": "enterprise",
+ "metadata_template_name": "DocumentClassification"
+};
+
+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/box_api/retrieve_file_template_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_template_metadata_example_call_tool.py
new file mode 100644
index 00000000..59705738
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_template_metadata_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 = "BoxApi.RetrieveFileTemplateMetadata"
+
+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 = {
+ 'file_identifier': '1234567890',
+ 'metadata_scope': 'enterprise',
+ 'metadata_template_name': 'DocumentClassification'
+}
+
+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/box_api/retrieve_file_thumbnail_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_thumbnail_example_call_tool.js
new file mode 100644
index 00000000..e9cb4c03
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_thumbnail_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 = "BoxApi.RetrieveFileThumbnail";
+
+// 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 = {
+ "file_identifier": "1234567890",
+ "thumbnail_file_format": "png",
+ "minimum_thumbnail_height": 64,
+ "minimum_thumbnail_width": 64,
+ "maximum_thumbnail_height": 128,
+ "maximum_thumbnail_width": 128
+};
+
+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/box_api/retrieve_file_thumbnail_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_thumbnail_example_call_tool.py
new file mode 100644
index 00000000..0461ac68
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_thumbnail_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 = "BoxApi.RetrieveFileThumbnail"
+
+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 = {
+ 'file_identifier': '1234567890',
+ 'thumbnail_file_format': 'png',
+ 'minimum_thumbnail_height': 64,
+ 'minimum_thumbnail_width': 64,
+ 'maximum_thumbnail_height': 128,
+ 'maximum_thumbnail_width': 128
+}
+
+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/box_api/retrieve_file_version_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_example_call_tool.js
new file mode 100644
index 00000000..8b3c488d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_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 = "BoxApi.RetrieveFileVersion";
+
+// 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 = {
+ "unique_file_identifier": "12345",
+ "file_version_identifier": "v98765",
+ "include_additional_attributes": [
+ "tags",
+ "created_by",
+ "md5"
+ ]
+};
+
+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/box_api/retrieve_file_version_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_example_call_tool.py
new file mode 100644
index 00000000..1b1c696f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_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 = "BoxApi.RetrieveFileVersion"
+
+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 = {
+ 'unique_file_identifier': '12345',
+ 'file_version_identifier': 'v98765',
+ 'include_additional_attributes': ['tags', 'created_by', 'md5']
+}
+
+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/box_api/retrieve_file_version_legal_holds_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_legal_holds_example_call_tool.js
new file mode 100644
index 00000000..d8a9dbfc
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_legal_holds_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 = "BoxApi.RetrieveFileVersionLegalHolds";
+
+// 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 = {
+ "file_version_legal_hold_id": "fh_9a1b2c3d4e5f"
+};
+
+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/box_api/retrieve_file_version_legal_holds_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_legal_holds_example_call_tool.py
new file mode 100644
index 00000000..08130887
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_file_version_legal_holds_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 = "BoxApi.RetrieveFileVersionLegalHolds"
+
+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 = {
+ 'file_version_legal_hold_id': 'fh_9a1b2c3d4e5f'
+}
+
+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/box_api/retrieve_folder_items_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_items_example_call_tool.js
new file mode 100644
index 00000000..3c5dd819
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_items_example_call_tool.js
@@ -0,0 +1,38 @@
+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 = "BoxApi.RetrieveFolderItems";
+
+// 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 = {
+ "folder_identifier": "1234567890",
+ "included_attributes": [
+ "size",
+ "metadata.customer.id"
+ ],
+ "starting_item_offset": 0,
+ "max_items_per_page": 100,
+ "sort_attribute": "name",
+ "sort_direction": "ASC",
+ "shared_link_credentials": "shared_link=https://example.com/s/abc123",
+ "use_marker_based_pagination": 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/box_api/retrieve_folder_items_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_items_example_call_tool.py
new file mode 100644
index 00000000..5ff272d7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_items_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 = "BoxApi.RetrieveFolderItems"
+
+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 = {
+ 'folder_identifier': '1234567890',
+ 'included_attributes': ['size', 'metadata.customer.id'],
+ 'starting_item_offset': 0,
+ 'max_items_per_page': 100,
+ 'sort_attribute': 'name',
+ 'sort_direction': 'ASC',
+ 'shared_link_credentials': 'shared_link=https://example.com/s/abc123',
+ 'use_marker_based_pagination': 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/box_api/retrieve_folder_lock_details_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_lock_details_example_call_tool.js
new file mode 100644
index 00000000..afe5d1dd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_lock_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 = "BoxApi.RetrieveFolderLockDetails";
+
+// 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 = {
+ "folder_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/box_api/retrieve_folder_lock_details_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_lock_details_example_call_tool.py
new file mode 100644
index 00000000..9a4a5fbb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_lock_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 = "BoxApi.RetrieveFolderLockDetails"
+
+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 = {
+ 'folder_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/box_api/retrieve_folder_metadata_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_metadata_example_call_tool.js
new file mode 100644
index 00000000..bcbe823e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_metadata_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 = "BoxApi.RetrieveFolderMetadata";
+
+// 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 = {
+ "folder_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/box_api/retrieve_folder_metadata_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_metadata_example_call_tool.py
new file mode 100644
index 00000000..9b7ab9cb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_folder_metadata_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 = "BoxApi.RetrieveFolderMetadata"
+
+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 = {
+ 'folder_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/box_api/retrieve_global_metadata_templates_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_global_metadata_templates_example_call_tool.js
new file mode 100644
index 00000000..a7c6bd76
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_global_metadata_templates_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 = "BoxApi.RetrieveGlobalMetadataTemplates";
+
+// 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 = {
+ "pagination_start_marker": "0",
+ "max_items_per_page": 25
+};
+
+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/box_api/retrieve_global_metadata_templates_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_global_metadata_templates_example_call_tool.py
new file mode 100644
index 00000000..5e75ce0a
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_global_metadata_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 = "BoxApi.RetrieveGlobalMetadataTemplates"
+
+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 = {
+ 'pagination_start_marker': '0', 'max_items_per_page': 25
+}
+
+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/box_api/retrieve_group_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_group_info_example_call_tool.js
new file mode 100644
index 00000000..b228be7c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_group_info_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 = "BoxApi.RetrieveGroupInfo";
+
+// 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 = {
+ "group_id": "123456789",
+ "include_additional_fields": [
+ "members",
+ "description"
+ ]
+};
+
+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/box_api/retrieve_group_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_group_info_example_call_tool.py
new file mode 100644
index 00000000..ae93d94e
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_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 = "BoxApi.RetrieveGroupInfo"
+
+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 = {
+ 'group_id': '123456789', 'include_additional_fields': ['members', 'description']
+}
+
+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/box_api/retrieve_group_membership_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_group_membership_example_call_tool.js
new file mode 100644
index 00000000..ed3fafaa
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_group_membership_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 = "BoxApi.RetrieveGroupMembership";
+
+// 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 = {
+ "group_membership_id": "gm_8f7d3a2b",
+ "include_fields_list": [
+ "joined_at",
+ "role",
+ "permissions"
+ ]
+};
+
+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/box_api/retrieve_group_membership_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_group_membership_example_call_tool.py
new file mode 100644
index 00000000..fb80d1a6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_group_membership_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 = "BoxApi.RetrieveGroupMembership"
+
+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 = {
+ 'group_membership_id': 'gm_8f7d3a2b', 'include_fields_list': ['joined_at', 'role', 'permissions']
+}
+
+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/box_api/retrieve_group_memberships_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_group_memberships_example_call_tool.js
new file mode 100644
index 00000000..1b0fd724
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_group_memberships_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 = "BoxApi.RetrieveGroupMemberships";
+
+// 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 = {
+ "group_identifier": "grp_8f3a2b",
+ "max_items_per_page": 100,
+ "response_offset": 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/box_api/retrieve_group_memberships_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_group_memberships_example_call_tool.py
new file mode 100644
index 00000000..926d6f9d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_group_memberships_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 = "BoxApi.RetrieveGroupMemberships"
+
+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 = {
+ 'group_identifier': 'grp_8f3a2b', 'max_items_per_page': 100, 'response_offset': 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/box_api/retrieve_legal_hold_policies_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policies_example_call_tool.js
new file mode 100644
index 00000000..02697b94
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policies_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 = "BoxApi.RetrieveLegalHoldPolicies";
+
+// 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 = {
+ "policy_name_prefix": "HR-",
+ "response_attributes": [
+ "id",
+ "name",
+ "created_at"
+ ],
+ "maximum_items_per_page": 25
+};
+
+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/box_api/retrieve_legal_hold_policies_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policies_example_call_tool.py
new file mode 100644
index 00000000..32752d13
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policies_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 = "BoxApi.RetrieveLegalHoldPolicies"
+
+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 = {
+ 'policy_name_prefix': 'HR-',
+ 'response_attributes': ['id', 'name', 'created_at'],
+ 'maximum_items_per_page': 25
+}
+
+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/box_api/retrieve_legal_hold_policy_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_assignment_example_call_tool.js
new file mode 100644
index 00000000..58169c37
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_assignment_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 = "BoxApi.RetrieveLegalHoldPolicyAssignment";
+
+// 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 = {
+ "legal_hold_policy_assignment_id": "lhpa_89b2f7a1"
+};
+
+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/box_api/retrieve_legal_hold_policy_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_assignment_example_call_tool.py
new file mode 100644
index 00000000..1f20c889
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_assignment_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 = "BoxApi.RetrieveLegalHoldPolicyAssignment"
+
+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 = {
+ 'legal_hold_policy_assignment_id': 'lhpa_89b2f7a1'
+}
+
+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/box_api/retrieve_legal_hold_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_example_call_tool.js
new file mode 100644
index 00000000..aee6f615
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_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 = "BoxApi.RetrieveLegalHoldPolicy";
+
+// 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 = {
+ "legal_hold_policy_id": "lh_policy_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/box_api/retrieve_legal_hold_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_example_call_tool.py
new file mode 100644
index 00000000..0e406aee
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_legal_hold_policy_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 = "BoxApi.RetrieveLegalHoldPolicy"
+
+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 = {
+ 'legal_hold_policy_id': 'lh_policy_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/box_api/retrieve_metadata_cascade_policy_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_cascade_policy_example_call_tool.js
new file mode 100644
index 00000000..61112c55
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_cascade_policy_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 = "BoxApi.RetrieveMetadataCascadePolicy";
+
+// 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 = {
+ "metadata_cascade_policy_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/box_api/retrieve_metadata_cascade_policy_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_cascade_policy_example_call_tool.py
new file mode 100644
index 00000000..08932405
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_cascade_policy_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 = "BoxApi.RetrieveMetadataCascadePolicy"
+
+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 = {
+ 'metadata_cascade_policy_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/box_api/retrieve_metadata_template_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_template_example_call_tool.js
new file mode 100644
index 00000000..62d90f35
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_template_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 = "BoxApi.RetrieveMetadataTemplate";
+
+// 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 = {
+ "metadata_template_scope": "enterprise",
+ "metadata_template_name": "invoiceDetails"
+};
+
+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/box_api/retrieve_metadata_template_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_template_example_call_tool.py
new file mode 100644
index 00000000..87f26489
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_metadata_template_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 = "BoxApi.RetrieveMetadataTemplate"
+
+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 = {
+ 'metadata_template_scope': 'enterprise', 'metadata_template_name': 'invoiceDetails'
+}
+
+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/box_api/retrieve_retention_policy_assignment_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_retention_policy_assignment_example_call_tool.js
new file mode 100644
index 00000000..8f0ce376
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_retention_policy_assignment_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 = "BoxApi.RetrieveRetentionPolicyAssignment";
+
+// 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 = {
+ "retention_policy_assignment_id": "1234567890",
+ "include_fields_in_response": [
+ "id",
+ "policy_id",
+ "assigned_to",
+ "created_at"
+ ]
+};
+
+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/box_api/retrieve_retention_policy_assignment_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_retention_policy_assignment_example_call_tool.py
new file mode 100644
index 00000000..ff4d5f48
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_retention_policy_assignment_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.RetrieveRetentionPolicyAssignment"
+
+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 = {
+ 'retention_policy_assignment_id': '1234567890',
+ 'include_fields_in_response': ['id', 'policy_id', 'assigned_to', 'created_at']
+}
+
+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/box_api/retrieve_shared_file_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_file_info_example_call_tool.js
new file mode 100644
index 00000000..54bfd9b6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_file_info_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 = "BoxApi.RetrieveSharedFileInfo";
+
+// 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 = {
+ "shared_link_credentials": "shared_link=https://files.example.com/s/abc123&shared_link_password=Secr3t!",
+ "include_attributes_in_response": [
+ "permissions",
+ "created_at"
+ ],
+ "etag_for_change_detection": "\"e1a1b2c3\""
+};
+
+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/box_api/retrieve_shared_file_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_file_info_example_call_tool.py
new file mode 100644
index 00000000..780a2ba8
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_file_info_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 = "BoxApi.RetrieveSharedFileInfo"
+
+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 = {
+ 'shared_link_credentials': 'shared_link=https://files.example.com/s/abc123&shared_link_password=Secr3t!',
+ 'include_attributes_in_response': ['permissions', 'created_at'],
+ 'etag_for_change_detection': '"e1a1b2c3"'
+}
+
+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/box_api/retrieve_shared_web_link_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_web_link_example_call_tool.js
new file mode 100644
index 00000000..a7245ed3
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_web_link_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 = "BoxApi.RetrieveSharedWebLink";
+
+// 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 = {
+ "shared_link_header": "shared_link=https://example.com/s/abc123&shared_link_password=secret",
+ "include_attributes_in_response": [
+ "name",
+ "size",
+ "created_at"
+ ],
+ "etag_if_updated_only": "\"3a7f9b2\""
+};
+
+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/box_api/retrieve_shared_web_link_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_web_link_example_call_tool.py
new file mode 100644
index 00000000..f3d1a513
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shared_web_link_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 = "BoxApi.RetrieveSharedWebLink"
+
+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 = {
+ 'shared_link_header': 'shared_link=https://example.com/s/abc123&shared_link_password=secret',
+ 'include_attributes_in_response': ['name', 'size', 'created_at'],
+ 'etag_if_updated_only': '"3a7f9b2"'
+}
+
+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/box_api/retrieve_shield_list_by_id_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_shield_list_by_id_example_call_tool.js
new file mode 100644
index 00000000..49602573
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shield_list_by_id_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 = "BoxApi.RetrieveShieldListById";
+
+// 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 = {
+ "shield_list_identifier": "shield-list_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/box_api/retrieve_shield_list_by_id_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_shield_list_by_id_example_call_tool.py
new file mode 100644
index 00000000..c20fdd8c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_shield_list_by_id_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 = "BoxApi.RetrieveShieldListById"
+
+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 = {
+ 'shield_list_identifier': 'shield-list_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/box_api/retrieve_sign_request_by_id_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_sign_request_by_id_example_call_tool.js
new file mode 100644
index 00000000..9a5047df
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_sign_request_by_id_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 = "BoxApi.RetrieveSignRequestById";
+
+// 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 = {
+ "signature_request_id": "sr_1234567890abcdef"
+};
+
+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/box_api/retrieve_sign_request_by_id_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_sign_request_by_id_example_call_tool.py
new file mode 100644
index 00000000..0c7113cd
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_sign_request_by_id_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 = "BoxApi.RetrieveSignRequestById"
+
+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 = {
+ 'signature_request_id': 'sr_1234567890abcdef'
+}
+
+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/box_api/retrieve_task_assignment_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_task_assignment_info_example_call_tool.js
new file mode 100644
index 00000000..e776b5d5
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_task_assignment_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 = "BoxApi.RetrieveTaskAssignmentInfo";
+
+// 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 = {
+ "task_assignment_id": "ta_9f3b2a1c"
+};
+
+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/box_api/retrieve_task_assignment_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_task_assignment_info_example_call_tool.py
new file mode 100644
index 00000000..c87a1982
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_task_assignment_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 = "BoxApi.RetrieveTaskAssignmentInfo"
+
+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 = {
+ 'task_assignment_id': 'ta_9f3b2a1c'
+}
+
+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/box_api/retrieve_task_information_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_task_information_example_call_tool.js
new file mode 100644
index 00000000..62411ca4
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_task_information_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 = "BoxApi.RetrieveTaskInformation";
+
+// 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 = {
+ "task_id": "task_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/box_api/retrieve_task_information_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_task_information_example_call_tool.py
new file mode 100644
index 00000000..d42f64bb
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_task_information_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 = "BoxApi.RetrieveTaskInformation"
+
+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 = {
+ 'task_id': 'task_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/box_api/retrieve_trashed_file_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_file_example_call_tool.js
new file mode 100644
index 00000000..0f43a929
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_file_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 = "BoxApi.RetrieveTrashedFile";
+
+// 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 = {
+ "file_identifier": "1a2B3cD4eF5Gh6Ij7K8l",
+ "include_attributes_in_response": [
+ "name",
+ "size",
+ "created_at"
+ ]
+};
+
+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/box_api/retrieve_trashed_file_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_file_example_call_tool.py
new file mode 100644
index 00000000..38ec7f99
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_file_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.RetrieveTrashedFile"
+
+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 = {
+ 'file_identifier': '1a2B3cD4eF5Gh6Ij7K8l',
+ 'include_attributes_in_response': ['name', 'size', 'created_at']
+}
+
+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/box_api/retrieve_trashed_folder_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_folder_example_call_tool.js
new file mode 100644
index 00000000..568a8036
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_folder_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 = "BoxApi.RetrieveTrashedFolder";
+
+// 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 = {
+ "folder_identifier": "12345-abcde",
+ "include_attributes_in_response": [
+ "deletedAt",
+ "deletedBy",
+ "originalParentId"
+ ]
+};
+
+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/box_api/retrieve_trashed_folder_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_folder_example_call_tool.py
new file mode 100644
index 00000000..b9366e99
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_folder_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.RetrieveTrashedFolder"
+
+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 = {
+ 'folder_identifier': '12345-abcde',
+ 'include_attributes_in_response': ['deletedAt', 'deletedBy', 'originalParentId']
+}
+
+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/box_api/retrieve_trashed_items_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_items_example_call_tool.js
new file mode 100644
index 00000000..833f000d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_items_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 = "BoxApi.RetrieveTrashedItems";
+
+// 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 = {
+ "include_attributes": [
+ "size",
+ "created_at",
+ "owner"
+ ],
+ "maximum_items_per_page": 50,
+ "pagination_offset": 0,
+ "sort_direction": "DESC",
+ "secondary_sort_attribute": "date",
+ "use_marker_based_pagination": 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/box_api/retrieve_trashed_items_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_items_example_call_tool.py
new file mode 100644
index 00000000..e189e82b
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_items_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 = "BoxApi.RetrieveTrashedItems"
+
+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 = {
+ 'include_attributes': ['size', 'created_at', 'owner'],
+ 'maximum_items_per_page': 50,
+ 'pagination_offset': 0,
+ 'sort_direction': 'DESC',
+ 'secondary_sort_attribute': 'date',
+ 'use_marker_based_pagination': 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/box_api/retrieve_trashed_web_link_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_web_link_example_call_tool.js
new file mode 100644
index 00000000..b0df3b4f
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_web_link_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 = "BoxApi.RetrieveTrashedWebLink";
+
+// 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 = {
+ "web_link_id": "9876543210",
+ "include_fields_in_response": [
+ "url",
+ "created_by",
+ "deleted_at"
+ ]
+};
+
+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/box_api/retrieve_trashed_web_link_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_web_link_example_call_tool.py
new file mode 100644
index 00000000..98c6bf71
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_trashed_web_link_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 = "BoxApi.RetrieveTrashedWebLink"
+
+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 = {
+ 'web_link_id': '9876543210', 'include_fields_in_response': ['url', 'created_by', 'deleted_at']
+}
+
+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/box_api/retrieve_user_collections_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_user_collections_example_call_tool.js
new file mode 100644
index 00000000..0ca5689c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_user_collections_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 = "BoxApi.RetrieveUserCollections";
+
+// 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 = {
+ "requested_fields": [
+ "id",
+ "title",
+ "item_count"
+ ],
+ "pagination_offset": 0,
+ "maximum_items_per_page": 50
+};
+
+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/box_api/retrieve_user_collections_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_user_collections_example_call_tool.py
new file mode 100644
index 00000000..7f0a1e12
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_user_collections_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 = "BoxApi.RetrieveUserCollections"
+
+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 = {
+ 'requested_fields': ['id', 'title', 'item_count'],
+ 'pagination_offset': 0,
+ 'maximum_items_per_page': 50
+}
+
+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/box_api/retrieve_web_link_info_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/retrieve_web_link_info_example_call_tool.js
new file mode 100644
index 00000000..fc9974d7
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_web_link_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 = "BoxApi.RetrieveWebLinkInfo";
+
+// 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 = {
+ "web_link_id": "1234567890",
+ "shared_link_access_details": "shared_link=https://box.com/s/abcdef&shared_link_password=pass123"
+};
+
+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/box_api/retrieve_web_link_info_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/retrieve_web_link_info_example_call_tool.py
new file mode 100644
index 00000000..96aa7eb6
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/retrieve_web_link_info_example_call_tool.py
@@ -0,0 +1,30 @@
+import json
+from arcadepy import Arcade
+
+client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable
+
+USER_ID = "{arcade_user_id}"
+TOOL_NAME = "BoxApi.RetrieveWebLinkInfo"
+
+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 = {
+ 'web_link_id': '1234567890',
+ 'shared_link_access_details': 'shared_link=https://box.com/s/abcdef&shared_link_password=pass123'
+}
+
+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/box_api/unmark_box_doc_template_example_call_tool.js b/public/examples/integrations/mcp-servers/box_api/unmark_box_doc_template_example_call_tool.js
new file mode 100644
index 00000000..82a8688c
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/unmark_box_doc_template_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 = "BoxApi.UnmarkBoxDocTemplate";
+
+// 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 = {
+ "file_id_to_unmark": "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/box_api/unmark_box_doc_template_example_call_tool.py b/public/examples/integrations/mcp-servers/box_api/unmark_box_doc_template_example_call_tool.py
new file mode 100644
index 00000000..7be5a22d
--- /dev/null
+++ b/public/examples/integrations/mcp-servers/box_api/unmark_box_doc_template_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 = "BoxApi.UnmarkBoxDocTemplate"
+
+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 = {
+ 'file_id_to_unmark': '1234567890'
+}
+
+response = client.tools.execute(
+ tool_name=TOOL_NAME,
+ input=tool_input,
+ user_id=USER_ID,
+)
+print(json.dumps(response.output.value, indent=2))