Box MCP logo

Box MCP

Search, retrieve, analyze, and manage enterprise content stored in Box through Box's hosted MCP server.

21 actions Integration catalog
Request access
Connect Box MCP once you're in Boring.
01 · WHAT THE AGENT CAN DO

Actions

Every capability is a discrete, logged action the agent calls by name — scoped to what you authorize and recorded in the run trace.

Copy fileBOX_MCP_COPY_FILE
Copies an existing file to a destination folder in Box (see Box API Copy file). The source file is not modified. Provide `parent_folder_id` as the folder that will contain the new copy; use `"0"` for the user's root folder. Optionally set `name` to rename the copy; otherwise the original file name is used. **Key features:** - Optional new name for the copied file <examples> Copy a file into a folder: { "file_id": "123456789", "parent_folder_id": "987654321" } Copy a file to the user's root folder with a new name: { "file_id": "123456789", "parent_folder_id": "0", "name": "Quarterly-report-copy.docx" } </examples>
Copy folderBOX_MCP_COPY_FOLDER
Copies an existing folder to a destination parent folder in Box (see Box API Copy folder). The source folder is not modified. Provide `parent_folder_id` as the folder that will contain the new copy; use `"0"` for the user's root folder. The root folder (`folder_id` `"0"`) cannot be copied. Optionally set `name` for the new copy; otherwise the original folder name is used. **Key features:** - Optional new name for the copied folder <examples> Copy a folder into another folder: { "folder_id": "123456789", "parent_folder_id": "987654321" } Copy a folder to the user's root with a new name: { "folder_id": "123456789", "parent_folder_id": "0", "name": "Project-backup" } </examples>
Create file commentBOX_MCP_CREATE_FILE_COMMENT
Creates a new comment on a specific file. This tool allows you to add comments to files for collaboration, feedback, or documentation purposes. Comments are visible to all users with access to the file and can be used for team communication and file annotation. The message can include special characters, line breaks, and Unicode characters. The tool returns complete comment information including metadata about the comment creation, author, and timestamps. <examples> Basic file comment: <input> { "file_id": "123456789", "message": "This document looks good overall. Please review the financial projections in section 3." } </input> Multi-line structured comment: <input> { "file_id": "777888999", "message": "Review Summary:\n\nContent: Excellent\nStructure: Well organized\nFormatting: Minor issues\nCitations: Missing sources\n\nOverall: Good work, please address the citations before final submission." } </input> </examples>
Create folderBOX_MCP_CREATE_FOLDER
Creates new folders in Box. <examples> Create folder in root: <input> { "name": "Project Documents" } </input> Create folder in specific parent: <input> { "name": "Q4 Reports", "parent_folder_id": "123456789" } </input> </examples>
Create metadata templateBOX_MCP_CREATE_METADATA_TEMPLATE
Creates a new enterprise metadata template. scope must be "enterprise"; each field needs type, key, and display_name. Optional template_key, hidden, copy_instance_on_item_copy, enum/multiSelect/taxonomy. Enum color_id optional (0=Yellow, 1=Orange, 2=Red, 3=Purple, 4=LightBlue, 5=DarkBlue, 6=Green, 7=Grey); omit for default Yellow (0). SDK create sends keys only; non-default colors are PATCHed after create when color_id is set. On success returns created template JSON (or JSON after color PATCH). If color PATCH fails, response still succeeds with colorApplyWarning. <examples> Minimal template with one string field: <input> { "scope": "enterprise", "display_name": "Sample contract template", "template_key": "sampleContract", "fields": [ { "type": "string", "key": "Name", "display_name": "Name" } ] } </input> <output> { "id": "f7a9891f", "scope": "enterprise_12345", "templateKey": "sampleContract", "displayName": "Sample contract template", "hidden": false, "fields": [ { "type": "string", "key": "Name", "displayName": "Name" } ] } </output> Enum field with classification colors (color_id optional per option): <input> { "scope": "enterprise", "display_name": "Data classes", "template_key": "dataClasses", "fields": [ { "type": "enum", "key": "tier", "display_name": "Tier", "options": [ { "key": "Public", "color_id": 6 }, { "key": "Internal", "color_id": 4 }, { "key": "Restricted", "color_id": 2 } ] } ] } </input> </examples>
Get file contentBOX_MCP_GET_FILE_CONTENT
Get the text content of a file from Box. Prefers the markdown representation (preserves document structure for better LLM use) and falls back to extracted text when markdown is not available. If neither representation is available or both are still pending, an error is returned. Using this tool is preferred over the ai_qa_single_file tool since it is faster and more efficient. Works for files with text representations such as PDFs, documents, spreadsheets, presentations, code, etc. Optional version_id reads a past version (GET /files/{file_id}/versions/{version_id}); omit it for the current version. Use list_file_versions to get version_id values. **Key Features:** - Markdown representation preferred (structure preserved for LLMs); fallback to extracted text - Optional version_id for a past file version - 50MB file size limit enforcement - Clear error messages for unsupported operations <examples> Extract text content from a file: { "file_id": "123456789", } Extract text content from a past file version: { "file_id": "123456789", "version_id": "987654321", } <output> { "content": [ { "type": "text", "text": "This is the extracted text content from the file..." } ] } </output> </examples>
Get file detailsBOX_MCP_GET_FILE_DETAILS
Gets comprehensive file information from Box. Returns essential fields by default (id, name, extension, createdBy, modifiedBy, createdAt, modifiedAt). Use 'fields' parameter to request additional properties. **Common useful fields:** size, description, tags, metadata, permissions, shared_link, parent, path_collection, file_version, sha1, lock, classification, comment_count, has_collaborations, representations, watermark_info, uploader_display_name, content_created_at, content_modified_at, item_status, expires_at, trashed_at. <examples> Basic file info: <input>{"file_id": "123456789"}</input> File with metadata and permissions: <input> { "file_id": "987654321", "fields": ["id", "name", "size", "permissions", "tags", "metadata", "shared_link"] } </input> Detailed file analysis: <input> { "file_id": "555666777", "fields": ["id", "name", "description", "file_version", "sha1", "path_collection", "classification", "comment_count", "has_collaborations"] } </input> </examples>
Get file previewBOX_MCP_GET_FILE_PREVIEW
Displays an interactive preview widget for a Box file directly in chat. Supports: ai, bmp, cr2, crw, csv, dng, doc, docx, dwg, eml, eps, gdoc, gif, gsheet, gslide, gslides, heic, htm, html, idml, indd, indt, inx, jpeg, jpg, key, nef, numbers, odp, ods, odt, pages, pdf, png, ppt, pptx, ps, psd, raf, raw, rtf, svg, svs, tga, tif, tiff, tsv, webp, wpd, xhtml, xls, xlsm, xlsx. PDF uses direct download; other types use the appropriate representation (e.g. PDF for documents, JPG/PNG for images). Use when user wants to view file contents without downloading. For file metadata, use get_file_info instead. If the preview payload would exceed 3MB (full file for PDFs; generated representation for other types), do not use this. Do not attempt to generate an interactive artifact. When a preview is open, the widget sends file preview context (fileId, fileName, currentPage) into the conversation. If the user asks about "this graph", "explain this", "what's on this page", or similar, look for that context and call get_preview_page(fileId, currentPage) to fetch the page image—do not ask the user which page they are on.
Get folder detailsBOX_MCP_GET_FOLDER_DETAILS
Retrieves comprehensive information about a folder in Box. Returns essential fields by default (id, name, createdBy, modifiedBy, createdAt, modifiedAt). Use 'fields' parameter to request additional properties. **Common useful fields:** size, description, tags, metadata, permissions, shared_link, parent, path_collection, folder_upload_email, has_collaborations, allowed_invitee_roles, can_non_owners_invite, can_non_owners_view_collaborators, is_collaboration_restricted_to_enterprise, classification, allowed_shared_link_access_levels, content_created_at, content_modified_at, item_status, sync_state, watermark_info, trashed_at. **Note:** Only request 'item_collection' when the user explicitly asks for folder contents. Use 'list_folder_content_by_folder_id' for browsing folder items instead. <examples> Basic folder info: <input>{"folder_id": "123456789"}</input> Folder with permissions and collaboration settings: <input> { "folder_id": "987654321", "fields": ["id", "name", "size", "permissions", "can_non_owners_invite", "has_collaborations"] } </input> Detailed folder analysis with settings: <input> { "folder_id": "555666777", "fields": ["id", "name", "description", "path_collection", "folder_upload_email", "allowed_invitee_roles", "classification", "shared_link", "tags"] } </input> </examples>
Get metadata template schemaBOX_MCP_GET_METADATA_TEMPLATE_SCHEMA
Returns the schema for a metadata template. Shield template "securityClassification-6VMVochwUWo": option colorID is normalized from staticConfig (default Yellow=0). Palette: 0=Yellow, 1=Orange, 2=Red, 3=Purple, 4=LightBlue, 5=DarkBlue, 6=Green, 7=Grey.
Get preview pageBOX_MCP_GET_PREVIEW_PAGE
Use when user asks follow-up question to a file previewed with get_file_preview ("Explain this...", "What does ____ mean?")Returns the current preview page as an image so you can analyze it (figures, text, charts, etc.). You cannot see the page content until you call this tool. Required workflow: 1. Find the file preview context in the conversation. The preview widget sends it as content like: "Current file preview: fileId=123, fileName=doc.pdf, currentPage=3. Use get_preview_page with this fileId and currentPage...". Look for this before calling. 2. Extract fileId and currentPage from that context. If the user asks about "this page", "these figures", "what's on the page", use currentPage from the context. If they name a page (e.g. "page 7"), use that number instead. 3. Call get_preview_page(fileId, currentPage) to fetch the page image. You must call this tool to see the page—there is no other way to view its content. 4. Use the returned image to answer the user's question. Do not call with a fileId or page from elsewhere. If no file preview context is present (no "Current file preview: fileId=..." in the conversation), do not call. Supported extensions: ai, bmp, cr2, crw, csv, dng, doc, docx, dwg, eml, eps, gdoc, gif, gsheet, gslide, gslides, heic, htm, html, idml, indd, indt, inx, jpeg, jpg, key, nef, numbers, odp, ods, odt, pages, pdf, png, ppt, pptx, ps, psd, raf, raw, rtf, svg, svs, tga, tif, tiff, tsv, webp, wpd, xhtml, xls, xlsm, xlsx.
List file commentsBOX_MCP_LIST_FILE_COMMENTS
Lists all comments on a specific file. Returns a paginated list of comments with configurable fields. Default fields (id, type, message, created_by, created_at) are always returned, but you can specify additional fields as needed. Supported fields include: id, type, message, created_at, created_by, modified_at, tagged_message, and any other comment-related fields supported by the Box API. Use pagination parameters (limit/offset) to handle files with many comments efficiently. <examples> Basic file comments listing: <input> { "file_id": "123456789", "limit": 50 } </input> List with specific fields: <input> { "file_id": "987654321", "fields": ["id", "message", "created_at", "created_by", "modified_at"], "limit": 100 } </input> Paginated comments listing: <input> { "file_id": "555666777", "fields": ["id", "type", "message", "tagged_message", "created_by"], "limit": 25, "offset": 50 } </input> </examples>
List folder content by folderBOX_MCP_LIST_FOLDER_CONTENT_BY_FOLDER_ID
Lists files, folders, and web links contained in a folder. Returns a paginated list of items with at least fields. Fields (id, type, name, etag) are always returned. Use folder_id "0" for the root folder. Supported fields include: id, type, name, etag, sequence_id, sha1, content_created_at, content_modified_at, created_at, created_by, modified_at, modified_by, owned_by, parent, path_collection, size, trashed_at, item_status, description, shared_link, classification, comment_count, disposition_at, expires_at, extension, has_collaborations, is_accessible_via_shared_link, is_associated_with_app_item, is_externally_owned, is_package, lock, metadata, permissions, representations, shared_link_permission_options, tags, uploader_display_name, version_number, watermark_info, file_version. <examples> Basic folder listing: <input> { "folder_id": "0", "limit": 50 } </input> List with specific fields: <input> { "folder_id": "123456789", "fields": ["id", "name", "type", "size", "modified_at", "created_by"], "limit": 100 } </input> Paginated listing: <input> { "folder_id": "987654321", "fields": ["id", "name", "type", "path_collection"], "limit": 30, "offset": 60 } </input> </examples>
List item collaborationsBOX_MCP_LIST_ITEM_COLLABORATIONS
Lists all collaborations for multiple files and folders in a single request. This tool efficiently aggregates collaboration information across different item types, making multiple API calls as needed and providing comprehensive results with error handling for items that cannot be accessed. The tool processes up to 10 items simultaneously, handling both files and folders. It returns detailed collaboration information including user details, roles, status, and timestamps. Partial failures are handled gracefully - if some items fail to load, the tool still returns collaborations for successful items along with error details for failed requests. <examples> Basic file collaboration listing: <input> { "items": [ { "id": "123456789", "type": "file" } ] } </input> Single folder collaboration listing: <input> { "items": [ { "id": "987654321", "type": "folder" } ] } </input> Multiple items for bulk analysis: <input> { "items": [ { "id": "111222333", "type": "file" }, { "id": "444555666", "type": "file" }, { "id": "777888999", "type": "folder" }, { "id": "101112131", "type": "folder" } ] } </input> </examples>
List metadata templatesBOX_MCP_LIST_METADATA_TEMPLATES
Lists available Box metadata templates so you can discover scope and templateKey for search_files_metadata. Use this first to find templates, then get_metadata_template_schema to get field keys. Call with scope "enterprise" for your org's templates or "global" for Box global templates.
List tasksBOX_MCP_LIST_TASKS
Lists all tasks associated with a specific file. This tool retrieves task information including task details, message, status, and completion rule, due date from the Box platform. Tasks in Box are used to assign work to users on files, allowing for collaboration and workflow management. This tool provides access to all tasks assigned to a particular file, helping with project management and task tracking. The response includes comprehensive task details such as task type, assignee information, due dates, completion status, and any associated comments or messages. <examples> List tasks for a file: <input> { "file_id": "1234567890" } </input> </examples>
Search files keywordBOX_MCP_SEARCH_FILES_KEYWORD
Searches for files using keywords and supports metadata filters, file extension filtering (without dots), and field selection. Maps to Box's searchForContent API with comprehensive filtering capabilities. The response always includes core fields: id, name, description, type, and size. Each entry also includes `url` (Box web link for files and folders; web links use the API `url` when returned). The 'fields' parameter allows you to request additional fields beyond these core ones. All requested fields (core + additional) will be included in the API request and returned in the response. **Available Additional Fields:** fileVersion, sha1, contentCreatedAt, contentModifiedAt, createdAt, createdBy, modifiedAt, modifiedBy, ownedBy, parent, pathCollection, purgedAt, sharedLink, size, trashedAt, classification, commentCount, dispositionAt, expiresAt, extension, hasCollaborations, isAccessibleViaSharedLink, isAssociatedWithAppItem, isExternallyOwned, isPackage, lock, metadata, permissions, representations, sharedLinkPermissionOptions, tags, uploaderDisplayName, watermarkInfo **Date Range Filters:** Date range filters properties of the input schema: created_at_range, updated_at_range, deleted_at_range. Use comma-separated RFC3339 timestamps. **Format:** "start_date,end_date" where: - Omit start date to search all items before end date: ",2023-12-31T23:59:59Z" - Omit end date to search from start date to the present: "2023-01-01T00:00:00Z," - Both dates for specific range: "2023-01-01T00:00:00Z,2023-12-31T23:59:59Z" <examples> Basic keyword search (returns core fields only): <input> { "query": "contract agreement", "limit": 50 } </input> Advanced search with additional fields: <input> { "query": "quarterly report", "file_extensions": ["pdf", "docx"], "ancestor_folder_id": "123456789", "fields": ["createdAt", "modifiedAt", "size", "createdBy"] } </input> Searching by date: <input> { "query": "quarterly report", "file_extensions": ["pdf", "docx"], "ancestor_folder_id": "123456789", "created_at_range”: "2023-01-01T00:00:00Z,2023-12-31T23:59:59Z", "fields": ["createdAt"] } </input> Search with metadata filters and additional fields: <input> { "query": "invoice", "file_extensions": ["pdf"], "limit": 30, "fields": ["contentCreatedAt", "pathCollection", "metadata"], "mdfilters": [ { "scope": "enterprise", "templateKey": "invoiceTemplate", "filters": { "amount": { "gt": 1000, "lt": 5000 }, "status": "approved", "department": "finance" } } ] } </input> Multi-template metadata search with custom fields: <input> { "query": "project document", "fields": ["modifiedBy", "sharedLink", "tags", "permissions"], "mdfilters": [ { "scope": "enterprise", "templateKey": "projectTemplate", "filters": { "priority": "high", "deadline": { "gt": "2024-01-01" } } }, { "scope": "global", "templateKey": "reviewTemplate", "filters": { "reviewer": "john.doe@company.com" } } ] } </input> </examples>
Search files metadataBOX_MCP_SEARCH_FILES_METADATA
Searches for files using SQL-like metadata queries. Requires: from (e.g. enterprise_123456.templateKey from list_metadata_templates), fields (field keys from get_metadata_template_schema). ancestor_folder_id defaults to "0" (root) if omitted. Use list_metadata_templates and get_metadata_template_schema first to discover templates and field keys.
Search folders by nameBOX_MCP_SEARCH_FOLDERS_BY_NAME
Searches for folders by name within Box using keyword matching. This tool helps locate specific folders by their names and can be scoped to search within a particular parent folder. Returns basic folder information including ID, type, and name for each matching folder. The search performs a keyword-based match against folder names and can be limited to search within a specific ancestor folder. This is particularly useful for navigating complex folder structures, finding project folders, or locating organizational folders by name patterns. The tool uses Box's search API with folder type filtering, ensuring only folders (not files) are returned in results. Search results are limited to preserve performance and can be paginated using the limit parameter. **Date Range Filters:** Date range filters properties of the input schema: created_at_range, updated_at_range, deleted_at_range. Use comma-separated RFC3339 timestamps. **Format:** "start_date,end_date" where: - Omit start date to search all folders before end date: ",2023-12-31T23:59:59Z" - Omit end date to search from start date to the present: "2023-01-01T00:00:00Z," - Both dates for specific range: "2023-01-01T00:00:00Z,2023-12-31T23:59:59Z" <examples> Basic folder search: <input> { "folder_name": "Project Documents", "limit": 30 } </input> Search within specific parent folder: <input> { "folder_name": "2024 Reports", "ancestor_folder_id": "123456789", "limit": 50 } </input> Search for folders with partial name match: <input> { "folder_name": "Finance", "limit": 20 } </input> Limited results search: <input> { "folder_name": "Marketing Campaign", "ancestor_folder_id": "987654321", "limit": 10 } </input> Search in root directory and limit results by date: <input> { "folder_name": "Shared Resources", "created_at_range": "2023-01-01T00:00:00Z,2023-12-31T23:59:59Z" } </input> </examples>
Upload fileBOX_MCP_UPLOAD_FILE
Uploads a new file to Box. This tool creates a new file in Box using the provided text content. The file name including the extension must be provided and the extension must match the file content. Markdown uploads (e.g. .md) are regular text files like any other supported extension; use a .boxnote file name only when file_content should become a native Box Note via the notes conversion API. A parent folder ID can optionally be provided to determine where the new file should be created. The metadata details of the newly uploaded file are returned in response. If a file already exists with the same name, the tool will return an error. **Key Features:** - File creation with text content - Supported file extensions: txt, md, boxnote, html, svg, xml, csv, json, js, ts, py, sh - If the file extension is invalid, a .txt file will be created **Important:** This tool can only accept text content, to upload binary files, use the `get_upload_url` tool instead. <examples> Upload a file to Box: { "file_name": "example.md", "file_content": "#This is my example markdown file", "parent_folder_id": "0", } <output> { "content": [ { "type": "text", "text": "{"file_link": "https://example.app.box.com/file/123456789", "file_id": "123456789", "file_name": "example.md", "size": 100, "created_at": "2025-01-01T00:00:00Z"}" } ] } </output> </examples>
Who am iBOX_MCP_WHO_AM_I
Returns detailed information about the currently authenticated Box user. This tool provides comprehensive user profile data including basic identification, contact information, role details, and account settings. No input parameters are required as it retrieves information for the authenticated user making the request. This tool is essential for understanding the current user context, verifying authentication status, and obtaining user-specific information for personalization or access control purposes. It's particularly useful when building user-aware applications or when you need to identify the current user's permissions and organizational role. The response includes core user attributes such as ID, name, email, login, role, job title, and additional account details like space usage, language preferences, and timezone settings. <examples> Get current user information: <input> {} </input> </examples>