MCP Chat Analysis Server
# box-mcp-server
![CI](https://github.com/hmk/box-mcp-server/actions/workflows/jest.yml/badge.svg?branch=main)
## Usage
You will need:
- `BOX_USER_ID`
and one of the following:
- `BOX_JWT_BASE64` (recommended)
- `BOX_JWT_CONFIG_PATH`
- `BOX_JWT`
## Auth
### JSON Web Token (JWT) Authorization (recommended)
#### How to get a JWT
Using a JWT Config allows persistent connection to Box.
You will need a paid Box enterprise account, or you can sign up for a [free developer account](https://account.box.com/signup/n/developer) (make sure you are signed out of Box before clicking that link).
Visit the [Box Developer Console](https://app.box.com/developers/console) and create a new application. Make sure the authorization type is JSON Web Token.
Go to `Configuration > Add and Manage Public Keys` and Generate a Public/Private Keypair.
If you have not already, Box prompt you to set up 2 factor authentication and Authorize the application as an administrator in your box account. You will need to:
1. give the application `App + Enterprise Access`, and
2. enable the `make API calls using the as-user header` option
via the Box Application's Configuration page. **Make sure to reauthorize the application if you are modifying these settings**.
#### Base64 encoding JWT
To encode your JWT in Base64, you can use the following command in your terminal:
```sh
cat /path/to/your/box-jwt-config.json | base64
```
Replace `/path/to/your/box-jwt-config.json` with the actual path to your JWT configuration file. This will output the Base64 encoded JWT which you can then use in your environment variables.
#### Claude Desktop Configuration
```json
{
"mcpServers": {
"box": {
"command": "npx",
"args": ["box-mcp-server"],
"env": {
"BOX_JWT_BASE64": "YOUR_BASE64_ENCODED_JWT",
"BOX_USER_ID": "123456"
}
}
}
}
```
### Developer Token Authorization (easiest)
Using a developer token is the easiest way to integrate with Box, but will only last 60 minutes.
To get started, set the `BOX_DEV_TOKEN` to a [Box Developer Token](https://developer.box.com/guides/authentication/tokens/developer-tokens/).
Begin by visiting the [Box Developer Console](https://app.box.com/developers/console) and create a new application. The authorization type does not currently matter, as all support Box Developer Token.
Once your application is created, navigate to its configuration setings and click `Generate Developer Token`.
#### Claude Desktop Configuration
```json
{
"mcpServers": {
"box": {
"command": "npx",
"args": ["box-mcp-server"],
"env": {
"BOX_DEV_TOKEN": "YOUR_DEV_TOKEN_GOES_HERE"
}
}
}
}
```
## Capabilities
1. Searching files
2. Reading files
- [x] PDF
- [x] Word
- [ ] Others
## Development
### Prerequisites
Before you begin, ensure you have the following installed:
- Node.js (recommended v22 or higher)
- npm
- git
- dotenv
### Setting up Development Environment
To set up the development environment, follow these steps:
1. Fork the repository
- Click the "Fork" button in the top-right corner of this repository
- This creates your own copy of the repository under your Github acocunt
1. Clone Your Fork:
```sh
git clone https://github.com/YOUR_USERNAME/box-mcp-server.git
cd box-mcp-server
```
1. Add Upstream Remote
```sh
git remote add upstream https://github.com/hmk/box-mcp-server.git
```
1. Copy the dotenv file
```sh
cp .env.template .env
```
1. Install dependencies:
```sh
npm install
```
1. Run watch to keep index.js updated:
```sh
npm run watch
```
1. Start the model context protocol development server:
```sh
dotenv npx @modelcontextprotocol/inspector node PATH_TO_YOUR_CLONED_REPO/dist/index.js
```
1. If the development server did not load the environment variable correctly, set the `BOX_DEV_TOKEN` on the left-hand side of the mcp inspector.