← Back to all apps

Box

Databy Box inc.
Launched Sep 16, 2026 on ChatGPT

Connect Claude to your content stored in Box. Enable Claude to search and access files, use AI to query documents, create or update content, extract metadata fields, and more, while enforcing existing Box security and access policies.

61ChatGPT Tools
20Claude Tools
Box inc.Developer
DataCategory

Use Cases

datalegal

Available Tools

Add File Shared Link

add_file_shared_link
Full Description

Creates or updates a shared link on a file using the Box API (PUT /files/{file_id} with a shared_link object). If you omit all optional link fields, Box applies the enterprise default access level (send an empty shared_link).

Optional fields:

  • access: open | company | collaborators
  • password: set a string to require a password, or null to remove
  • vanity_name: custom vanity segment (sensitive content should not use vanity URLs)
  • unshared_at: when the link expires (paid accounts). Must be strictly in the future. Use an ISO 8601 string (e.g. "2027-12-31T23:59:59Z"), Unix epoch seconds (10-digit string or number), or milliseconds (13-digit string or large number). Omit to leave unset.
  • permissions.can_download: whether the shared link allows download (must be nested as permissions: { "can_download": false }; snake_case matches the Box API).

Public links (access: "open"): Password and unshared_at are required. Expiry must be within 90 days. Requests without both are rejected before calling Box.

Response: download_url is only included when Box reports effective_permission of can_download or can_edit. The underlying Box file object can still carry a download_url while the link is preview-only; this tool clears download_url in that case. Use effective_permission and permissions_can_download to see what was applied.

<examples> Default shared link: { "file_id": "123456789" }

Company-only with download: { "file_id": "123456789", "access": "company", "permissions": { "can_download": true } }

Public link (password + expiry required): { "file_id": "123456789", "access": "open", "password": "choose-a-strong-password", "unshared_at": "2026-09-07T23:59:59Z" } </examples>

Parameters (1 required, 5 optional)
Required
file_idstring
Optional
accessstring
Options:opencompanycollaborators
passwordstring/null

Required when access is "open": non-empty password string.

permissionsobject
unshared_atstring

Required when access is "open": expiry within 90 days (ISO 8601, epoch seconds, or ms).

vanity_namestring

Add Folder Shared Link

add_folder_shared_link
Full Description

Creates or updates a shared link on a folder using the Box API (PUT /folders/{folder_id} with a shared_link object). If you omit all optional link fields, Box applies the enterprise default access level.

Optional fields: Same as add_file_shared_link (access, password, vanity_name, unshared_at, permissions.can_download).

Public links (access: "open"): Password and unshared_at are required. Expiry must be within 90 days. Requests without both are rejected before calling Box.

<examples> { "folder_id": "987654321", "access": "collaborators" }

Public link (password + expiry required): { "folder_id": "987654321", "access": "open", "password": "choose-a-strong-password", "unshared_at": "2026-09-07T23:59:59Z" } </examples>

Parameters (1 required, 5 optional)
Required
folder_idstring
Optional
accessstring
Options:opencompanycollaborators
passwordstring/null

Required when access is "open": non-empty password string.

permissionsobject
unshared_atstring

Required when access is "open": expiry within 90 days (ISO 8601, epoch seconds, or ms).

vanity_namestring

Add Items to Hub

add_items_to_hub
Full Description

Adds files, folders, or web links to a specific hub, enabling content organization within collaborative workspaces. Essential for building and curating hub content by adding relevant materials to the collaborative space.

This tool enables the population of hubs with relevant content, making it easy to organize materials within collaborative workspaces. You can add multiple items at once, supporting efficient hub content management and organization.

Key Features:

  • Adds multiple items (files, folders, web links) to hubs in a single operation
  • Supports batch operations for efficient content organization
  • Works with all Box content types: files, folders, and web links
  • Provides confirmation of successful additions with detailed results

Supported Item Types:

  • file: Box files of any type
  • folder: Box folders and their contents
  • web_link: External web links and bookmarks

<examples> Add a single file to a hub: <input> { "hub_id": "12345", "items": [ {"id": "98765", "type": "file"} ] } </input>

Add multiple items to a hub: <input> { "hub_id": "12345", "items": [ {"id": "98765", "type": "file"}, {"id": "54321", "type": "folder"}, {"id": "11111", "type": "web_link"} ] } </input>

Add resources to a team hub: <input> { "hub_id": "55555", "items": [ {"id": "111111", "type": "folder"}, {"id": "222222", "type": "web_link"}, {"id": "333333", "type": "file"} ] } </input> </examples>

Parameters (2 required)
Required
hub_idstring

The ID of the hub to add items to

itemsarray

Array of items to add to the hub

AI Extract Freeform

ai_extract_freeform
Full Description

Extracts metadata from files using Box AI in freeform format without requiring predefined template structures. This tool leverages Box AI to extract any type of information from documents using natural language instructions, allowing for flexible and unstructured metadata extraction.

Unlike structured extraction tools that require predefined templates, this tool allows you to specify custom prompts to extract specific information from documents. You can extract dates, names, financial figures, key terms, or any other data by describing what you want in natural language.

The tool processes files with text representations up to 1MB in size and supports various file types including documents, PDFs, presentations, and text files. You can analyze single files or multiple files simultaneously for comparative analysis.

<examples> Basic document information extraction: <input> { "file_ids": ["123456789"], "prompt": "Extract the customer name, invoice number, and total amount from this document." } </input>

Contract analysis: <input> { "file_ids": ["987654321"], "prompt": "Extract all dates, names, and key financial figures mentioned in this contract. Format as a structured list." } </input>

Multi-file analysis: <input> { "file_ids": ["111222333", "444555666"], "prompt": "Compare these two proposals and extract the key differences in pricing, timeline, and deliverables." } </input>

Custom field extraction: <input> { "file_ids": ["777888999"], "prompt": "Extract the following information if available: company name, contact email, project deadline, budget range, and main objectives." } </input>

Structured output request: <input> { "file_ids": ["555666777"], "prompt": "Extract all financial data and format as JSON with keys: amount, currency, date, description." } </input>

Missing data handling: <input> { "file_ids": ["888999000"], "prompt": "Extract client name, project start date, and budget. If any field is not found, return 'Not specified'." } </input> </examples>

Parameters (2 required)
Required
file_idsarray
promptstring

AI Extract Structured From Fields

ai_extract_structured_from_fields
Full Description

Extracts structured metadata from files using Box AI based on custom field definitions. This tool leverages Box AI to process documents and return extracted data as structured key-value pairs, supporting various field types including strings, dates, numbers, enums, and multi-select options.

This tool provides structured output by defining custom fields that specify what information to extract and how to structure it. The tool processes files with text representations and supports various file types including documents, PDFs, presentations, and text files.

<examples> Custom fields extraction: <input> { "file_ids": ["123456789"], "fields": [ { "key": "customer_name", "displayName": "Customer Name", "description": "The name of the customer", "type": "string", "prompt": "Extract the customer name from the document" }, { "key": "invoice_amount", "displayName": "Invoice Amount", "description": "Total invoice amount", "type": "float" }, { "key": "payment_status", "displayName": "Payment Status", "description": "Current payment status", "type": "enum", "options": [ {"key": "paid"}, {"key": "pending"}, {"key": "overdue"} ] } ] } </input>

Multi-file structured extraction with fields: <input> { "file_ids": ["111222333", "444555666"], "fields": [ { "key": "document_type", "displayName": "Document Type", "type": "enum", "options": [ {"key": "contract"}, {"key": "invoice"}, {"key": "proposal"} ] }, { "key": "key_dates", "displayName": "Important Dates", "type": "multiSelect", "options": [ {"key": "start_date"}, {"key": "end_date"}, {"key": "due_date"} ] } ] } </input>

Complex field extraction: <input> { "file_ids": ["777888999"], "fields": [ { "key": "company_info", "displayName": "Company Information", "description": "Company name and contact details", "type": "string", "prompt": "Extract company name, address, and main contact information" }, { "key": "contract_value", "displayName": "Contract Value", "description": "Total contract amount in USD", "type": "float", "prompt": "Find the total contract value, convert to USD if needed" }, { "key": "signature_date", "displayName": "Signature Date", "description": "Date when contract was signed", "type": "date" } ] } </input> </examples>

Parameters (2 required)
Required
fieldsarray
file_idsarray

AI Extract Structured From Fields Enhanced

ai_extract_structured_from_fields_enhanced
Full Description

Extracts structured metadata from files using Box AI's Enhanced Extract Agent based on custom field definitions. This tool leverages Box AI to process documents and return extracted data as structured key-value pairs, supporting various field types including strings, dates, numbers, enums, and multi-select options. It uses a specialized AI agent (enhanced_extract_agent) that provides improved extraction capabilities compared to the standard extraction.

IMPORTANT: This tool should ONLY be used when the user explicitly requests the "enhanced extract agent" or specifically asks for enhanced extraction capabilities. It is more expensive than the standard aiExtractStructuredFromFields tool and should not be used as a default option.

This tool provides structured output by defining custom fields that specify what information to extract and how to structure it. The tool processes files with text representations and supports various file types including documents, PDFs, presentations, and text files. You can analyze single files or multiple files simultaneously.

<examples> Enhanced custom fields extraction: <input> { "file_ids": ["123456789"], "fields": [ { "key": "customer_name", "displayName": "Customer Name", "description": "The name of the customer", "type": "string", "prompt": "Extract the customer name from the document" }, { "key": "invoice_amount", "displayName": "Invoice Amount", "description": "Total invoice amount", "type": "float" }, { "key": "payment_status", "displayName": "Payment Status", "description": "Current payment status", "type": "enum", "options": [ {"key": "paid"}, {"key": "pending"}, {"key": "overdue"} ] } ] } </input>

Enhanced multi-file structured extraction with fields: <input> { "file_ids": ["111222333", "444555666"], "fields": [ { "key": "document_type", "displayName": "Document Type", "type": "enum", "options": [ {"key": "contract"}, {"key": "invoice"}, {"key": "proposal"} ] }, { "key": "key_dates", "displayName": "Important Dates", "type": "multiSelect", "options": [ {"key": "start_date"}, {"key": "end_date"}, {"key": "due_date"} ] } ] } </input>

Enhanced complex field extraction: <input> { "file_ids": ["777888999"], "fields": [ { "key": "company_info", "displayName": "Company Information", "description": "Company name and contact details", "type": "string", "prompt": "Extract company name, address, and main contact information" }, { "key": "contract_value", "displayName": "Contract Value", "description": "Total contract amount in USD", "type": "float", "prompt": "Find the total contract value, convert to USD if needed" }, { "key": "signature_date", "displayName": "Signature Date", "description": "Date when contract was signed", "type": "date" } ] } </input> </examples>

Parameters (2 required)
Required
fieldsarray
file_idsarray

AI Extract Structured From Metadata Template

ai_extract_structured_from_metadata_template
Full Description

Extracts structured metadata from files using Box AI based on an existing metadata template. This tool leverages Box AI to process documents and return extracted data following the structure defined in a Box metadata template.

This tool uses metadata templates that have been previously created in Box, allowing you to consistently extract information based on predefined schemas. The tool processes files with text representations and supports various file types including documents, PDFs, presentations, and text files.

<examples> Metadata template extraction: <input> { "file_ids": ["987654321"], "template_key": "invoiceTemplate", "scope": "enterprise_12345" } </input>

Multi-file extraction with template: <input> { "file_ids": ["111222333", "444555666"], "template_key": "contractTemplate", "scope": "enterprise_12345" } </input>

Global template extraction: <input> { "file_ids": ["777888999"], "template_key": "properties", "scope": "global" } </input> </examples>

Parameters (3 required)
Required
file_idsarray
scopestring
template_keystring

AI Extract Structured From Metadata Template Enhanced

ai_extract_structured_from_metadata_template_enhanced
Full Description

Extracts structured metadata from files using Box AI's Enhanced Extract Agent based on an existing metadata template. This tool leverages Box AI to process documents and return extracted data following the structure defined in a Box metadata template. It uses a specialized AI agent (enhanced_extract_agent) that provides improved extraction capabilities compared to the standard extraction.

IMPORTANT: This tool should ONLY be used when the user explicitly requests the "enhanced extract agent" or specifically asks for enhanced extraction capabilities. It is more expensive than the standard aiExtractStructuredFromMetadataTemplate tool and should not be used as a default option.

The tool processes files with text representations and supports various file types including documents, PDFs, presentations, and text files. You can analyze single files or multiple files simultaneously.

<examples> Metadata template extraction: <input> { "file_ids": ["987654321"], "template_key": "invoiceTemplate", "scope": "enterprise_12345" } </input>

Multi-file extraction with template: <input> { "file_ids": ["111222333", "444555666"], "template_key": "contractTemplate", "scope": "enterprise_12345" } </input>

Global template extraction: <input> { "file_ids": ["777888999"], "template_key": "properties", "scope": "global" } </input> </examples>

Parameters (3 required)
Required
file_idsarray
scopestring
template_keystring

AI Q&A Hub

ai_qa_hub
Full Description

Ask a question to a Box Hub using Box AI. This tool leverages Box AI to analyze hub content and provide intelligent responses to questions about the hub's resources, documents, and related materials. Hubs are collaborative spaces in Box that contain multiple files, folders, and resources organized around specific topics or projects.

Box AI analyzes the content within the hub to provide comprehensive answers based on all accessible materials. This is particularly useful for getting insights across multiple documents and resources within a hub context, making it ideal for project-wide questions, content summaries, and cross-document analysis.

Citations: The response includes citations as a separate content item that indicate which sources were referenced when generating the answer, allowing you to verify the AI's reasoning and locate relevant content. Citations are only returned when available and each citation includes the referenced content snippet, source file ID, and file name.

<examples> General hub inquiry: <input> { "hub_id": "123456789", "question": "What is the main purpose and scope of this project hub?" } </input>

Content analysis across hub: <input> { "hub_id": "987654321", "question": "What are the key milestones and deliverables mentioned across the documents in this hub?" } </input>

Resource overview: <input> { "hub_id": "555666777", "question": "Summarize the current status and progress based on all available documents." } </input>

Cross-document insights: <input> { "hub_id": "111222333", "question": "What are the main challenges and solutions discussed across the project materials?" } </input>

Hub content summary: <input> { "hub_id": "444555666", "question": "Provide an overview of all the key information available in this hub." } </input>

Collaborative analysis: <input> { "hub_id": "777888999", "question": "Based on all the documents in this hub, what recommendations can you make for next steps?" } </input> </examples>

Parameters (2 required)
Required
hub_idstring
questionstring

AI Q&A Multi File

ai_qa_multi_file
Full Description

Ask a question to multiple files using Box AI. This tool leverages Box AI to analyze content across multiple files simultaneously and provide intelligent responses that can compare, contrast, and synthesize information from all provided files. This is particularly useful for cross-document analysis, finding common themes, identifying differences, and getting comprehensive insights across related documents.

Box AI processes all files together using the multi_item_qa mode, allowing for sophisticated analysis that spans multiple documents. This enables comparative analysis, pattern recognition across documents, and comprehensive answers that draw from the collective content of all specified files.

Citations: The response includes citations as a separate content item that indicate which sources were referenced when generating the answer, allowing you to verify the AI's reasoning and locate relevant content. Citations are only returned when available and each citation includes the referenced content snippet, source file ID, and file name.

<examples> Basic multi-file question: <input> { "file_ids": ["123456789", "987654321"], "question": "What are the common themes across these documents?" } </input>

Comparative analysis: <input> { "file_ids": ["111222333", "444555666", "777888999"], "question": "Compare the methodologies discussed in these research papers." } </input>

Cross-document data extraction: <input> { "file_ids": ["555666777", "888999000"], "question": "List all the key dates and milestones mentioned across these project documents." } </input>

Comprehensive analysis: <input> { "file_ids": ["123456789", "987654321", "111222333"], "question": "Based on all these financial reports, what trends and recommendations can you identify?" } </input>

Finding differences: <input> { "file_ids": ["444555666", "777888999"], "question": "What are the main differences in approach between these two proposals?" } </input>

Synthesis and summary: <input> { "file_ids": ["123456789", "987654321", "111222333", "444555666"], "question": "Provide a comprehensive summary that synthesizes the key insights from all these documents." } </input>

Pattern identification: <input> { "file_ids": ["555666777", "888999000", "123456789"], "question": "What patterns or recurring issues can you identify across these incident reports?" } </input> </examples>

Parameters (2 required)
Required
file_idsarray
questionstring

AI Q&A Single File

ai_qa_single_file
Full Description

Ask a question to a single file using Box AI. This tool leverages Box AI to analyze file content and provide intelligent responses to questions about the file. Supports various file types including documents, PDFs, presentations, and text files.

The AI analyzes the file content and returns an answer based on the question asked. Box AI handles text documents with text representations up to 1MB in size. If the text file size exceeds 1MB, the first 1MB of text representation will be processed.

Citations: The response includes citations as a separate content item that indicate which sources were referenced when generating the answer, allowing you to verify the AI's reasoning and locate relevant content. Citations are only returned when available and each citation includes the referenced content snippet, source file ID, and file name.

<examples> Basic file question: <input> { "file_id": "123456789", "question": "What is the main topic of this document?" } </input>

Specific content inquiry: <input> { "file_id": "987654321", "question": "What are the key findings mentioned in the executive summary?" } </input>

Data extraction: <input> { "file_id": "555666777", "question": "List all the dates mentioned in this contract." } </input>

Analysis request: <input> { "file_id": "111222333", "question": "What are the pros and cons discussed in this report?" } </input>

Complex question: <input> { "file_id": "444555666", "question": "Based on the financial data in this spreadsheet, what trends can you identify?" } </input> </examples>

Parameters (2 required)
Required
file_idstring
questionstring

Box Download File

box_download_file
Full Description

Download a Box file into a user-scoped, reusable sediment:// file reference. The provider's short-lived bearer download URL never appears in the response.

Parameters (1 required)
Required
file_idstring

Exact Box file ID to download.

Box Fetch Thumbnail

box_fetch_thumbnail
Full Description

Return a bounded provider-generated JPEG for trusted internal image previews. The linked user must have preview permission for this exact image. Pending representations remain unavailable; this action never downloads the original.

Parameters (1 required)
Required
file_idstring

Exact Box ID of an accessible image file.

Box Internal Get File Download Url

box_internal_get_file_download_url
Full Description

Prepare a mounted Box file for internal Library materialization. Pass the exact decimal Box file ID selected from the mounted Library tree. The returned URL is a short-lived capability that must be consumed immediately by the trusted materialization path and must not be exposed to the user or model.

Parameters (1 required)
Required
file_idstring

The exact Box file ID to download.

Box List Recent Files

box_list_recent_files
Full Description

Return recently accessed files; Box limits recency to 90 days or 1,000 items.

Parameters (0 required, 2 optional)
Optional
limitinteger

Maximum number of recent provider entries to inspect.

Default: 100
markerstring

Opaque Box continuation marker.

Default: null

Box Search Items

box_search_items
Full Description

Search accessible Box files, folders, and web links with provider-side filters. Search uses offset pagination, with a maximum offset of 10,000. Results may lag recent changes while Box updates its search index.

Parameters (1 required, 8 optional)
Required
querystring

Text to find in accessible Box items.

Optional
ancestor_folder_idsarray

Box folder IDs whose descendants should be searched; root is `0`.

Default: null
content_typesarray

Box fields to search; use only `name` for title-only matching.

Default: null
directionstring

Ascending or descending order for modification-time sorting.

Options:ASCDESC
Default: DESC
file_extensionsarray

Box file extensions without dots; matching is case-insensitive.

Default: null
item_typestring

Return files, folders, web links, or all item types.

Options:allfilefolderweb_link
Default: all
limitinteger

Maximum number of search results to return.

Default: 30
offsetinteger

Result offset from the previous continuation.

Default: 0
sortstring

Order results by relevance or last modification.

Options:relevancemodified_at
Default: relevance

Copy File

copy_file
Full Description

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>

Parameters (1 required, 2 optional)
Required
file_idstring
Optional
namestring
parent_folder_idstring
Default: 0

Copy Folder

copy_folder
Full Description

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>

Parameters (1 required, 2 optional)
Required
folder_idstring
Optional
namestring
parent_folder_idstring
Default: 0

Copy Hub

copy_hub
Full Description

Creates a copy of an existing Box Hub via the Hubs v3 API (POST /v3/hubs/{id}:copy). The source hub is not modified.

Copies the source hub's description (unless overridden) and shareable items into the new hub by setting includeItems to true.

Important: Only items the user has permission to share into the new hub are copied. Items the user can view only through the hub itself (without share permission) are not copied.

hub_id (required): The source hub to copy. Use list_hubs to find hubs and match by title to obtain the id, or take the id from the hub URL (/hubs/{id}).

title (optional): Title for the new hub (max 50 characters). description (optional): Description for the new hub. When omitted, the source hub description is copied.

<examples> Copy a hub, supplying a new title: { "hub_id": "12345", "title": "Research hub (copy)" }

Copy using only the hub id (minimal body): { "hub_id": "12345" } </examples>

Parameters (1 required, 2 optional)
Required
hub_idstring
Optional
descriptionstring
titlestring

Create Collaboration

create_collaboration
Full Description

Creates a collaboration (invite) on a Box file, folder, or hub.

File or folder — Box API [Add collaboration to an item](https://developer.box.com/reference/post-collaborations). Uses target_type file or folder with target_id. Allowed role values: editor, viewer, previewer, uploader, previewer uploader, viewer uploader (co-owner is not permitted via this tool). Optional notify controls email notification. can_view_path is only valid for folder targets.

Hub — Box API [Create hub collaboration](https://developer.box.com/reference/v2025.0/post-hub-collaborations) (2025.0). Use target_type hub and target_id as the hub id (the API hub reference object sets its type field to the string hubs). Allowed hub roles: editor or viewer (co-owner is not permitted via this tool).

Collaborator: collaborator_type is user or group. For a user, set collaborator_id (Box user id) or collaborator_email. For a group, set collaborator_id (group id).

Collaboration id for later updates: On success this tool returns JSON with collaboration_id. Pass that id to update_collaboration with collaboration_kind item (file/folder) or hub (hub), matching how the invite was created.

Examples (JSON):

Invite a user to a folder as editor by email: {"target_type":"folder","target_id":"12345","collaborator_type":"user","collaborator_email":"colleague@example.com","role":"editor","notify":true}

Invite a group to a file: {"target_type":"file","target_id":"67890","collaborator_type":"group","collaborator_id":"111","role":"viewer"}

Add a user to a hub as viewer: {"target_type":"hub","target_id":"4242","collaborator_type":"user","collaborator_id":"555","role":"viewer"}

Parameters (4 required, 5 optional)
Required
collaborator_typestring
Options:usergroup
rolestring
Options:editorviewerprevieweruploaderpreviewer uploaderviewer uploader
target_idstring
target_typestring
Options:filefolderhub
Optional
can_view_pathboolean
collaborator_emailstring
collaborator_idstring
is_access_onlyboolean
notifyboolean

Create Doc Gen Batch

create_docgen_batch
Full Description

Generates documents from a Doc Gen template by filling placeholder tags with provided data. Outputs PDF or DOCX files to a specified folder. Supports batch generation. The user_input object keys must match template placeholders (e.g., {{customer_name}}).

<examples> <input> { "file_id": "123456789", "destination_folder_id": "987654321", "output_type": "pdf", "document_generation_data": [ { "generated_file_name": "Invoice_March_2024", "user_input": { "customer_name": "Acme Corp", "invoice_number": "INV-2024-001", "amount": "5000.00" } } ] } </input>

<input> { "file_id": "555666777", "destination_folder_id": "111222333", "output_type": "docx", "document_generation_data": [ { "generated_file_name": "Contract_ClientA", "user_input": { "client_name": "Client A", "contract_date": "2024-03-01" } }, { "generated_file_name": "Contract_ClientB", "user_input": { "client_name": "Client B", "contract_date": "2024-03-02" } } ] } </input> </examples>

Parameters (4 required, 1 optional)
Required
destination_folder_idstring

The ID of the folder where generated documents will be saved

document_generation_dataarray

Array of documents to generate from the template

file_idstring

The ID of the Doc Gen template file to use

output_typestring

Output file format (pdf or docx)

Options:pdfdocx
Optional
file_version_idstring

Specific version of the template file (optional)

Create Doc Gen Template

create_docgen_template
Full Description

Marks a Box file (.docx or .pptx) as a Doc Gen template for automated document generation. Optionally assigns a friendly name. File must contain valid placeholder tags (e.g., {{field_name}}) and user must have edit permissions.

<examples> <input> { "file_id": "123456789" } </input> </examples>

Parameters (1 required)
Required
file_idstring

The ID of the file to mark as a Doc Gen template

Create File Comment

create_file_comment
Full Description

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>

Parameters (2 required)
Required
file_idstring

The ID of the file to add a comment to

messagestring

The comment message to add to the file

Create Folder

create_folder
Full Description

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>

Parameters (1 required, 1 optional)
Required
namestring

Folder name (max 255 chars, no slashes, leading/trailing spaces, or dots). Must be unique within parent folder.

Optional
parent_folder_idstring

Parent folder ID where new folder will be created. Defaults to "0" (root directory).

Default: 0

Create Hub

create_hub
Full Description

Creates new collaborative hubs for organizing content around specific topics, projects, or teams. Enables the establishment of new collaborative workspaces with customizable titles and descriptions.

This tool is essential for setting up new collaborative spaces where teams can organize, share, and work together on related content. Hubs serve as central gathering points for all materials related to a particular initiative or project.

Key Features:

  • Creates new hubs with custom titles and optional descriptions
  • Establishes collaborative workspaces for team projects
  • Returns complete hub information upon successful creation
  • Supports both minimal (title-only) and detailed hub creation

<examples> Create a simple hub with title only: <input> { "title": "Marketing Team Hub" } </input> </examples>

Parameters (1 required, 1 optional)
Required
titlestring

The title of the new hub

Optional
descriptionstring

Optional description for the new hub providing context about its purpose and contents

Create Metadata Template

create_metadata_template
Full Description

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>

Parameters (2 required, 4 optional)
Required
display_namestring

Display name of the template in Box UI and APIs.

scopestring

Must be "enterprise". Apps cannot create global templates.

Optional
copy_instance_on_item_copyboolean

Whether to copy metadata when a file/folder is copied.

fieldsarray

Ordered field definitions (string, float, date, enum, multiSelect, or taxonomy).

hiddenboolean

If true, template is API-only and not shown in the Box web app.

template_keystring

Unique key within the enterprise; if omitted, Box derives one from display_name.

Fetch

fetch
Full Description

Retrieves the full contents of a search result document or item from Box. Pass the unique id string returned by the search tool (or another Box item id for a file).

Use this tool only in ChatGPT Deep Research mode; do not call it outside Deep Research. In Deep Research, prioritize this tool over get_file_content when reading file text. Outside Deep Research, use get_file_content instead.

Arguments

  • id (string): Unique identifier for the search document or item.

Returns A single MCP content item with type: "text" whose text value is a JSON-encoded string of one object:

  • id — unique id for the document or item
  • title — display title
  • text — full text of the document
  • url — citation URL for the resource

Only Box files with text representations are supported (same limits as get_file_content: markdown or extracted text, 50MB max).

<examples> <input> { "id": "123456789" } </input> The tool response has one content item; its text field is a JSON string. Parsed, that string is an object like: { "id": "123456789", "title": "Report.pdf", "text": "...full document text...", "url": "https://account.box.com/file/123456789" } </examples>

Parameters (1 required)
Required
idstring

Get Doc Gen Template by ID

get_docgen_template_by_id
Full Description

Retrieves details about a specific Box Doc Gen template, including file reference, friendly name, and metadata.

<examples> <input> { "template_id": "123456789" } </input> </examples>

Parameters (1 required)
Required
template_idstring

The unique identifier of the Doc Gen template

Get Download URL

get_download_url
Full Description

Get a direct download URL for a file from Box. Returns a time-limited download_url for the raw binary of a Box file. There is no server-side size cap on this tool; very large downloads may still fail or time out at the HTTP client or Box layer; prompt users to download very large files directly from Box if needed. Use this only when your environment can perform its own HTTP GET and you need the full file, not just the text extracted inside chat.

When to use this tool:

  • You need the raw file (images, video, zip, installers, proprietary formats, or any case where text extraction is wrong or unavailable).
  • You have capability to run curl commands locally and make external network calls.

When to use get_file_content instead (preferred for analysis in-session):

  • You want markdown or plain extracted text returned directly in the tool response.
  • The goal is to read, summarize, search, or quote document-style content (PDFs, Office, spreadsheets, code, etc.) where representations exist.
  • You do not have a way to fetch a URL outside the MCP tool call.

Versions: By default this downloads the current version. Pass version_id to download a specific past version; use list_file_versions to discover version IDs. The response reports the resolved version_id, and file_name and size_bytes describe that version.

Example: curl -L -o "./out.bin" "<download_url>"

Important: The download link must be used as soon as possible immediately after generation, it expires after 60 seconds. When downloading multiple files the links should be generated and used sequentially by downloading one file at a time to avoid link expiration.

Security: Treat download_url as a secret capability bearing token that should not be shared under any circumstances. It is single-use and must not be cached or stored anywhere.

Note: This tool will only work if you have external network access to the Box API, if dl.boxcloud.com or public.boxcloud.com have not been allowlisted direct downloads will fail.

Parameters (1 required, 1 optional)
Required
file_idstring
Optional
version_idstring

Specific file version to download, as returned by list_file_versions. Omit to download the current version.

Get File Content

get_file_content
Full Description

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>

Parameters (1 required, 1 optional)
Required
file_idstring
Optional
version_idstring

Past version ID from list_file_versions. Omit for the current version.

Get File Details

get_file_details
Full Description

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>

Parameters (1 required, 1 optional)
Required
file_idstring

The unique identifier of the file

Optional
fieldsarray

Specific fields to retrieve. If not specified, returns essential fields. Use to request additional metadata, permissions, etc.

Get File Preview

get_file_preview
Full Description

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.

Parameters (1 required)
Required
fileIdstring

The ID of the file to preview

Get Folder Details

get_folder_details
Full Description

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>

Parameters (1 required, 1 optional)
Required
folder_idstring

The unique identifier of the folder

Optional
fieldsarray

Specific fields to retrieve. If not specified, returns essential fields. Use to request additional metadata, permissions, etc.

Get Hub Details

get_hub_details
Full Description

Retrieves comprehensive information about a specific hub including metadata, creation details, and administrative information. Provides complete hub context for understanding ownership, timing, and purpose.

This tool is essential for understanding hub context, ownership, and management information. It provides the complete picture of a hub's properties, helping users understand when it was created, by whom, and its current status.

Key Features:

  • Retrieves detailed hub information including title, description, and metadata
  • Provides creation and modification timestamps
  • Shows hub ownership and creator information
  • Returns complete hub context for administrative and management purposes

<examples> Get detailed information about a specific hub: <input> { "hub_id": "12345" } </input> </examples>

Parameters (1 required)
Required
hub_idstring

The unique identifier of the hub to retrieve detailed information about

Get Hub Items

get_hub_items
Full Description

Retrieves all items within a specific hub including files, folders, and web links. Essential for exploring the contents of collaborative workspaces and understanding what resources are available in a hub.

This tool provides comprehensive access to hub contents with pagination support, allowing you to browse through all materials that have been added to a collaborative workspace. Perfect for content discovery and hub content management.

Key Features:

  • Retrieves all items (files, folders, web links) within a specific hub
  • Supports pagination for hubs with large amounts of content
  • Returns detailed item information including names, types, and IDs
  • Configurable result limits for efficient data retrieval

<examples> Get items in a specific hub: <input> { "hub_id": "12345" } </input>

Get hub items with pagination: <input> { "hub_id": "67890", "limit": 50, "marker": "next_marker_value" } </input>

Get first 25 items from a hub: <input> { "hub_id": "11111", "limit": 25 } </input> </examples>

Parameters (1 required, 2 optional)
Required
hub_idstring

The ID of the hub to retrieve items from

Optional
limitinteger

Maximum number of hub items to return in a single response

Default: 50
markerstring

Pagination marker to retrieve next set of hub items. Use empty string for first page

Get Metadata Template Schema

get_metadata_template_schema
Full Description

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.

Parameters (2 required)
Required
scopestring
Options:enterpriseglobal
template_keystring

The template key from list_metadata_templates (e.g. templateKey from an entry).

Get Preview Page

get_preview_page
Full Description

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.

Parameters (2 required)
Required
fileIdstring

The Box file ID

pageinteger

The 1-based page number to return as PNG

Get Upload URL

get_upload_url
Full Description

Get a direct upload URL for uploading a raw file binary to Box. Returns upload_url and optional upload_token after upload-proxy preflight (OPTIONS create_upload_token). You then POST multipart file bytes to that URL. Same file_name and parent_folder_id must appear in multipart attributes as in this call.

To get upload url for a new version of an existing file, pass file_id. The returned upload_url will create a new version of the file instead of creating a new file. When file_id is set, parent_folder_id is ignored.

When to use this tool:

  • You have binary or large payload bytes and a runtime that can HTTP POST multipart.
  • You have capability to run curl commands locally and make external network calls.

When to use upload_file or upload_file_version instead:

  • The file body is small text content you already have in the conversation and you want to use a single MCP tool call with file_content.

Example: curl -X POST "<upload_url>" -H "Authorization: Bearer <upload_token>" -H "Content-Type: multipart/form-data" -F 'attributes={"name":"...","parent":{"id":"..."}}' -F "file=@/path/to/file"

Security: Treat upload_url and upload_token as secret capabilities that should not be shared under any circumstances. They are single-use and must not be cached or stored anywhere. The upload token expires after 10 minutes.

Note: This tool will only work if you have external network access to the Box API, if upload.app.box.com or upload.*.box.com have not been allowlisted direct uploads will fail.

Parameters (2 required, 2 optional)
Required
file_namestring

Name of the file to create, including extension if applicable.

file_size_bytesinteger
Optional
file_idstring

If provided, returns an upload URL for a new version of this existing file instead of creating a new file. When set, parent_folder_id is ignored.

parent_folder_idstring
Default: 0

List Doc Gen Templates

list_docgen_templates
Full Description

Lists all Box Doc Gen templates available to the authenticated user. Supports pagination using marker and limit parameters.

<examples> <input> { "limit": 50 } </input>

<input> { "marker": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", "limit": 100 } </input> </examples>

Parameters (0 required, 2 optional)
Optional
limitinteger

Maximum number of templates to return (1-1000, default: 100)

Default: 100
markerstring

Pagination marker for retrieving the next set of templates

List File Comments

list_file_comments
Full Description

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>

Parameters (1 required, 3 optional)
Required
file_idstring
Optional
fieldsarray
Default: ['id', 'type', 'message', 'created_by', 'created_at']
limitinteger
Default: 100
offsetinteger
Default: 0

List Folder Content

list_folder_content_by_folder_id
Full Description

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>

Parameters (1 required, 3 optional)
Required
folder_idstring
Optional
fieldsarray
Default: []
limitinteger
Default: 30
offsetinteger
Default: 0

List Hubs

list_hubs
Full Description

Lists all hubs accessible to the current user with pagination support. Provides an overview of available collaborative workspaces and their basic information.

Hubs in Box are collaborative workspaces that organize content around specific topics, projects, or teams. This tool helps discover what hubs you have access to, making it easy to find the right collaborative space for your work.

Key Features:

  • Lists all accessible hubs for the authenticated user
  • Supports pagination with configurable limits and markers
  • Returns essential hub information including ID, type, and title
  • Efficient retrieval with adjustable result limits (1-1000)

<examples> List all accessible hubs with default settings: <input> { "limit": 50 } </input>

List hubs with custom pagination: <input> { "limit": 30, "marker": "next_marker_from_previous_response" } </input> </examples>

Parameters (0 required, 2 optional)
Optional
limitinteger

Maximum number of hubs to return in a single response

Default: 50
markerstring

Pagination marker to retrieve next set of results. Use empty string for first page

List Item Collaborations

list_item_collaborations
Full Description

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>

Parameters (1 required)
Required
itemsarray

Array of items to list collaborations for

List Metadata Templates

list_metadata_templates
Full Description

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.

Parameters (1 required, 2 optional)
Required
scopestring
Options:enterpriseglobal
Optional
limitinteger

Max number of templates to return (default 1000).

markerstring

Pagination marker from a previous response.

List Tasks

list_tasks
Full Description

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>

Parameters (1 required)
Required
file_idstring

Move File

move_file
Full Description

Moves an existing file to another folder in Box using PUT /files/{id} (see Box API Update file). The file stays the same item (same ID); only its parent folder changes. You must set parent_folder_id to the folder ID that will become the new parent (use "0" for the user's root folder). Optionally set name to rename the file while moving.

Key features:

  • Optional rename via name

<examples> Move a file into a folder: { "file_id": "123456789", "parent_folder_id": "987654321" }

Move a file to the user's root folder: { "file_id": "123456789", "parent_folder_id": "0" } </examples>

Parameters (2 required, 1 optional)
Required
file_idstring
parent_folder_idstring
Optional
namestring

Move Folder

move_folder
Full Description

Moves an existing folder to a new parent in Box using PUT /folders/{id} (Update folder). The folder keeps the same ID; only its parent changes. This is not for restoring items from trash.

You must set parent_folder_id to the folder ID that will become the new parent (use "0" for the user's root folder). Optionally set name to rename the folder while moving.

Key features:

  • Optional rename via name

<examples> Move a folder under another folder: { "folder_id": "123456789", "parent_folder_id": "987654321" }

Move a folder to the user's root: { "folder_id": "123456789", "parent_folder_id": "0" } </examples>

Parameters (2 required, 1 optional)
Required
folder_idstring
parent_folder_idstring
Optional
namestring

Search

search
Full Description

Searches for files and folders in Box using a keyword query. Returns a list of matching items, each with a unique ID, a title, and a URL for citation.

Use this tool only in ChatGPT Deep Research mode; do not call it outside Deep Research. In Deep Research, prioritize this tool over search_folders_by_name and search_files_keyword for keyword-based discovery. Outside Deep Research, use search_folders_by_name and search_files_keyword instead.

The results can be used with other tools to retrieve full item details or content.

<examples> Basic keyword search: <input> { "query": "quarterly report" } </input> <output> { "results": [ { "id": "123456789", "title": "Q1 Quarterly Report.pdf", "url": "https://app.box.com/file/123456789" }, { "id": "987654321", "title": "Q2 Quarterly Report.docx", "url": "https://app.box.com/file/987654321" } ] } </output> </examples>

Parameters (1 required)
Required
querystring

Search Files by Keyword

search_files_keyword
Full Description

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>

Parameters (1 required, 8 optional)
Required
querystring
Optional
ancestor_folder_idstring
created_at_rangestring
deleted_at_rangestring
fieldsarray
file_extensionsarray
limitinteger
Default: 30
mdfiltersarray
updated_at_rangestring

Search Files by Metadata

search_files_metadata
Full Description

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.

Parameters (2 required, 4 optional)
Required
fromstring
querystring
Optional
ancestor_folder_idstring
fieldsarray
limitinteger
Default: 30
query_paramsobject

Search Folders by Name

search_folders_by_name
Full Description

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>

Parameters (1 required, 5 optional)
Required
folder_namestring
Optional
ancestor_folder_idstring
created_at_rangestring
deleted_at_rangestring
limitinteger
Default: 30
updated_at_rangestring

Set File Metadata

set_file_metadata
Full Description

Creates or updates a metadata template instance on a file (POST when the template is not yet applied, PUT JSON Patch when it is). Use list_metadata_templates and get_metadata_template_schema first for scope, template_key, and field keys. Same tool handles both first-time application and updates. Cannot write Box Shield classification templates; those are administrator-managed and such requests are rejected.

Parameters (4 required)
Required
file_idstring

Box file ID for the file to attach or update metadata on.

metadata_fieldsobject

Field keys and values for this template. Use get_metadata_template_schema for valid field keys. Values must match the template (strings, numbers, or string arrays as required).

scopestring

Metadata template scope: use list_metadata_templates to discover (enterprise or global).

Options:enterpriseglobal
template_keystring

Template key from list_metadata_templates (e.g. templateKey).

Set Folder Metadata

set_folder_metadata
Full Description

Creates or updates a metadata template instance on a folder (POST when the template is not yet applied, PUT JSON Patch when it is). Use list_metadata_templates and get_metadata_template_schema first for scope, template_key, and field keys. Same tool handles both first-time application and updates. Does not apply to the root folder (ID "0"). Cannot write Box Shield classification templates; those are administrator-managed and such requests are rejected.

Parameters (4 required)
Required
folder_idstring

Box folder ID for the folder to attach or update metadata on. Root folder "0" is not supported.

metadata_fieldsobject

Field keys and values for this template. Use get_metadata_template_schema for valid field keys. Values must match the template (strings, numbers, or string arrays as required).

scopestring

Metadata template scope: use list_metadata_templates to discover (enterprise or global).

Options:enterpriseglobal
template_keystring

Template key from list_metadata_templates (e.g. templateKey).

Update Collaboration

update_collaboration
Full Description

Updates an existing Box collaboration by id.

Box API references (update collaborator) — file/folder: https://developer.box.com/reference/put-collaborations-id — hub (2025.0): https://developer.box.com/reference/v2025.0/put-hub-collaborations-id

Where to find collaboration_id

  • File or folder (collaboration_kind item): Use the MCP tool list_item_collaborations with the file/folder items; each collaboration entry includes the collaboration resource id. Or use the collaboration_id returned when the invite was created with create_collaboration for a file/folder.
  • Hub (collaboration_kind hub): Use the collaboration_id from the JSON returned by create_collaboration when target_type was hub (resource type hub_collaboration). This id is not the same as a file/folder collaboration from list_item_collaborations. Outside MCP, Box lists hub collaborations via [Get hub collaborations](https://developer.box.com/reference/v2025.0/get-hub-collaborations) (hub_id query parameter).

Item (file or folder) — [Update collaboration](https://developer.box.com/reference/put-collaborations-id). Set collaboration_kind to item and collaboration_id from list_item_collaborations. Provide at least one of: role, status, can_view_path (folder collaborations only), or expires_at (ISO 8601 datetime string, enterprise-dependent). Allowed role values: editor, viewer, previewer, uploader, previewer uploader, viewer uploader (co-owner is not permitted via this tool). See the Box API reference for which fields apply for a given collaboration state.

Hub — [Update hub collaboration](https://developer.box.com/reference/v2025.0/put-hub-collaborations-id) (2025.0). Set collaboration_kind to hub and collaboration_id to the hub collaboration id (the id returned when the hub invite was created, or from hub-collaboration listing APIs). This is not the same id as a file/folder collaboration from list_item_collaborations; for those use collaboration_kind item and [Update collaboration](https://developer.box.com/reference/put-collaborations-id). Set role to editor or viewer (co-owner is not permitted via this tool). External collaborators (users outside the hub owner’s enterprise) are often limited to viewer (or similar) by admin policy; Box may return invalidPermissionRoleForExternalCollaborator in the error JSON if you request a role that is not allowed for that user. Other 400/403 responses can mean insufficient permission to change roles on the hub (often owner/co-owner).

Examples (JSON):

Change role on a file/folder collaboration: {"collaboration_kind":"item","collaboration_id":"123","role":"viewer"}

Accept a pending invite: {"collaboration_kind":"item","collaboration_id":"456","status":"accepted"}

Change hub collaborator role: {"collaboration_kind":"hub","collaboration_id":"789","role":"editor"}

To add a new collaborator, use the create_collaboration tool (https://developer.box.com/reference/post-collaborations and https://developer.box.com/reference/v2025.0/post-hub-collaborations).

Parameters (2 required, 4 optional)
Required
collaboration_idstring
collaboration_kindstring
Options:itemhub
Optional
can_view_pathboolean
expires_atstring
rolestring
Options:editorviewerprevieweruploaderpreviewer uploaderviewer uploader
statusstring

Update File Properties

update_file_properties
Full Description

Updates file metadata: name, description, tags, and collections.

Updatable fields:

  • name
  • File name with extension (max 255 chars). IMPORTANT: Always preserve the original file extension unless explicitly instructed to change it.
  • description
  • File description (max 256 chars)
  • tags
  • Tags array (max 100)
  • collections
  • Collections array with format [{"id": "collection_id"}]

<examples> Rename file: <input>{"file_id": "123456789", "name": "Q1-Report-2024.pdf"}</input>

Update description and tags: <input> { "file_id": "987654321", "description": "Q1 2024 financial report", "tags": ["finance", "2024"] } </input>

Multiple updates: <input> { "file_id": "444555666", "name": "Updated-Doc.docx", "tags": ["project"], "collections": [{"id": "98765"}] } </input> </examples>

Parameters (1 required, 4 optional)
Required
file_idstring

The unique identifier of the file to update

Optional
collectionsarray

Array of collection objects with IDs to add the file to

descriptionstring

New description for the file

namestring

New name for the file (including extension)

tagsarray

Array of tags to apply to the file

Update Folder Properties

update_folder_properties
Full Description

Updates folder metadata: name, description, tags, and collections.

Updatable fields:

  • name
  • Folder name (max 255 chars, no / \ . .. or leading/trailing spaces)
  • description
  • Folder description (max 256 chars)
  • tags
  • Tags array (max 100)
  • collections
  • Collections array with format [{"id": "collection_id"}]

<examples> Rename folder: <input>{"folder_id": "123456789", "name": "Q1 2024 Reports"}</input>

Update description and tags: <input> { "folder_id": "987654321", "description": "Q1 2024 financial reports", "tags": ["finance", "2024"] } </input>

Multiple updates: <input> { "folder_id": "444555666", "name": "Project Folder", "tags": ["project"], "collections": [{"id": "98765"}] } </input> </examples>

Parameters (1 required, 4 optional)
Required
folder_idstring

The unique identifier of the folder to update

Optional
collectionsarray

Array of collection objects with IDs to add the folder to

descriptionstring

New description for the folder

namestring

New name for the folder

tagsarray

Array of tags to apply to the folder

Update Hub

update_hub
Full Description

Updates the title or description of a specific hub. This tool allows you to modify hub settings including title and description to keep hub information current and relevant.

You can update one or more properties of a hub by providing the hub ID and the fields you want to change. Only the fields you specify will be updated; others remain unchanged.

<examples> Update hub title: <input> { "hub_id": "12345", "title": "Updated Marketing Team Hub" } </input>

Update both title and description: <input> { "hub_id": "12345", "title": "Q4 Planning Hub", "description": "Collaborative workspace for Q4 strategic planning and resource coordination" } </input>

Update only description: <input> { "hub_id": "67890", "description": "Updated project description with new requirements and objectives" } </input> </examples>

Parameters (1 required, 2 optional)
Required
hub_idstring

The unique numeric identifier of the hub to update

Optional
descriptionstring

New description for the hub

titlestring

New title for the hub

Update Metadata Template

update_metadata_template
Full Description

Updates a metadata template schema (PUT /2.0/metadata_templates/{scope}/{template_key}/schema). Use scope and template_key from list_metadata_templates or get_metadata_template_schema. Each operation needs op; use camelCase in data per Box API.

Shield classifications (template_key "securityClassification-6VMVochwUWo", fieldKey "Box__Security__Classification__Key"): set color in data.staticConfig.classification.colorID (0=Yellow, 1=Orange, 2=Red, 3=Purple, 4=LightBlue, 5=DarkBlue, 6=Green, 7=Grey). Top-level color_id/colorID is auto-rewritten before the API call.

On success returns updated template JSON.

<examples> Rename the template: <input> { "scope": "enterprise", "template_key": "sampleContract", "operations": [ { "op": "editTemplate", "data": { "displayName": "Rename template" } } ] } </input> <output> { "id": "f7a9891f", "scope": "enterprise_12345", "templateKey": "sampleContract", "displayName": "Rename template", "hidden": false, "fields": [ { "type": "string", "key": "Name", "displayName": "Name" } ] } </output>

Add a string field: <input> { "scope": "enterprise", "template_key": "sampleContract", "operations": [ { "op": "addField", "data": { "type": "string", "key": "matterId", "displayName": "Matter ID" } } ] } </input> <output> { "id": "f7a9891f", "scope": "enterprise_12345", "templateKey": "sampleContract", "displayName": "Rename contract template", "fields": [ { "type": "string", "key": "counterparty", "displayName": "Counterparty" }, { "type": "string", "key": "matterId", "displayName": "Matter ID" } ] } </output> </examples>

Parameters (3 required)
Required
operationsarray

Atomic list of schema operations applied in order (see Box metadata template update API).

scopestring

Template scope (enterprise or global).

Options:enterpriseglobal
template_keystring

templateKey from list_metadata_templates or get_metadata_template_schema.

Upload File

upload_file
Full Description

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. 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>

Parameters (2 required, 1 optional)
Required
file_contentstring
file_namestring
Optional
parent_folder_idstring
Default: 0

Upload File Version

upload_file_version
Full Description

Upload new file version by providing the entire file contents to Box. This tool updates an existing file's version in Box using the given file ID and content. The file ID must correspond to an existing file; otherwise, an error will be returned. Upon success, the metadata details of the updated file version are returned in the response.

Key Feature:

  • Update file version with text content

Important: This tool can only accept text content, to upload binary files, use the get_upload_url tool instead.

<examples> upload a new file version in Box: { "file_id": "123", "file_content": "#This is my example markdown file", } <output> { "content": [ { "type": "text", "text": "{"file_id": "123", "file_name": "example.md", "size": 100, "created_at": "2025-01-01T00:00:00Z"}" } ] } </output> </examples>

Parameters (2 required)
Required
file_contentstring
file_idstring

Who Am I

who_am_i
Full Description

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>