セルフホストBox MCPサーバー
セルフホストBox MCPサーバー
セルフホストBox MCPサーバーとは、さまざまな操作 (ファイル検索、テキスト抽出、AIベースのクエリ実行、データ抽出など) を行うためにBox APIと統合されているPythonプロジェクトです 。Box Pythonの次世代SDKライブラリを利用し、Boxのファイルやフォルダを操作するための一連のツールを提供します。
インストール
前提条件
- Python
3.13以上 - Box Platformアプリの資格情報 (クライアントID、クライアントシークレット)
セルフホストBox MCPサーバーを設定するには、このセクションの手順に従います。
- リポジトリを複製します。
git clone https://github.com/box-community/mcp-server-box.git
cd mcp-server-box
uvがマシンにインストールされていない場合はインストールします。
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
その後ターミナルを再起動し、uvコマンドが取得されることを確認します。
- プロジェクトを作成して設定します。
# Create virtual environment and activate it
uv venv
source .venv/bin/activate
# Lock the dependencies
uv lock
# Create virtual environment and activate it
uv venv
.venv\Scripts\activate
# Lock the dependencies
uv lock
- ルートディレクトリに
.envファイルを作成し、Box Platformアプリの資格情報を入力します。
BOX_CLIENT_ID=your_client_id
BOX_CLIENT_SECRET=your_client_secret
動画によるチュートリアルを視聴して、Box MCPツールの使用例を確認することもできます。
Box MCPサーバーのローカルでの実行
Box MCPサーバーを起動するには、次のコマンドを実行します。
uv --directory /Users/USER_NAME/PATH_TO_PROJECT/mcp-server-box run src/mcp_server_box.py
ローカルの設定が反映されるようにパスを更新します。
CursorをBox MCPクライアントとして使用する
前提条件:
- Cursorデスクトップアプリをダウンロードする
CursorでBox MCPサーバーの使用を開始するには、以下の手順に従います。
- Cursorアプリを開きます。
- 歯車アイコンをクリックして設定を開きます。
- [Cursor Settings] タブで [
MCP] を選択します。 - [
Add new global MCP server] ボタンをクリックします。これにより、mcp.jsonファイルが開きます。 - ローカルの設定を使用して値を更新し、次のJSONを貼り付けます。
{
"mcpServers": {
"box": {
"command": "uv",
"args": [
"--directory",
"/Users/USER_NAME/PATH_TO_PROJECT/mcp-server-box",
"run",
"src/mcp_server_box.py"
]
}
}
}
mcp.jsonファイルを保存して閉じます。- 必要に応じ て、Cursorを再起動します。
box_authorize_app_toolツールを使用して、Box MCPの使用を開始します。
ClaudeをBox MCPクライアントとして使用する
前提条件:
- Claude for Desktopクライアントをダウンロードする
- 必要に応じて、VS Codeの
codeコマンドを設定する
Claude for DesktopでBox MCPを設定するには、以下の手順に従います。
claude_desktop_config.jsonを編集します。
ターミナルで次のコマンドを実行します。
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
または、Claudeのメインのナビゲーションで [Settings] を選択します。[Developers] タブを選択し、[Edit Config] をクリックします。これにより、claude_desktop_config.jsonを含むフォルダウィンドウが表示されます。
- 構成を追加します。
{
"mcpServers": {
"mcp-server-box": {
"command": "uv",
"args": [
"--directory",
"/Users/Users/USER_NAME/PATH_TO_PROJECT/mcp-server-box",
"run",
"src/mcp_server_box.py"
]
}
}
}
- Claudeデスクトップアプリを再起動します。
box_authorize_app_toolを使用してBox MCPサーバーを認証します。
利用可能なツール
認証と承認
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| コンテキストからBoxクライアントを取得するためのヘルパー関数 |
| Boxクライアントインスタンス |
| 現在のユーザーの情報を取得します |
| ユーザー情報の文字列 |
| Boxアプリケーションを承認します | なし | 承認ステータスメッセージ |
検索とナビゲーション
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| Box内のファイルを検索します |
| 改行で区切られた、ファイル名とIDのリスト |
| 名前でフォルダを検索します |
| フォルダIDと情報 |
| フォルダコンテンツのリストを取得します |
| JSON形式のフォルダコンテンツ |
ファイル操作
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| Boxファイルのテキストコンテンツを読み取ります |
| ファイルコンテンツ |
| ローカルパスからファイルをアップロードします |
| ファイルの詳細またはエラーメッセージ |
| コンテンツをファイルとしてアップロードします |
| アップロードの成功を示すメッセージ |
| Boxからファイルをダウンロードします |
| ファイルコンテンツまたは保存の確認 |
| ファイルからテキストコンテンツを抽出します |
| テキストのファイルコンテンツ |
フォルダ管理
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| フォルダを作成、更新、または削除します |
| フォルダの詳細を含むステータスメッセージ |
Box AI
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| ファイルについてBox AIに質問します |
| AIの応答 |
| 複数のファイルを使用してBox AIにクエリを実行します |
| AIが生成した回答 |
| HubについてBox AIに質問します |
| AIの応答 |
| AIを使用してファイルからデータを抽出します |
| JSON形式で抽出されたデータ |
コラボレーション
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| 特定のファイルのすべてのコラボレーションのリストを取得します |
| コラボレーションのリスト (JSON形式) |
| 特定のフォルダのすべてのコラボレーションのリストを取得します |
| コラボレーションのリスト (JSON形式) |
| 特定のコラボレーションを削除します |
| 削除の確認 |
| グループをコラボレータとしてファイルに追加します |
| 作成されたコラボレーションの詳細 |
グループ
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| 名前でグループを検索します (部分一致) |
| 一致するグループのリスト (JSON形式) |
| 特定のグループのすべてのメンバーのリストを取得します |
| グループメンバーのリスト (JSON形式) |
| 特定のユーザーが属しているすべてのグループを取得します |
| グループのリスト (JSON形式) |
ユーザー
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| Boxアカウント内のすべてのユーザーのリストを取得します |
| ユーザーのリスト (JSON形式) |
| 名前でユーザーを検索します (完全一致) |
| ユーザーの詳細 (JSON形式) |
| メールアドレスでユーザーを検索します (完全一致) |
| ユーザーの詳細 (JSON形式) |
| 名前またはメールアドレスでユーザーを検索します (部分一致) |
| 一致するユーザーのリスト (JSON形式) |
Boxの共有リンク
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| ファイルの共有リンクを取得します |
| 共有リンクの詳細 (JSON形式) |
| ファイルの共有リンクを作成または更新します |
| 作成/更新された共有リンクの詳細 (JSON形式) |
Box Toolsのウェブリンク
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| Boxウェブリンクを作成します |
| 作成されたウェブリンクの詳細 (JSON形式) |
| IDを指定してBoxウェブリンクを取得します |
| ウェブリンクの詳細 (JSON形式) |
| IDを指定してBoxウェブリンクを更新します |
| 更新されたウェブリンクの詳細 (JSON形式) |
Box Doc Gen
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| テンプレートを使用してドキュメントを生成します |
| 一括生成の結果 |
| IDを指定してDoc Genジョブを取得します |
| JSON形式のジョブの詳細 |
| すべてのDoc Genジョブのリストを取得します |
| JSON形式のジョブのリスト |
| 特定のバッチ内にあるジョブのリストを取得します |
| バッチジョブの詳細 |
| ファイルをテンプレートとして設定します |
| テープレートの詳細 |
| すべての使用可能なテンプレートのリストを取得します |
| テンプレートのリスト |
| テンプレートの設定を削除します |
| 削除の確認 |
| テンプレートの詳細を取得します |
| テープレートの詳細 |
| テンプレートタグのリストを取得します |
| タグのリスト |
| テンプレートを使用してジョブのリストを取得します |
| ジョブの詳細 |
Boxメタデータ
ツール | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| キーを指定してメタデータテンプレートを取得します。 |
| 指定したキーに関連付けられているメタデータテンプレート。 |
| 名前を指定してメタデータテンプレートを取得します。 |
| 指定した名前に関連付けられているメタデータテンプレート。 |
| メタデータテンプレートを作成します。 |
| 作成されたメタデータテンプレート。 |
| ファイルにメタデータインスタンスを設定します。 |
| ファイルに関連付けられているメタデータインスタンス。 |
| ファイルのメタデータインスタンスを更新します。 |
| メタデータ更新後のBox APIからのレスポンス。 |
| ファイルのメタデータインスタンスを削除します。 |
| メタデータ削除後のBox APIからのレスポンス。 |
トラブルシューティング
Claude for DesktopでMCPサーバーを実行したときにmacOSでError: spawn uv ENOENTが発生した場合は、以下を実行できます。
- Homebrewを使用して
uvを削除し手再インストールする:brew install uv - 構成内に
uv実行可能ファイルのフルパスを指定する
/Users/USER_NAME/.local/bin/uv --directory /Users/USER_NAME/local/mcp-server-box run src/mcp_server_box.py
設定に関連するその他の問題が発生した場合は、BoxのDeveloper Communityフォーラムに質問を投稿してください (英語のみ)。