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 サーバーの概要をご覧ください。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Spanner API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。新しいプロジェクトでは、Spanner API が自動的に有効になります。
必要なロール
Spanner MCP サーバーの使用に必要な権限を取得するには、Spanner MCP サーバーを使用するプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
MCP ツール呼び出しを行う: MCP ツールユーザー (
roles/mcp.toolUser) -
OAuth クライアント ID を作成する: OAuth Config 編集者 (
roles/oauthconfig.editor) -
Spanner MCP ツールを使用する: Cloud Spanner 管理者 (
roles/spanner.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、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 に追加するには、拡張機能として構成します。
-
次の場所に拡張機能ファイルを作成します。
~/.gemini/extensions/EXT_NAME/gemini-extension.json。ここで、~/はホーム ディレクトリ、EXT_NAME は拡張機能に付ける名前です。 -
拡張機能ファイルに次の内容を追加します。
{ "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" } } } }
-
拡張機能ファイルを保存します。
-
Gemini CLI を起動します。
gemini
-
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 とシークレットを作成する
-
Google Cloud コンソールで、[Google Auth Platform] > [クライアント] > [クライアントの作成] に移動します。
プロジェクトが選択されていない場合は、プロジェクトの作成を求めるメッセージが表示されます。
[アプリケーションの種類] リストで、[ウェブ アプリケーション] をクリックします。
[名前] フィールドに、アプリケーションの名前を入力します。
[承認済みのリダイレクト URI] セクションで、[+ URI を追加] をクリックし、[URI] フィールドに
https://claude.ai/api/mcp/auth_callbackを追加します。[作成] をクリックします。クライアントが作成されます。クライアント ID にアクセスするには、 Google Cloud コンソールで [Google Auth Platform] > [クライアント] に移動します。
[OAuth 2.0 クライアント ID] リストで、クライアント名を選択します。
-
[クライアント シークレット] セクションで、クライアント シークレットをコピーして、安全な場所に保存します。コピーできるのは 1 回のみです。紛失した場合は、シークレットを削除して新しいシークレットを作成します。