データベース向け MCP ツールボックス、Gemini CLI、その他のエージェントで Spanner を使用する

このドキュメントでは、Model Context Protocol(MCP)をサポートするさまざまなデベロッパー ツールに Spanner インスタンスを接続する方法について説明します。

Gemini CLI には専用の Spanner 拡張機能を使用することをおすすめします。この拡張機能により、個別のサーバー接続を設定する必要がなくなります。Gemini CLI を使用するように Gemini Code Assist を構成すると、IDE で同様のセットアップのメリットが得られます。詳細については、Gemini CLI 拡張機能 - Spanner をご覧ください。

また、MCP をサポートする他の IDE やデベロッパー ツールは、データベース向け MCP ツールボックスを介して接続できます。MCP ツールボックスは、AI エージェントをデータに接続するように設計されたオープンソースの MCP サーバーです。認証や接続プーリングなどのタスクを処理し、IDE から自然言語でデータを直接操作できます。

Spanner で Gemini CLI 拡張機能を使用する

Gemini CLI との Spanner の統合は、標準の MCP Toolbox 接続と比較して追加機能を提供するオープンソース拡張機能を通じて行われます。この拡張機能は、インストール プロセスとツールのセットを提供するとともに、インストール、構成、使用例に関する詳細情報も提供します。Gemini CLI 拡張機能を使用する場合は、MCP Toolbox をインストールする必要はありません。詳細については、Gemini CLI 拡張機能 - Spanner をご覧ください。

spanner 拡張機能には、テーブルのリスト表示や SQL ステートメントと SQL DQL ステートメントの実行を行うツールが含まれています。

ツール 自然言語プロンプトの例
list_tables Spanner インスタンスにはどのようなテーブルがありますか?
execute_sql products テーブルにテストデータを挿入します。
execute_sql_dql アメリカで販売されている電子機器カテゴリの商品は何ですか?

始める前に

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

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

Spanner インスタンスを設定する

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

  2. Spanner のインスタンスとデータベースを作成または選択します

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

    • DQL クエリを実行してテーブルを一覧表示する Cloud Spanner データベース読み取り(roles/spanner.databaseReader)。

    • DML クエリを実行する Cloud Spanner データベース ユーザー(roles/spanner.databaseUser)。

  4. 使用する環境のアプリケーションのデフォルト認証情報(ADC)を構成します。

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

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

    linux/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/linux/amd64/toolbox

    darwin/arm64

    curl -O https://storage.googleapis.com/genai-toolbox/version/darwin/arm64/toolbox

    darwin/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/darwin/amd64/toolbox

    windows/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/windows/amd64/toolbox

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

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

    ./toolbox --version
    

エージェント ツールを設定する

このセクションでは、Spanner インスタンスに接続するようにさまざまなデベロッパー ツールを構成する方法について説明します。次のオプションからエージェント ツールを選択します。

Gemini CLI

  1. Gemini CLI をインストールします。
  2. 次のコマンドを使用して、GitHub リポジトリから Gemini CLI 用の Spanner 拡張機能をインストールします。
  3.   gemini extensions install https://github.com/gemini-cli-extensions/spanner
      
  4. Spanner インスタンスに接続するには、次の環境変数を設定します。
        export SPANNER_PROJECT: "PROJECT_ID"
        export SPANNER_INSTANCE: "INSTANCE_NAME"
        export SPANNER_DATABASE: "DATABASE_NAME"
        export SPANNER_DIALECT: "DIALECT_NAME"
        
    次のように置き換えます。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • INSTANCE_NAME: Spanner インスタンス名。
    • DATABASE_NAME: Spanner データベース名。
    • DIALECT_NAME: Spanner SQL 言語。googlesql または postgresql を指定します。未定義の場合、デフォルトは googlesql です。
  5. インタラクティブ モードで Gemini CLI を起動します。
        gemini
        
    CLI は、Gemini CLI の Spanner 拡張機能とそのツールを自動的に読み込みます。これらのツールを使用して、データベースを操作できます。

Gemini Code Assist

このアプローチでは MCP サーバーを手動で構成する必要がないため、Gemini CLI を使用するように Gemini Code Assist を構成することを強くおすすめします。ただし、MCP サーバーを手動で構成する手順は、次のセクションで確認できます。


1. VS Code に Gemini Code Assist 拡張機能をインストールします。
2. エージェント モードを有効にして、そのエージェント モデルを Gemini に切り替えます。
3. プロジェクトのルート ディレクトリに .gemini という名前のフォルダを作成し、その中に settings.json ファイルを作成します。
4. settings.json ファイルに、Spanner の言語に基づいて次のいずれかの構成を追加します。
5. 次の変数を独自の値に置き換えます。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • INSTANCE_NAME: Spanner インスタンス名。
  • DATABASE_NAME: Spanner データベース名。
6. ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Claude Code


1. Claude Code をインストールします。
2. .mcp.json ファイルが存在しない場合は、プロジェクトのルートに作成します。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Claude for Desktop


1. Claude for Desktop を開き、[設定] に移動します。
2. [デベロッパー] タブで [構成を編集] をクリックして、構成ファイルを開きます。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. Claude for Desktop を再起動します。
5. 新しいチャット画面に、新しい MCP サーバーのハンマー(MCP)アイコンが表示されます。

Cline


1. VS Code で Cline 拡張機能を開き、[MCP Servers] アイコンをクリックします。
2. [Configure MCP Servers] をタップして構成ファイルを開きます。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

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

Cursor


1. プロジェクトのルートに .cursor ディレクトリが存在しない場合は作成します。
2. .cursor/mcp.json ファイルが存在しない場合は作成し、開きます。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. Cursor を開き、[Settings] > [Cursor Settings] > [MCP] に移動します。サーバーが接続されると、緑色のアクティブ ステータスが表示されます。

Visual Studio Code(Copilot)


1. VS Code を開き、プロジェクトのルートに .vscode ディレクトリが存在しない場合は作成します。
2. .vscode/mcp.json ファイルが存在しない場合は作成し、開きます。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Windsurf


1. Windsurf を開き、Cascade アシスタントに移動します。
2. MCP アイコンをクリックし、[構成] をクリックして構成ファイルを開きます。
3. Spanner 言語に基づいて次のいずれかの構成を追加し、環境変数を独自の値に置き換えて、ファイルを保存します。

GoogleSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

PostgreSQL 言語を使用する Spanner:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}