MCP Server Box
Description
MCP Server Box is a Python project that integrates with the Box API to perform various operations such as file search, text extraction, AI-based querying, and data extraction. It leverages the box-sdk-gen
library and provides a set of tools to interact with Box files and folders.
The Model Context Protocol (MCP) is a framework designed to standardize the way models interact with various data sources and services. In this project, MCP is used to facilitate seamless integration with the Box API, enabling efficient and scalable operations on Box files and folders. The MCP Server Box project aims to provide a robust and flexible solution for managing and processing Box data using advanced AI and machine learning techniques.
Tools implemented
Box Tools
box_who_am_i
Get your current user information and check connection status.
Returns: User information string
box_authorize_app_tool
Start the Box application authorization process.
Returns: Authorization status message
box_search_tool
Search for files in Box.
Parameters:
query
(str): Search queryfile_extensions
(List[str], optional): File extensions to filter bywhere_to_look_for_query
(List[str], optional): Where to search (NAME, DESCRIPTION, FILE_CONTENT, COMMENTS, TAG)ancestor_folder_ids
(List[str], optional): Folder IDs to search within
Returns: Search results
box_read_tool
Read the text content of a Box file.
Parameters:
file_id
(str): ID of the file to read
Returns: File content
box_ask_ai_tool
Ask Box AI about a file.
Parameters:
file_id
(str): ID of the fileprompt
(str): Question for the AI
Returns: AI response
box_search_folder_by_name
Locate a folder by name.
Parameters:
folder_name
(str): Name of the folder
Returns: Folder ID
box_ai_extract_data
Extract data from a file using AI.
Parameters:
file_id
(str): ID of the filefields
(str): Fields to extract
Returns: Extracted data in JSON format
box_list_folder_content_by_folder_id
List folder contents.
Parameters:
folder_id
(str): ID of the folderis_recursive
(bool): Whether to list recursively
Returns: Folder content in JSON format with id, name, type, and description
Requirements
- Python 3.13 or higher
- Box API credentials (Client ID, Client Secret, etc.)
Installation
-
Clone the repository:
1git clone https://github.com/box-community/mcp-server-box.git 2cd mcp-server-box
-
Install
uv
if not installed yet:2.1 MacOS+Linux
1curl -LsSf https://astral.sh/uv/install.sh | sh
2.2 Windows
1powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Create and set up our project:
3.1 MacOS+Linux
1# Create virtual environment and activate it 2uv venv 3source .venv/bin/activate 4 5# Lock the dependencies 6uv lock
3.1 Windows
1# Create virtual environment and activate it 2uv venv 3.venv\Scripts\activate 4 5# Lock the dependencies 6uv lock
-
Create a
.env
file in the root directory and add your Box API credentials:BOX_CLIENT_ID=your_client_id BOX_CLIENT_SECRET=your_client_secret
Usage
Running the MCP Server
To start the MCP server, run the following command:
1uv --directory /path-to-the-project/mcp-server-box run src/mcp_server_box.py
Using Claude as the client
- Edit your
claude_desktop_config
.json
1code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- And add the following:
1{ 2 "mcpServers": { 3 "mcp-server-box": { 4 "command": "uv", 5 "args": [ 6 "--directory", 7 "/path-to-your-project/mcp-server-box", 8 "run", 9 "src/mcp_server_box.py" 10 ] 11 } 12 } 13}
- If CLaude is running restart it