MCP を使用して LLM を Cloud Storage に接続する

このガイドでは、Cloud Storage を統合開発環境(IDE)とデベロッパー ツールに接続する方法について説明します。これを行うには、データベース向け MCP ツールボックスを使用して、マシンでローカル MCP サーバーを実行します。

データベース向け MCP ツールボックスは、Cloud Storage、BigQuery、AlloyDB、Spanner、Cloud SQL などのデータベースとデータストアのコネクタを含むオープンソース リポジトリです。このツールボックスは、OAuth2 と OIDC 認証をサポートし、オブザーバビリティのために Open Telemetry と統合されています。Cloud Storage ツールボックス統合を使用すると、LLM を使用して次の操作を行うことができます。

  • バケットの作成、一覧表示、削除。
  • バケットとオブジェクトのメタデータを取得します。
  • バケットの Identity and Access Management(IAM)ポリシーを取得します。
  • オブジェクトの読み取り、書き込み、アップロード、ダウンロード。
  • オブジェクトをコピーまたは移動します。

このガイドでは、次の IDE とツールの接続プロセスについて説明します。

  • Cursor
  • Windsurf(旧 Codeium)
  • Visual Studio Code(Copilot)
  • Cline(VS Code 拡張機能)
  • Claude Desktop
  • Claude Code
  • Antigravity

始める前に

  1. Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。

  2. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  3. Google Cloud プロジェクトで Cloud Storage API を有効にします

  4. このタスクを完了するために必要なロールと権限を構成します。LLM エージェントを呼び出すユーザーには、バケットまたはプロジェクト レベルで次のロールが必要です。

    • バケットの一覧表示、バケットの作成、空のバケットの削除を行うには: ストレージ管理者roles/storage.admin
    • オブジェクトの一覧表示、オブジェクトの読み取り、オブジェクト メタデータの取得、バケット メタデータの取得を行う場合: Storage オブジェクト閲覧者roles/storage.objectViewer
    • オブジェクトにコンテンツを書き込むか、オブジェクトをアップロードする: Storage オブジェクト作成者roles/storage.objectCreator
    • オブジェクトのコピー、移動、削除: Storage オブジェクト管理者roles/storage.objectAdmin
  5. 使用する環境のアプリケーションのデフォルト認証情報(ADC)を構成します。

Antigravity と接続する

カスタム構成を使用して、Cloud Storage を Antigravity に接続します。このコンテキストでは、カスタム MCP サーバーは、構成ファイル(mcp_config.json など)を編集して手動で構成するサーバーです。この手動構成は、組み込みの MCP ストア カタログからサーバーを直接インストールする代わりに使用されます。

カスタム MCP サーバーを構成する手順は次のとおりです。

  1. ターミナルで npx --version を実行して、npx がインストールされ、システムで正しく構成されていることを確認します。npx を含む Node.js をインストールする必要がある場合は、npm の Node.js と npm のダウンロードとインストール ガイドをご覧ください。
  2. Antigravity を開き、エディタのエージェント パネルの上部にある 「...」プルダウンを使用して MCP ストアに移動します。
  3. mcp_config.json ファイルを開くには、[MCP Servers] をクリックし、[Manage MCP Servers > View raw config] をクリックします。
  4. 次の構成を追加し、プレースホルダをプロジェクト ID に置き換えて保存します。
    {
      "mcpServers": {
        "storage": {
          "command": "npx",
          "args": ["-y","@toolbox-sdk/server","--prebuilt","cloud-storage","--stdio"],
          "env": {
              "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
          }
        }
      }
    }
    

MCP ツールボックスをインストールする

ツールボックスは、マシン上でローカルに実行されるオープンソースの Model Context Protocol(MCP)サーバーです。ローカル サーバーは、IDE と Cloud Storage 間の通信を管理します。この接続により、AI ツールに安全で効率的な環境が提供されます。

  1. MCP ツールボックスの最新バージョンをバイナリとしてダウンロードします。オペレーティング システム(OS)と CPU アーキテクチャに対応するバイナリを選択します。MCP ツールボックス バージョン 1.2.0 以降を使用する必要があります。

    linux/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/linux/amd64/toolbox
    

    VERSION は、MCP ツールボックスのバージョン(v1.2.0 など)に置き換えます。

    macOS darwin/arm64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/darwin/arm64/toolbox
    

    VERSION は、MCP ツールボックスのバージョン(v1.2.0 など)に置き換えます。

    macOS darwin/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/darwin/amd64/toolbox
    

    VERSION は、MCP ツールボックスのバージョン(v1.2.0 など)に置き換えます。

    windows/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/windows/amd64/toolbox
    

    VERSION は、MCP ツールボックスのバージョン(v1.2.0 など)に置き換えます。

  2. バイナリを実行可能にします。

    chmod +x toolbox
    
  3. インストールを確認します。

    ./toolbox --version
    

コンテナ イメージまたは Homebrew を使用してツールボックスを設定するには、ツールボックスをインストールするをご覧ください。

クライアントと接続を設定する

このセクションでは、MCP ツールボックスをインストールした後に Cloud Storage をツールに接続する方法について説明します。

Claude Code

  1. Claude Code をインストールします。
  2. .mcp.json ファイルが存在しない場合は、プロジェクトのルートに作成します。
  3. 構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  4. Claude Code を再起動して、新しい設定を読み込みます。Claude Code を再度開くと、構成された MCP サーバーが検出されます。

Claude Desktop

  1. Claude Desktop を開き、[Settings] に移動します。
  2. [Developer] タブで [Edit Config] をクリックして、構成ファイルを開きます。
  3. 構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  4. Claude Desktop を再起動します。
  5. 新しいチャット画面に、新しい MCP サーバーのハンマー(MCP)アイコンが表示されます。

Cline

  1. VS Code で Cline 拡張機能を開き、[MCP Servers] アイコンをクリックします。
  2. [Configure MCP Servers] をクリックして構成ファイルを開きます。
  3. 次の構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。

サーバーが正常に接続されると、緑色のアクティブ ステータスが表示されます。

Cursor

  1. プロジェクトのルートに .cursor ディレクトリが存在しない場合は作成します。
  2. .cursor/mcp.json ファイルが存在しない場合は作成してから、それを開きます。
  3. 次の構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  4. Cursor を開き、[Settings] > [Cursor Settings] > [MCP] に移動します。サーバーが接続されると、緑色のアクティブ ステータスが表示されます。

Visual Studio Code(Copilot)

  1. VS Code を開き、プロジェクトのルートに .vscode ディレクトリが存在しない場合は作成します。
  2. .vscode/mcp.json ファイルが存在しない場合は作成してから、それを開きます。
  3. 次の構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  4. VS Code ウィンドウを再読み込みします。MCP 互換の拡張機能が構成を自動的に検出し、サーバーを起動します。

Windsurf

  1. Windsurf を開き、Cascade アシスタントに移動します。
  2. MCP アイコンをクリックし、[Configure] をクリックして構成ファイルを開きます。
  3. 次の構成を追加し、プレースホルダを実際の値に置き換えて保存します。
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    次の変数を独自の値に置き換えます。
    • ./PATH/TO/toolbox: toolbox バイナリへのパス。
    • CLOUD_STORAGE_PROJECT: Google Cloud プロジェクト ID を指定する環境変数。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。

ビルド済みツール

MCP ツールボックスを Cloud Storage に接続すると、エージェントは次の事前構築済みツールを使用します。

  • list_buckets: 構成済みのプロジェクト内の Cloud Storage バケットを一覧表示します。
  • list_objects: バケット内のオブジェクトを一覧表示します。接頭辞と区切り文字のフィルタリングは省略可能です。
  • get_bucket_metadata: バケットのメタデータを返します。
  • get_bucket_iam_policy: バケットの IAM ポリシー バインディングを返します。
  • get_object_metadata: オブジェクトのメタデータを返します。
  • read_object: UTF-8 テキスト オブジェクト(またはバイト範囲)を読み取ります。8 MiB に制限されます。バイナリ オブジェクトは拒否されます。
  • download_object: オブジェクトをローカルパスにダウンロードします。
  • create_bucket: 構成されたプロジェクトにバケットを作成します。
  • delete_bucket: 空のバケットを削除します。
  • upload_object: ローカル ファイルをオブジェクトにアップロードします。
  • write_object: テキスト コンテンツをオブジェクトに直接書き込みます。
  • copy_object: オブジェクトを宛先オブジェクトにコピーします。
  • move_object: 同じバケット内のオブジェクトの名前をアトミックに変更します。
  • delete_object: オブジェクトを削除します。