Skip to main content
Glama

Box MCP Server

A Model Context Protocol (MCP) server that provides secure access to Box cloud storage without local file persistence. This server enables Large Language Models to interact with Box files, folders, and AI capabilities through a standardized MCP interface.

Features

šŸ”§ 8 Core Tools (Intent-Based)

  • box_save_documents - Batch upload documents with automatic folder creation

  • box_read_document - Stream document content without local storage

  • box_manage_folders - Create and organize folder structures

  • box_explore_storage - Navigate Box directory tree with filtering

  • box_share_content - Create shared links and manage collaborations

  • box_analyze_document - Use Box AI for document analysis, Q&A, and extraction

  • box_search_content - Natural language search with advanced filtering

  • box_retrieve_documents - Batch retrieval with optional local saving

šŸ“š MCP Resources (6 URI Templates)

  • box://file/{fileId} - Access specific Box files by ID

  • box://folder/{folderId} - Access specific Box folders by ID

  • box://search?q={query} - Search Box content with query parameters

  • box://user/storage - Current user's storage quota and usage

  • box://user/recent - Recently accessed files

  • box://folder/root/tree - Complete folder structure from root

šŸ’¬ MCP Prompts (5 Interactive Templates)

  • share_file - Create shared links with customizable permissions

  • analyze_document - Use Box AI to analyze documents with specific prompts

  • organize_folder - Organize files using different strategies (by date, type, name)

  • bulk_upload - Upload multiple files with folder organization

  • collaboration_setup - Set up collaboration with specific users and roles

šŸ”’ Security & Compliance

  • Zero Local Storage - All documents remain in Box cloud

  • Multi-Auth Support - OAuth 2.0, Client Credentials Grant (CCG), JWT

  • Encrypted Credentials - Secure token storage and auto-refresh

  • Enterprise-Grade - Leverages Box's enterprise security features

Related MCP server: Salesforce DX MCP Server

Quick Start

Prerequisites

  1. Box Developer Account - Create at Box Developer Console

  2. Node.js 18+ - Download Node.js

  3. Box App Configuration - OAuth 2.0 or Client Credentials Grant app

Installation

# Clone and install
git clone https://github.com/your-org/mcp-box
cd mcp-box
npm install

# Build the server
npm run build

Configuration

Create a .env file in the project root:

# Authentication Method (oauth | ccg)
AUTH_TYPE=oauth

# Box App Credentials
BOX_CLIENT_ID=your_client_id_here
BOX_CLIENT_SECRET=your_client_secret_here
BOX_ENTERPRISE_ID=your_enterprise_id_here  # Required for CCG

# Server Configuration
MCP_TRANSPORT=stdio              # stdio | http
LOG_LEVEL=info                   # debug | info | warn | error
NODE_ENV=development

Authentication Setup

Step 1: Box Developer Console Setup

  1. Go to Box Developer Console: https://developer.box.com/

  2. Create Custom App:

    • Click "Create New App"

    • Select "Custom App"

    • Choose "User Authentication (OAuth 2.0)"

    • Name your app (e.g., "MCP Box Server")

  3. Configure OAuth Settings:

    • Redirect URI: http://localhost:3000/auth/callback

    • Application Scopes: Select all needed permissions:

      • āœ… Read all files and folders

      • āœ… Write all files and folders

      • āœ… Manage users

      • āœ… Manage enterprise properties

    • Save your configuration

  4. Get Credentials:

    • Copy Client ID

    • Copy Client Secret

Step 2: Configure Your .env File

# OAuth 2.0 Configuration
AUTH_TYPE=oauth
BOX_CLIENT_ID=your_client_id_here
BOX_CLIENT_SECRET=your_client_secret_here

# Server Configuration
MCP_TRANSPORT=stdio
LOG_LEVEL=info
NODE_ENV=development

Step 3: First-Time Authentication

# Build and start the server
npm run build
npm start

What happens:

  1. Server detects no stored OAuth tokens

  2. Opens browser to Box login page automatically

  3. You log in with your Box credentials

  4. Box redirects back with authorization code

  5. Server exchanges code for access/refresh tokens

  6. Tokens are securely stored for future use

Client Credentials Grant (Enterprise)

Step 1: Box Developer Console Setup

  1. Go to Box Developer Console: https://developer.box.com/

  2. Create Custom App:

    • Click "Create New App"

    • Select "Custom App"

    • Choose "Server Authentication (Client Credentials Grant)"

    • Name your app (e.g., "MCP Box Server Enterprise")

  3. Configure CCG Settings:

    • Application Scopes: Select enterprise permissions needed

    • Enterprise ID: Note your enterprise ID

    • Submit for Approval: Enterprise admin must approve

  4. Get Credentials:

    • Copy Client ID

    • Copy Client Secret

    • Copy Enterprise ID

Step 2: Configure Your .env File

# CCG Configuration
AUTH_TYPE=ccg
BOX_CLIENT_ID=your_client_id
BOX_CLIENT_SECRET=your_client_secret
BOX_ENTERPRISE_ID=your_enterprise_id

# Server Configuration
MCP_TRANSPORT=stdio
LOG_LEVEL=info
NODE_ENV=production

Step 3: Enterprise Admin Approval

  • Enterprise admin must approve the app in Box Admin Console

  • Once approved, server will authenticate automatically

Integration Guides

Claude Code Integration

Add this MCP server to Claude Code for seamless Box integration:

  1. Build the server:

    npm run build
  2. Add to Claude Code configuration:

    Option A: Via Claude Code UI

    • Open Claude Code settings

    • Navigate to "MCP Servers"

    • Add new server with these settings:

      • Name: box-mcp-server

      • Command: node

      • Args: ["/Users/your-username/path-to/mcp-box/dist/index.js"]

      • Environment Variables: Add your .env variables

    Option B: Edit Claude Code config file

    {
      "mcpServers": {
        "box-mcp-server": {
          "command": "node",
          "args": ["/Users/your-username/path-to/mcp-box/dist/index.js"],
          "env": {
            "AUTH_TYPE": "oauth",
            "BOX_CLIENT_ID": "your_client_id",
            "BOX_CLIENT_SECRET": "your_client_secret"
          }
        }
      }
    }
  3. Restart Claude Code and verify the server appears in MCP servers list

  4. Test the integration:

    @box-mcp-server List my recent Box files
    @box-mcp-server Analyze the quarterly report in folder "Reports/2024"
    @box-mcp-server Share the presentation with my team

Claude Desktop Integration

For Claude Desktop, add to your MCP configuration:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "box-mcp-server": {
      "command": "node",
      "args": ["/path/to/mcp-box/dist/index.js"],
      "env": {
        "AUTH_TYPE": "oauth",
        "BOX_CLIENT_ID": "your_client_id",
        "BOX_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Other MCP Clients

The server supports standard MCP transports:

STDIO (Default):

node dist/index.js

HTTP with Server-Sent Events:

MCP_TRANSPORT=http MCPSERVER_PORT=3000 AUTH_TOKEN=your_secret node dist/index.js

Usage Examples

Document Management

// Save multiple documents with organization
{
  "name": "box_save_documents",
  "arguments": {
    "documents": [
      {
        "content": "Meeting notes content...",
        "path": "Projects/2024/Q4/meeting-notes.md",
        "metadata": { "classification": "Internal" }
      }
    ],
    "options": {
      "createFolders": true,
      "shareSettings": { "createLink": true, "linkAccess": "company" }
    }
  }
}

AI-Powered Analysis

// Analyze document with Box AI
{
  "name": "box_analyze_document",
  "arguments": {
    "path": "Contracts/partnership-agreement.pdf",
    "analysisType": "qa",
    "options": {
      "questions": ["What are the key payment terms?", "When does this contract expire?"]
    }
  }
}
// Natural language search
{
  "name": "box_search_content",
  "arguments": {
    "query": "quarterly financial reports from 2024 with revenue data",
    "filters": {
      "extensions": ["pdf", "xlsx"],
      "dateRange": { "from": "2024-01-01" },
      "includeContent": true
    }
  }
}

MCP Protocol Support

This server implements the full MCP specification (v2025-06-18):

  • āœ… Tools - 8 intent-based tools with structured input/output

  • āœ… Resources - 6 Box URI templates for LLM context

  • āœ… Prompts - 5 interactive templates for common workflows

  • āœ… Transports - STDIO and HTTP/SSE support

  • āœ… Authentication - Bearer token support for HTTP transport

  • āœ… Error Handling - Comprehensive error responses with user-friendly messages

Development

Running Tests

# Unit + Integration tests
npm test

# E2E tests (requires Box credentials)
npm run test:e2e

# Test coverage
npm run test:coverage

Development Server

# Watch mode with hot reload
npm run dev

# Debug mode with verbose logging
LOG_LEVEL=debug npm start

Project Structure

mcp-box/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ server.ts           # MCP server implementation
│   ā”œā”€ā”€ index.ts           # Entry point & transport setup
│   ā”œā”€ā”€ types.ts           # TypeScript definitions
│   ā”œā”€ā”€ box/               # Box API client
│   └── tools/             # Individual MCP tools
ā”œā”€ā”€ tests/                 # Test suites
ā”œā”€ā”€ docs/                  # Planning documentation
└── dist/                  # Compiled JavaScript

API Reference

Tools

Tool

Description

Key Features

box_save_documents

Upload files to Box

Batch upload, auto-folder creation, metadata

box_read_document

Read file content

Stream content, no local storage, text extraction

box_manage_folders

Folder operations

Create, move, rename, delete, batch operations

box_explore_storage

Navigate folders

Tree view, filtering, size info

box_share_content

Sharing & collaboration

Shared links, collaborator management

box_analyze_document

Box AI analysis

Summarize, extract, Q&A, classify, translate

box_search_content

Content search

Natural language, filters, metadata search

box_retrieve_documents

Download files

Batch download, optional local save

Resources

URI Template

Description

box://file/{fileId}

Access file by ID

box://folder/{folderId}

Access folder by ID

box://search?q={query}

Search results

box://user/storage

Storage quota info

box://user/recent

Recent files

box://folder/root/tree

Complete folder tree

Prompts

Prompt

Purpose

Arguments

share_file

Create shared links

fileId, access, password, expiresAt

analyze_document

AI document analysis

fileId, analysisType, prompt, focus

organize_folder

File organization

folderId, strategy, createSubfolders

bulk_upload

Multiple file upload

targetFolder, createFolders, classification

collaboration_setup

Team collaboration

itemId, itemType, collaborators, role

Troubleshooting

Authentication Issues

OAuth 2.0 Troubleshooting

  • Browser doesn't open automatically?

    # Manual OAuth URL will be displayed in console
    # Copy and paste into browser
  • "Invalid redirect URI" error?

    • Check Box app configuration matches your server settings

    • Ensure redirect URI is exactly: http://localhost:3000/auth/callback

    • Verify no trailing slashes or extra characters

  • "Access denied" during login?

    • Check Box app has correct scopes enabled

    • Verify user has access to requested files/folders

    • Ensure app is not disabled in Box Admin Console

  • Tokens not persisting?

    • Check file system permissions for token storage

    • Verify .env file has correct credentials

    • Try deleting stored tokens and re-authenticating

CCG Troubleshooting

  • CCG Setup: Verify enterprise ID and app approval status

  • "App not authorized" error?

    • Enterprise admin must approve app in Box Admin Console

    • Check enterprise ID matches exactly

    • Verify app has required scopes enabled

  • Token Refresh: Check credential storage permissions

General Auth Issues

  • "Invalid client" errors: Double-check Client ID and Client Secret

  • "Unauthorized" responses: Verify auth method matches Box app type

  • Token refresh failures: Check network connectivity and Box API status

Common Errors

  • File Not Found: Use box_search_content to find correct file paths

  • Permission Denied: Verify Box app scopes and user permissions

  • Rate Limits: Server handles throttling automatically with exponential backoff

Debugging

# Enable debug logging
LOG_LEVEL=debug node dist/index.js

# Test MCP protocol compliance
npm run test:contract

# Validate Box API connectivity
npm run test:integration

Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Follow TDD: Write tests first, then implementation

  4. Ensure all tests pass: npm test

  5. Update documentation as needed

  6. Submit a pull request

License

MIT License - see LICENSE file for details.

Support


Secure document management meets AI - Keep your files in Box cloud while enabling powerful AI interactions through the Model Context Protocol.

Available Tools

10 tools
box_analyze_documentC

Use Box AI to analyze a document (summarize, Q&A, extract, translate)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoBox file path to analyze
pathsNoMultiple file paths for batch analysis
fileIdYesBox file ID to analyze
fileIdsNoMultiple file IDs for batch analysis
optionsNo
questionNoQuestion for Q&A mode
analysisTypeYesType of AI analysis to perform

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states that Box AI is used, but does not clarify side effects, permissions, cost/rate implications, output format, or whether the operation is read-only. The parenthetical operation list adds some context but is not enough for an AI-backed analysis tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no wasted words and the core idea is front-loaded. Its brevity is acceptable, though the parenthetical list is slightly incomplete relative to the analysisType enum, which prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 7 parameters, nested option objects, six analysis modes, and no output schema. The description only provides a one-line overview and omits usage context, behavior, return expectations, and guidance for choosing analysisType. That is insufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high at 86%, so the schema already documents most parameters well. The description adds minimal value by listing some analysis types, but it does not explain how options, question, or file identifiers interact. A baseline 3 is appropriate because the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('analyze') and resource ('document') and lists the main operations: summarize, Q&A, extract, translate. It is clearer than the bare tool name and broadly distinguishes it from read/search siblings, though it omits 'classify' and 'extract_structured' from the parenthetical and remains somewhat generic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives like box_read_document or box_search_content. The description simply says 'Use Box AI to analyze a document' but does not explain what makes it the right choice, what inputs it requires, or when a sibling would be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_explore_storageC

Return a tree structure of folders/files starting at a path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/
optionsNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It is transparent that this returns a tree structure and does not imply mutation, but it does not disclose how depth, permissions, errors, or edge cases are handled. The core behavior is clear; the edge behavior is silent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one front-loaded sentence with no filler. It communicates the core operation efficiently, though it is brief enough that it omits useful detail. The structure is appropriate, but it is not maximally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a nested options schema at 0% description coverage, the description is not complete enough for nuanced invocation. It does not describe return format, filtering behavior, default depth effects, or what 'pattern' applies to. The agent can guess a basic call but not fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only clarifies that 'path' is the starting location. The nested 'options' object and its properties — depth, sortBy, pattern, includeFiles, includeSizes, includeModified — are not explained beyond their schema names and defaults. The description does not compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Return') and resource ('tree structure of folders/files') with a path as the starting point. This clearly distinguishes it from siblings like box_search_content (which searches) and box_manage_folders (which manages). It does not explicitly name those alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus its siblings. The description implies browsing a storage hierarchy from a path, but it does not state when to prefer it over box_search_content or box_manage_folders. The agent must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_manage_foldersC

Create, move, rename, or delete folders by path or ID

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
foldersYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It communicates that this tool mutates folders and can delete them, but it does not disclose auth requirements, side effects, reversibility, scope limitations, or error/response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler and front-loads the key actions. It earns a 4 because it is concise, though the brevity contributes to the lack of behavioral and parameter detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has a multi-action nested schema, no annotations, and no output schema, yet the description provides only a high-level summary. It does not clarify per-action requirements, folder addressing rules, return values, or error handling, leaving significant gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no descriptions for action, folders, or any nested property, and the description does not explain how actions relate to fields like newName, newPath, or folderId. 'By path or ID' only hints at path/folderId and leaves the rest of the parameter semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly names the resource (folders) and the specific operations (create, move, rename, delete), along with the two addressing modes (path or ID). This clearly differentiates it from sibling document, search, and sharing tools, even though no sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives, nor any mention of when not to use it. The only implication is that folder management belongs here, but no explicit usage conditions or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_read_documentB

Read document content without saving locally

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoBox file path to read (alternative to fileId)
fileIdYesBox file ID to read
optionsNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states a non-destructive read behavior ('without saving locally') but does not disclose output format (text vs base64), permissions/authentication needs, size limits, or whether any network call or side effect occurs. This is a meaningful gap in a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste. The verb, resource, and key constraint are front-loaded, making it immediately scannable. Perfectly concise for the information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations leave the description responsible for explaining return values and invocation context. It only states 'read document content without saving locally'—it does not mention how to specify the file, what the response looks like, or that text/base64 can be chosen. An agent would not know what to expect when calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and all parameters have at least a brief description, but the tool description adds no parameter-level meaning. It does not mention that fileId and path are alternatives or that options.asText controls text/base64 output. The description fails to compensate for the moderate schema coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'read' and resource 'document content' plus the key constraint 'without saving locally', distinguishing it from sibling tools like box_save_documents and box_share_content. This is a clear, non-tautological purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case—reading content without persisting locally—but gives no explicit 'when to use' vs 'when not to use' guidance, and does not mention any sibling alternatives. An agent has to infer from the name and siblings that this is for reading rather than saving, sharing, or analyzing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_save_documentsB

Save multiple documents to Box storage with automatic folder creation

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNo
documentsYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does disclose one genuinely latent side-effect: 'automatic folder creation' — behavior an agent could not predict from the tool name alone. However, it stays silent on the failure profile of the overwrite=false default and on what happens when createFolders=false and the parent folder is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single ten-word sentence with the verb and resource front-loaded; 'multiple' and 'automatic folder creation' each add real scoping information. There is no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with zero annotations, no output schema, a nested array parameter, and nine siblings, the description is under-specified. The unstated consequence of the overwrite=false default, the absence of any routing context, and no note on return or permission behavior are material gaps an agent will encounter in real calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema description coverage is 0%, so the description must add parameter meaning. It partially does — 'multiple documents' maps to the documents array and 'automatic folder creation' explains the createFolders default — but it says nothing about the overwrite option or the expected path/content entry shape, which is only partially covered by nested schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Save') with a clear resource ('documents to Box storage') and adds distinguishing scope ('multiple') plus a distinctive behavioral trait ('automatic folder creation'). This cleanly separates it from siblings like box_read_document, box_manage_folders, and box_explore_storage without needing to inspect the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to prefer this tool over its nine siblings. There are no conditions, exclusions, or named alternatives — an agent must infer routing from the name alone, such as choosing box_manage_folders when no document content needs saving.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_search_contentC

Search Box for files and folders with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
filtersNo
optionsNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, but it discloses nothing beyond a bare 'search' verb. It does not reveal whether queries match file names, metadata, or content (relevant given the includeContent option), whether trashed items are excluded (includeTrashed defaults to false), or how results are ordered and paginated. The description adds no behavioral value beyond what the schema already exposes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single ten-word sentence with the verb and resource front-loaded ('Search Box') and zero filler. It is efficiently structured, though the brevity borders on under-specification rather than representing a model of economical completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three parameters containing nested objects with eight subfields, no output schema, and no annotations, yet the description is only ten words. An agent cannot determine what the folders filter expects (IDs, paths, or names), what extension format to use, what includeContent does, or what the result shape looks like. This is insufficient for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, yet it only hints that filters operate on files and folders — a loose mapping to the filters.type enum. The semantics of query, folders, extensions, limit, sortBy, direction, includeContent, and includeTrashed are left entirely unexplained. This adds only marginal value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') with a clear resource ('Box' for files and folders), immediately identifying the tool as a content discovery utility. It distinguishes itself from read/save/share/analyze siblings implicitly, though it does not explicitly differentiate from the closely related box_explore_storage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'With optional filters' describes capability, not invocation context — it says nothing about when to use this tool versus box_explore_storage for browsing or box_read_document for retrieving a found item. No prerequisites, exclusions, or alternative routing guidance is provided. An agent must infer the tool's role purely from its name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_share_contentC

Create shared links and/or add collaborators to files or folders

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
shareMethodYes
linkSettingsNo
collaboratorsNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral implications. It only states the action and omits side effects such as email notifications, access changes, reversibility, or behavior when both links and collaborators are requested. It is a minimal mutation statement without meaningful behavioral depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single direct sentence with no filler, and the primary action is front-loaded. It is efficient but sacrifices behavioral and parameter detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, nested objects, and zero schema description coverage, this one-phrase description is not sufficient for an agent to confidently invoke the tool. It leaves unclear how shareMethod drives the request structure, which fields are needed, and what outcome to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It loosely maps 'shared links' to linkSettings and 'collaborators' to the collaborators array, but it does not explain shareMethod values, parameter relationships, required combinations, or how items are identified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies specific verbs ('create', 'add') and resources ('shared links', 'collaborators', 'files or folders'), making the core operation clear. It does not explicitly distinguish from the update/remove sibling tools, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of prerequisites, and no exclusionary routing to alternatives like box_update_shared_link or box_update_collaborators. The create/add wording implies an initial-sharing use case, but that is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

box_update_collaboratorsB

Update collaborator roles or remove collaborators on a file/folder

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
itemIdYes
updatesYes
itemTypeYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It explicitly discloses the potentially destructive 'remove collaborators' action, which is useful. However, it does not mention permission requirements, whether updates are applied atomically, reversibility, or effects on existing access, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no redundant phrasing. It front-loads the core action and resource scope, wasting no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch mutation tool with no annotations and no output schema, the description is too thin. It lacks usage context, prerequisite information, and behavior around the updates array. An agent is left without enough guidance beyond the raw schema to know how to safely and correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that roles can be updated and collaborators removed, and that the target is a file or folder, which maps to itemType and the updates array. It does not describe path or itemId, and does not clarify how the updates array should be structured beyond what the schema already shows, so compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action — updating collaborator roles or removing collaborators — on a specific resource (file/folder). This clearly distinguishes it from siblings like box_update_shared_link, which targets shared link settings, and box_share_content, which is about sharing rather than permission changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to choose this tool over box_share_content or box_update_shared_link. The description implies a use case for managing collaborator permissions but does not state prerequisites, exclusions, or when an alternative would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.0
    • First observedbox_analyze_document
    • First observedbox_explore_storage
    • First observedbox_manage_folders
    • First observedbox_read_document
    • First observedbox_remove_shared_link
    • First observedbox_save_documents
    • First observedbox_search_content
    • First observedbox_share_content
    • First observedbox_update_collaborators
    • First observedbox_update_shared_link

TDQS

B3.2/5.0
Disambiguation3/5

Most tools target distinct operations, but box_share_content overlaps with box_update_shared_link, box_remove_shared_link, and box_update_collaborators since sharing can involve both links and collaborators. box_manage_folders is also broad and could be confused with box_explore_storage for folder operations.

Naming Consistency4/5

All tools share a consistent box_ prefix and mostly follow a verb_noun pattern. Minor inconsistencies exist such as box_save_documents vs box_read_document (plural mismatch) and the generic box_manage_folders instead of a specific verb like create/update/delete.

Tool Count5/5

Ten tools is well-scoped for a Box storage MCP server covering document operations, folder management, search, sharing, and AI analysis. Each tool earns its place without overwhelming the agent.

Completeness4/5

The tool set covers core storage workflows: save, read, organize, explore, search, share, and analyze. Gaps include no direct file deletion (only folders) and no explicit file download or versioning, but agents can work around most limitations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A Python server that enables interaction with Box files and folders through the Box API, allowing operations like file search, text extraction, and AI-based querying and data extraction.
    100
    101
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables secure interaction with Salesforce orgs through LLMs, providing tools for managing orgs, querying data, deploying metadata, running tests, and performing code analysis. Features granular access control and uses encrypted auth files to avoid exposing secrets in plain text.
    465
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Large Language Models to safely browse and interact with local file systems through secure directory listing, file reading, and content search capabilities. Built with comprehensive security controls and high-performance handling of large directories and files.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with Salesforce orgs through LLMs, providing tools for managing orgs, querying data, deploying metadata, running tests, and performing code analysis with granular access control and encrypted authentication.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dennisonbertram/mcp-box'

If you have feedback or need assistance with the MCP directory API, please join our Discord server