Spanner リモート MCP サーバーを使用する

このドキュメントでは、Spanner リモート Model Context Protocol(MCP)サーバーを使用して、Gemini CLI、ChatGPT、Claude、開発中のカスタム アプリケーションなどの AI アプリケーションに接続する方法について説明します。Spanner MCP サーバーを使用すると、AI 対応の開発環境と AI エージェント プラットフォームから Spanner ツールにアクセスして実行し、Spanner リソースの作成、管理、クエリを行うことができます。Spanner API を有効にすると、Spanner リモート MCP サーバーが有効になります。

Model Context Protocol(MCP)により、大規模言語モデル(LLM)と AI アプリケーション(エージェント)が外部のデータソースに接続する方法が標準化されます。MCP サーバーを使用すると、そのツール、リソース、プロンプトを使用してアクションを実行し、バックエンド サービスから更新されたデータを取得できます。

ローカル MCP サーバーとリモート MCP サーバーの違いは何ですか?

ローカル MCP サーバー
通常はローカルマシンで実行され、同じデバイス上のサービス間の通信に標準の入力ストリームと出力ストリーム(stdio)を使用します。
リモート MCP サーバー
サービスのインフラストラクチャで実行され、AI MCP クライアントと MCP サーバー間の通信用に AI アプリケーションに HTTP エンドポイントを提供します。MCP アーキテクチャの詳細については、MCP アーキテクチャをご覧ください。

Spanner ローカル MCP サーバーについては、データベース向け MCP ツールボックスをご覧ください。

Google と Google Cloud リモート MCP サーバー

Google と Google Cloud リモート MCP サーバーには、次の機能とメリットがあります。

  • 簡素化された一元的な検出
  • マネージド グローバルまたはリージョン HTTP エンドポイント
  • きめ細かい認可
  • Model Armor 保護によるプロンプトとレスポンスのセキュリティ(オプション)
  • 一元的な監査ロギング

他の MCP サーバーと、Google Cloud MCP サーバーで使用可能なセキュリティとガバナンスの制御については、Google Cloud MCP サーバーの概要をご覧ください。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Spanner API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

    API の有効化

    新しいプロジェクトでは、Spanner API が自動的に有効になります。

必要なロール

Spanner MCP サーバーの使用に必要な権限を取得するには、Spanner MCP サーバーを使用するプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、Spanner MCP サーバーの使用に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Spanner MCP サーバーを使用するには、次の権限が必要です。

  • MCP ツール呼び出しを行う: mcp.tools.call
  • Spanner MCP ツールを使用します。
    • spanner.instances.create
    • spanner.instances.get
    • spanner.databases.create
    • spanner.databases.update
    • spanner.sessions.create
    • spanner.instanceOperations.get
    • spanner.databases.getDdl
    • spanner.databases.select
    • spanner.databases.write

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

認証と認可

Spanner MCP サーバーは、認証と認可に Identity and Access Management(IAM)OAuth 2.0 プロトコルを使用します。MCP サーバーへの認証では、すべての Google Cloud ID がサポートされています。

Spanner リモート MCP サーバーは API キーを受け入れません。

リソースへのアクセスを制御してモニタリングできるように、MCP ツールを使用してエージェント用に別個の ID を作成することをおすすめします。認証の詳細については、MCP サーバーに対して認証するをご覧ください。

Spanner MCP の OAuth スコープ

OAuth 2.0 では、スコープと認証情報を使用して、認証されたプリンシパルがリソースに対して特定のアクションを実行する権限があるかどうかを判断します。Google の OAuth 2.0 スコープの詳細については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。

Spanner には、次の MCP ツール OAuth スコープがあります。

gcloud CLI のスコープの URI 説明
https://www.googleapis.com/auth/spanner.admin Spanner インスタンスとデータベースの管理へのアクセスを許可します。
https://www.googleapis.com/auth/spanner.data Spanner データベース内のデータの表示と管理を許可します。

これらのスコープの詳細については、Spanner API をご覧ください。

Spanner MCP サーバーを使用するように MCP クライアントを構成する

Claude や Gemini CLI などのホスト プログラムは、単一の MCP サーバーに接続する MCP クライアントをインスタンス化できます。ホスト プログラムには、さまざまな MCP サーバーに接続する複数のクライアントを設定できます。リモート MCP サーバーに接続するには、MCP クライアントが少なくともリモート MCP サーバーの URL を認識している必要があります。

次の手順に沿って、リモート Spanner MCP サーバーに接続するように MCP クライアントを構成します。

Gemini CLI

Spanner リモート MCP サーバーを Gemini CLI に追加するには、拡張機能として構成します。

  1. 次の場所に拡張機能ファイルを作成します。 ~/.gemini/extensions/EXT_NAME/gemini-extension.json。ここで、~/ はホーム ディレクトリ、EXT_NAME は拡張機能に付ける名前です。

  2. 拡張機能ファイルに次の内容を追加します。

            {
              "name": "EXT_NAME",
              "version": "1.0.0",
              "mcpServers": {
                "Spanner MCP Server": {
                  "httpUrl": "https://spanner.googleapis.com/mcp",
                  "authProviderType": "google_credentials",
                  "oauth": {
                    "scopes": ["https://www.googleapis.com/auth/cloud-platform"]
                  },
                  "timeout": 30000,
                  "headers": {
                    "x-goog-user-project": "PROJECT_ID"
                  }
                }
              }
            }
            
  3. 拡張機能ファイルを保存します。

  4. Gemini CLI を起動します。

            gemini
            
  5. CLI で /mcp を実行して、構成済みの MCP サーバーとそのツールを表示します。

    レスポンスは次の例のようになります。

            Configured MCP servers:
            🟢 Spanner MCP Server (from spanner )
              - get_database_ddl
              - get_instance
              - get_operation
              - create_database
              - create_instance
              - create_session
              - commit
              - execute_sql
              - list_databases
              - list_instances
            

リモート MCP サーバーを Gemini CLI で使用する準備が整いました。

Claude.ai

Claude.ai で Google と Google Cloud MCP サーバーを構成するには、Claude Enterprise、Pro、Max、または Team プランが必要です。料金については、Claude の料金をご覧ください。

Spanner リモート MCP サーバーを Claude.ai に追加するには、OAuth クライアント ID と OAuth クライアント シークレットを使用してカスタム コネクタを構成します。

Oauth 2.0 クライアント ID とシークレットを作成する

  1. Google Cloud コンソールで、[Google Auth Platform] > [クライアント] > [クライアントの作成] に移動します。

    [クライアントの作成] に移動

    プロジェクトが選択されていない場合は、プロジェクトの作成を求めるメッセージが表示されます。

  2. [アプリケーションの種類] リストで、[ウェブ アプリケーション] をクリックします。

  3. [名前] フィールドに、アプリケーションの名前を入力します。

  4. [承認済みのリダイレクト URI] セクションで、[+ URI を追加] をクリックし、[URI] フィールドに https://claude.ai/api/mcp/auth_callback を追加します。

  5. [作成] をクリックします。クライアントが作成されます。クライアント ID にアクセスするには、 Google Cloud コンソールで [Google Auth Platform] > [クライアント] に移動します。

  6. [OAuth 2.0 クライアント ID] リストで、クライアント名を選択します。

  7. [クライアント シークレット] セクションで、クライアント シークレットをコピーして、安全な場所に保存します。コピーできるのは 1 回のみです。紛失した場合は、シークレットを削除して新しいシークレットを作成します。