box-automation

Automate Box cloud storage operations including file upload/download, search, folder management, sharing, collaborations, and metadata queries via Rube MCP (Composio). Always search tools first for current schemas.

View Source
name:box-automationdescription:"Automate Box cloud storage operations including file upload/download, search, folder management, sharing, collaborations, and metadata queries via Rube MCP (Composio). Always search tools first for current schemas."requires:mcp:[rube]

Box Automation via Rube MCP

Automate Box operations including file upload/download, content search, folder management, collaboration, metadata queries, and sign requests through Composio's Box toolkit.

Prerequisites

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)

  • Active Box connection via RUBE_MANAGE_CONNECTIONS with toolkit box

  • Always call RUBE_SEARCH_TOOLS first to get current tool schemas
  • Setup

    Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.


  • Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds

  • Call RUBE_MANAGE_CONNECTIONS with toolkit box

  • If connection is not ACTIVE, follow the returned auth link to complete Box OAuth

  • Confirm connection status shows ACTIVE before running any workflows
  • Core Workflows

    1. Upload and Download Files

    When to use: User wants to upload files to Box or download files from it

    Tool sequence:

  • BOX_SEARCH_FOR_CONTENT - Find the target folder if path is unknown [Prerequisite]

  • BOX_GET_FOLDER_INFORMATION - Verify folder exists and get folder_id [Prerequisite]

  • BOX_LIST_ITEMS_IN_FOLDER - Browse folder contents and discover file IDs [Optional]

  • BOX_UPLOAD_FILE - Upload a file to a specific folder [Required for upload]

  • BOX_DOWNLOAD_FILE - Download a file by file_id [Required for download]

  • BOX_CREATE_ZIP_DOWNLOAD - Bundle multiple files/folders into a zip [Optional]
  • Key parameters:

  • parent_id: Folder ID for upload destination (use "0" for root folder)

  • file: FileUploadable object with s3key, mimetype, and name for uploads

  • file_id: Unique file identifier for downloads

  • version: Optional file version ID for downloading specific versions

  • fields: Comma-separated list of attributes to return
  • Pitfalls:

  • Uploading to a folder with existing filenames can trigger conflict behavior; decide overwrite vs rename semantics

  • Files over 50MB should use chunk upload APIs (not available via standard tools)

  • The attributes part of upload must come before the file part or you get HTTP 400 with metadata_after_file_contents

  • File IDs and folder IDs are numeric strings extractable from Box web app URLs (e.g., https://.app.box.com/files/123 gives file_id "123")
  • 2. Search and Browse Content

    When to use: User wants to find files, folders, or web links by name, content, or metadata

    Tool sequence:

  • BOX_SEARCH_FOR_CONTENT - Full-text search across files, folders, and web links [Required]

  • BOX_LIST_ITEMS_IN_FOLDER - Browse contents of a specific folder [Optional]

  • BOX_GET_FILE_INFORMATION - Get detailed metadata for a specific file [Optional]

  • BOX_GET_FOLDER_INFORMATION - Get detailed metadata for a specific folder [Optional]

  • BOX_QUERY_FILES_FOLDERS_BY_METADATA - Search by metadata template values [Optional]

  • BOX_LIST_RECENTLY_ACCESSED_ITEMS - List recently accessed items [Optional]
  • Key parameters:

  • query: Search string supporting operators ("" exact match, AND, OR, NOT - uppercase only)

  • type: Filter by "file", "folder", or "web_link"

  • ancestor_folder_ids: Limit search to specific folders (comma-separated IDs)

  • file_extensions: Filter by file type (comma-separated, no dots)

  • content_types: Search in "name", "description", "file_content", "comments", "tags"

  • created_at_range / updated_at_range: Date filters as comma-separated RFC3339 timestamps

  • limit: Results per page (default 30)

  • offset: Pagination offset (max 10000)

  • folder_id: For LIST_ITEMS_IN_FOLDER (use "0" for root)
  • Pitfalls:

  • Queries with offset > 10000 are rejected with HTTP 400

  • BOX_SEARCH_FOR_CONTENT requires either query or mdfilters parameter

  • Misconfigured filters can silently omit expected items; validate with small test queries first

  • Boolean operators (AND, OR, NOT) must be uppercase

  • BOX_LIST_ITEMS_IN_FOLDER requires pagination via marker or offset/usemarker; partial listings are common

  • Standard folders sort items by type first (folders before files before web links)
  • 3. Manage Folders

    When to use: User wants to create, update, move, copy, or delete folders

    Tool sequence:

  • BOX_GET_FOLDER_INFORMATION - Verify folder exists and check permissions [Prerequisite]

  • BOX_CREATE_FOLDER - Create a new folder [Required for create]

  • BOX_UPDATE_FOLDER - Rename, move, or update folder settings [Required for update]

  • BOX_COPY_FOLDER - Copy a folder to a new location [Optional]

  • BOX_DELETE_FOLDER - Move folder to trash [Required for delete]

  • BOX_PERMANENTLY_REMOVE_FOLDER - Permanently delete a trashed folder [Optional]
  • Key parameters:

  • name: Folder name (no /, \, trailing spaces, or ./..)

  • parent__id: Parent folder ID (use "0" for root)

  • folder_id: Target folder ID for operations

  • parent.id: Destination folder ID for moves via BOX_UPDATE_FOLDER

  • recursive: Set true to delete non-empty folders

  • shared_link: Object with access, password, permissions for creating shared links on folders

  • description, tags: Optional metadata fields
  • Pitfalls:

  • BOX_DELETE_FOLDER moves to trash by default; use BOX_PERMANENTLY_REMOVE_FOLDER for permanent deletion

  • Non-empty folders require recursive: true for deletion

  • Root folder (ID "0") cannot be copied or deleted

  • Folder names cannot contain /, \, non-printable ASCII, or trailing spaces

  • Moving folders requires setting parent.id via BOX_UPDATE_FOLDER
  • 4. Share Files and Manage Collaborations

    When to use: User wants to share files, manage access, or handle collaborations

    Tool sequence:

  • BOX_GET_FILE_INFORMATION - Get file details and current sharing status [Prerequisite]

  • BOX_LIST_FILE_COLLABORATIONS - List who has access to a file [Required]

  • BOX_UPDATE_COLLABORATION - Change access level or accept/reject invitations [Required]

  • BOX_GET_COLLABORATION - Get details of a specific collaboration [Optional]

  • BOX_UPDATE_FILE - Create shared links, lock files, or update permissions [Optional]

  • BOX_UPDATE_FOLDER - Create shared links on folders [Optional]
  • Key parameters:

  • collaboration_id: Unique collaboration identifier

  • role: Access level ("editor", "viewer", "co-owner", "owner", "previewer", "uploader", "viewer uploader", "previewer uploader")

  • status: "accepted", "pending", or "rejected" for collaboration invites

  • file_id: File to share or manage

  • lock__access: Set to "lock" to lock a file

  • permissions__can__download: "company" or "open" for download permissions
  • Pitfalls:

  • Only certain roles can invite collaborators; insufficient permissions cause authorization errors

  • can_view_path increases load time for the invitee's "All Files" page; limit to 1000 per user

  • Collaboration expiration requires enterprise admin settings to be enabled

  • Nested parameter names use double underscores (e.g., lock__access, parent__id)
  • 5. Box Sign Requests

    When to use: User wants to manage document signature requests

    Tool sequence:

  • BOX_LIST_BOX_SIGN_REQUESTS - List all signature requests [Required]

  • BOX_GET_BOX_SIGN_REQUEST_BY_ID - Get details of a specific sign request [Optional]

  • BOX_CANCEL_BOX_SIGN_REQUEST - Cancel a pending sign request [Optional]
  • Key parameters:

  • sign_request_id: UUID of the sign request

  • shared_requests: Set true to include requests where user is a collaborator (not owner)

  • senders: Filter by sender emails (requires shared_requests: true)

  • limit / marker: Pagination parameters
  • Pitfalls:

  • Requires Box Sign to be enabled for the enterprise account

  • Deleted sign files or parent folders cause requests to not appear in listings

  • Only the creator can cancel a sign request

  • Sign request statuses include: converting, created, sent, viewed, signed, declined, cancelled, expired, error_converting, error_sending
  • Common Patterns

    ID Resolution


    Box uses numeric string IDs for all entities:
  • Root folder: Always ID "0"

  • File ID from URL: https://.app.box.com/files/123 gives file_id "123"

  • Folder ID from URL: https://*.app.box.com/folder/123 gives folder_id "123"

  • Search to ID: Use BOX_SEARCH_FOR_CONTENT to find items, then extract IDs from results

  • ETag: Use if_match with file's ETag for safe concurrent delete operations
  • Pagination


    Box supports two pagination methods:
  • Offset-based: Use offset + limit (max offset 10000)

  • Marker-based: Set usemarker: true and follow marker from responses (preferred for large datasets)

  • Always paginate to completion to avoid partial results
  • Nested Parameters


    Box tools use double underscore notation for nested objects:
  • parent__id for parent folder reference

  • lock__access, lock__expires__at, lock__is__download__prevented for file locks

  • permissions__can__download for download permissions
  • Known Pitfalls

    ID Formats


  • All IDs are numeric strings (e.g., "123456", not integers)

  • Root folder is always "0"

  • File and folder IDs can be extracted from Box web app URLs
  • Rate Limits


  • Box API has per-endpoint rate limits

  • Search and list operations should use pagination responsibly

  • Bulk operations should include delays between requests
  • Parameter Quirks


  • fields parameter changes response shape: when specified, only mini representation + requested fields are returned

  • Search requires either query or mdfilters; both are optional individually but one must be present

  • BOX_UPDATE_FILE with lock set to null removes the lock (raw API only)

  • Metadata query from field format: enterprise_{enterprise_id}.templateKey or global.templateKey
  • Permissions


  • Deletions fail without sufficient permissions; always handle error responses

  • Collaboration roles determine what operations are allowed

  • Enterprise settings may restrict certain sharing options
  • Quick Reference

    TaskTool SlugKey Params
    Search contentBOX_SEARCH_FOR_CONTENTquery, type, ancestor_folder_ids
    List folder itemsBOX_LIST_ITEMS_IN_FOLDERfolder_id, limit, marker
    Get file infoBOX_GET_FILE_INFORMATIONfile_id, fields
    Get folder infoBOX_GET_FOLDER_INFORMATIONfolder_id, fields
    Upload fileBOX_UPLOAD_FILEfile, parent_id
    Download fileBOX_DOWNLOAD_FILEfile_id
    Create folderBOX_CREATE_FOLDERname, parent__id
    Update folderBOX_UPDATE_FOLDERfolder_id, name, parent
    Copy folderBOX_COPY_FOLDERfolder_id, parent__id
    Delete folderBOX_DELETE_FOLDERfolder_id, recursive
    Permanently delete folderBOX_PERMANENTLY_REMOVE_FOLDERfolder_id
    Update fileBOX_UPDATE_FILEfile_id, name, parent__id
    Delete fileBOX_DELETE_FILEfile_id, if_match
    List collaborationsBOX_LIST_FILE_COLLABORATIONSfile_id
    Update collaborationBOX_UPDATE_COLLABORATIONcollaboration_id, role
    Get collaborationBOX_GET_COLLABORATIONcollaboration_id
    Query by metadataBOX_QUERY_FILES_FOLDERS_BY_METADATAfrom, ancestor_folder_id, query
    List collectionsBOX_LIST_ALL_COLLECTIONS(none)
    List collection itemsBOX_LIST_COLLECTION_ITEMScollection_id
    List sign requestsBOX_LIST_BOX_SIGN_REQUESTSlimit, marker
    Get sign requestBOX_GET_BOX_SIGN_REQUEST_BY_IDsign_request_id
    Cancel sign requestBOX_CANCEL_BOX_SIGN_REQUESTsign_request_id
    Recent itemsBOX_LIST_RECENTLY_ACCESSED_ITEMS(none)
    Create zip downloadBOX_CREATE_ZIP_DOWNLOADitem IDs