このドキュメントでは、Model Context Protocol(MCP)をサポートする IDE に Spanner インスタンスを接続する方法について説明します。MCP は、大規模言語モデル(LLM)を Spanner などのデータソースに接続するためのオープン プロトコルです。接続後、LLM エージェントは Spanner インスタンスに対してクエリを実行し、操作できます。
このドキュメントでは、次の IDE の接続プロセスについて説明します。
- Claude Code
- Claude for Desktop
- Cline(VS Code 拡張機能)
- Cursor
- Visual Studio Code(Copilot)
- Windsurf(Codium)
- Gemini CLI
- Gemini Code Assist
始める前に
Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。
Spanner インスタンスを設定する
このタスクを完了するために必要なロールと権限を構成します。LLM エージェントを呼び出すユーザーは、インスタンスに接続するために Spanner データベース ユーザーロール(
roles/spanner.databaseUser
)または同等の Identity and Access Management 権限が必要です。このロールはデータベース レベルで必要です。使用する環境のアプリケーションのデフォルト認証情報(ADC)を構成します。
MCP ツールボックスをインストールする
MCP ツールボックスの最新バージョンをバイナリとしてダウンロードします。オペレーティング システム(OS)と CPU アーキテクチャに対応するバイナリを選択します。MCP ツールボックス バージョン 0.7.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
MCP IDE を設定する
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" } } } }
Gemini CLI
1. Gemini CLI をインストールします。
2. プロジェクトのルート ディレクトリに
.gemini
という名前のフォルダを作成し、その中に settings.json
ファイルを作成します。3.
settings.json
ファイルに、Spanner の言語に基づいて次のいずれかの構成を追加します。4. 次の変数を独自の値に置き換えます。
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" } } } }
Gemini Code Assist
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" } } } }
Spanner インスタンスを操作する
これで、IDE が MCP を使用して Spanner に接続されました。LLM エージェントは、テーブルのリスト表示、テーブルの作成、その他の SQL ステートメントの定義と実行が可能になりました。
次のツールで LLM を使用できます。
- list_tables: テーブルと説明を一覧表示します。
- execute_sql: 任意の SQL ステートメントを実行します。
- execute_sql_dql: DQL SQL ステートメントを実行します。