IDE を Spanner に接続する

このドキュメントでは、Model Context Protocol(MCP)をサポートする IDE に Spanner インスタンスを接続する方法について説明します。MCP は、大規模言語モデル(LLM)を Spanner などのデータソースに接続するためのオープン プロトコルです。接続後、LLM エージェントは Spanner インスタンスに対してクエリを実行し、操作できます。

このドキュメントでは、次の IDE の接続プロセスについて説明します。

始める前に

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

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

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

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

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

  3. このタスクを完了するために必要なロールと権限を構成します。LLM エージェントを呼び出すユーザーは、インスタンスに接続するために Spanner データベース ユーザーロール(roles/spanner.databaseUser)または同等の Identity and Access Management 権限が必要です。このロールはデータベース レベルで必要です。

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

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

  1. 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

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

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

    ./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 データベース名。
5. ファイルを保存します。

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 データベース名。
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"
      }
    }
  }
}

Spanner インスタンスを操作する

これで、IDE が MCP を使用して Spanner に接続されました。LLM エージェントは、テーブルのリスト表示、テーブルの作成、その他の SQL ステートメントの定義と実行が可能になりました。

次のツールで LLM を使用できます。

  • list_tables: テーブルと説明を一覧表示します。
  • execute_sql: 任意の SQL ステートメントを実行します。
  • execute_sql_dql: DQL SQL ステートメントを実行します。