The steps below demonstrate how to deploy the Box MCP server as a Meshagent service and chatbot within a Room for testing and development. Services and bots will automatically terminate when the Room closes.

Required Environment Variables

  • BOX_CLIENT_ID: Your Box application client ID
  • BOX_CLIENT_SECRET: Your Box application client secret

Steps

  1. Install Meshagent CLI and dependencies:
    pip install "meshagent[all]"
    
  2. Sign up and authenticate:
  3. Start MCP Server in a Meshagent Room:
    meshagent service test --room=test --role=agent --image=meshagent/mcp-box:latest \
      --env MESHAGENT_PORT=8001 \
      --env BOX_CLIENT_ID=your_client_id \
      --env BOX_CLIENT_SECRET=your_client_secret \
      --port="num=8001 path=/webhook liveness=/ type=meshagent.callable" \
      --name=mcp-box-service-test
    
    • This command launches the Box MCP server as an agent in a test room. The service shuts down automatically when the Room goes inactive.
  4. Start a chatbot in the Room with Box toolkit:
    meshagent chatbot join --room=test --agent-name=mcp-box --name=mcp-box --toolkit=mcp-box
    
    • The chatbot can now use the full Box MCP toolkit. Multiple toolkits can be enabled per agent if desired.
    • The output will include a room link for browser access.
  5. Interact via browser:
    • Open the Room URL provided from the previous command in your browser.
    • Send a message to the agent to interact with Box tools.

Project Level Deployment

Deploy Box MCP server tools and chatbots as persistent, project-wide services. These become available in every new Room in your Meshagent project—no need for manual or local startup.
  1. Create persistent MCP Box service:
    meshagent service create --role=agent --image=meshagent/mcp-box:latest \
      --env MESHAGENT_PORT=8001 \
      --env BOX_CLIENT_ID=your_client_id \
      --env BOX_CLIENT_SECRET=your_client_secret \
      --port="num=8001 path=/webhook liveness=/ type=meshagent.callable" \
      --name=mcp-box-service
    
  2. Create persistent MCP Box chatbot service:
    meshagent service create --image="meshagent/cli:latest" \
      --port="num=9001 path=/agent liveness=/ type=meshagent.callable participant_name=mcp-box-chatbot" \
      --env="MESHAGENT_PORT=9001" \
      --name="mcp-box-chatbot-service" \
      --command="meshagent chatbot service --agent-name=mcp-box-chatbot --toolkit=mcp-box"
    

Tools Available

Below are the available Box MCP tools provided by this integration:
Tool NameDescription
box_ai_extract_dataExtract data from a single file in Box using AI.
box_ask_ai_toolAsk box ai about a file in Box.
box_ask_ai_tool_multi_fileUse Box AI to analyze and respond to a prompt based on the content of multiple files.
box_authorize_app_toolAuthorize the Box application.
box_docgen_create_batch_toolGenerate documents from a Box Doc Gen template using a local JSON file.
box_docgen_get_job_toolFetch a single DocGen job by its ID.
box_docgen_list_jobs_by_batch_toolList all DocGen jobs that belong to a particular batch.
box_docgen_list_jobs_toolList all DocGen jobs for the current user (paginated).
box_docgen_template_create_toolMark a file as a Box Doc Gen template.
box_docgen_template_delete_toolUnmark a file as a Box Doc Gen template.
box_docgen_template_get_by_id_toolRetrieve details of a specific Box Doc Gen template.
box_docgen_template_list_jobs_toolList all Doc Gen jobs that used a specific template.
box_docgen_template_list_tags_toolList all tags on a Box Doc Gen template.
box_docgen_template_list_toolList all Box Doc Gen templates accessible to the user.
box_download_file_toolDownload a file from Box and return its content as a string.
box_hubs_ask_ai_toolAsk box ai about a hub in Box.
box_list_folder_content_by_folder_idList the content of a folder in Box by its ID.
box_manage_folder_toolManage Box folders - create, delete, or update.
box_read_toolRead the text content of a file in Box.
box_search_folder_by_nameLocate a folder in Box by its name.
box_search_toolSearch for files in Box with the given query.
box_upload_file_from_content_toolUpload content as a file to Box using the toolkit.
box_upload_file_from_path_toolUpload a file to Box from a filesystem path.
box_who_am_iGet the current user’s information.

Tool Details

box_ai_extract_data

Extract data from a single file in Box using AI. Parameters:
  • fields (string)
  • file_id (string)

box_ask_ai_tool

Ask box ai about a file in Box. Parameters:
  • file_id (string)
  • prompt (string)

box_ask_ai_tool_multi_file

Use Box AI to analyze and respond to a prompt based on the content of multiple files. Parameters:
  • file_ids (array)
  • prompt (string)

box_authorize_app_tool

Authorize the Box application. Start the Box app authorization process. Returns:
Message (str)

box_docgen_create_batch_tool

Generate documents from a Box Doc Gen template using a local JSON file. Parameters:
  • destination_folder_id (string)
  • file_id (string)
  • user_input_file_path (string)
  • output_type (string, optional)

box_docgen_get_job_tool

Fetch a single DocGen job by its ID. Parameters:
  • job_id (string)

box_docgen_list_jobs_by_batch_tool

List all DocGen jobs that belong to a particular batch. Parameters:
  • batch_id (string)
  • limit (string, optional)
  • marker (string, optional)

box_docgen_list_jobs_tool

List all DocGen jobs for the current user (paginated). Parameters:
  • limit (string, optional)
  • marker (string, optional)

box_docgen_template_create_tool

Mark a file as a Box Doc Gen template. Parameters:
  • file_id (string)

box_docgen_template_delete_tool

Unmark a file as a Box Doc Gen template. Parameters:
  • template_id (string)

box_docgen_template_get_by_id_tool

Retrieve details of a specific Box Doc Gen template. Parameters:
  • template_id (string)

box_docgen_template_list_jobs_tool

List all Doc Gen jobs that used a specific template. Parameters:
  • template_id (string)
  • limit (string, optional)
  • marker (string, optional)

box_docgen_template_list_tags_tool

List all tags on a Box Doc Gen template. Parameters:
  • template_id (string)
  • limit (string, optional)
  • marker (string, optional)
  • template_version_id (string, optional)

box_docgen_template_list_tool

List all Box Doc Gen templates accessible to the user. Parameters:
  • limit (string, optional)
  • marker (string, optional)

box_download_file_tool

Download a file from Box and return its content as a string. Supports text files (returns content directly) and images (returns base64-encoded).
Other file types will return an error message. Optionally saves the file locally.
Parameters:
  • file_id (string)
  • save_file (boolean, optional)
  • save_path (string, optional)

box_hubs_ask_ai_tool

Ask box ai about a hub in Box. Parameters:
  • hubs_id (string)
  • prompt (string)

box_list_folder_content_by_folder_id

List the content of a folder in Box by its ID. Parameters:
  • folder_id (string)
  • is_recursive (boolean, optional)

box_manage_folder_tool

Manage Box folders - create, delete, or update. Parameters:
  • action (string)
  • description (string, optional)
  • folder_id (string, optional)
  • name (string, optional)
  • parent_id (string, optional)
  • recursive (boolean, optional)

box_read_tool

Read the text content of a file in Box. Parameters:
  • file_id (string)

box_search_folder_by_name

Locate a folder in Box by its name. Parameters:
  • folder_name (string)

box_search_tool

Search for files in Box with the given query. Parameters:
  • query (string)
  • ancestor_folder_ids (string, optional)
  • file_extensions (string, optional)
  • where_to_look_for_query (string, optional)

box_upload_file_from_content_tool

Upload content as a file to Box using the toolkit. Parameters:
  • content (string)
  • file_name (string)
  • folder_id (string, optional)
  • is_base64 (boolean, optional)

box_upload_file_from_path_tool

Upload a file to Box from a filesystem path. Parameters:
  • file_path (string)
  • folder_id (string, optional)
  • new_file_name (string, optional)

box_who_am_i

Get the current user’s information. Useful for checking connection status. Returns:
Current user’s information (str)

Meshagent Resources

For further setup details, troubleshooting, and advanced options, consult the Meshagent documentation.