このドキュメントでは、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 |
アメリカで販売されている電子機器カテゴリの商品は何ですか? |
始める前に
Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。
Spanner インスタンスを設定する
このタスクを完了するために必要なロールと権限を構成します。LLM エージェントを呼び出すユーザーには、データベース レベルで次のロールが必要です。
DQL クエリを実行してテーブルを一覧表示する Cloud Spanner データベース読み取り(
roles/spanner.databaseReader
)。DML クエリを実行する Cloud Spanner データベース ユーザー(
roles/spanner.databaseUser
)。
使用する環境のアプリケーションのデフォルト認証情報(ADC)を構成します。
MCP ツールボックスをインストールする
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
バイナリを実行可能にします。
chmod +x toolbox
インストールを確認します。
./toolbox --version
エージェント ツールを設定する
このセクションでは、Spanner インスタンスに接続するようにさまざまなデベロッパー ツールを構成する方法について説明します。次のオプションからエージェント ツールを選択します。
Gemini CLI
- Gemini CLI をインストールします。
- 次のコマンドを使用して、GitHub リポジトリから Gemini CLI 用の Spanner 拡張機能をインストールします。
- 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
です。
- インタラクティブ モードで Gemini CLI を起動します。
CLI は、Gemini CLI の Spanner 拡張機能とそのツールを自動的に読み込みます。これらのツールを使用して、データベースを操作できます。gemini
gemini extensions install https://github.com/gemini-cli-extensions/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 データベース名。
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" } } } }