Model Context Protocol(MCP)は、大規模言語モデル(LLM)と AI アプリケーションまたはエージェントが外部のデータソースに接続する方法を標準化します。MCP サーバーを使用すると、そのツール、リソース、プロンプトを使用してアクションを実行し、バックエンド サービスから更新されたデータを取得できます。
ローカル MCP サーバーは通常、ローカルマシンで実行され、同じデバイス上のサービス間の通信に標準の入力ストリームと出力ストリーム(stdio)を使用します。リモート MCP サーバーはサービスのインフラストラクチャで実行され、AI アプリケーションに HTTP エンドポイントを提供して、AI MCP クライアントと MCP サーバー間の通信を行います。MCP アーキテクチャの詳細については、MCP アーキテクチャをご覧ください。
このドキュメントでは、GKE リモート Model Context Protocol(MCP)サーバーを使用して、Gemini CLI、Gemini Code Assist のエージェント モード、Claude Code などの AI アプリケーションや、開発中の AI アプリケーションから GKE に接続する方法について説明します。
GKE ローカル MCP サーバーについては、GitHub の GKE MCP サーバーをご覧ください。
Google とリモート MCP サーバーには、次の機能とメリットがあります。 Google Cloud
- 簡素化された一元的な検出。
- マネージド グローバルまたはリージョン HTTP エンドポイント。
- きめ細かい認可。
- Model Armor 保護によるプロンプトとレスポンスのオプションのセキュリティ。
- 監査ロギングの一元化。
その他の MCP サーバーと、Google Cloud MCP サーバーで使用できるセキュリティとガバナンスの制御については、Google Cloud MCP サーバーの概要をご覧ください。
GKE ローカル MCP サーバーを使用する理由としては、次のようなものがあります。
- ローカルで開発とテストを行う
- オフラインでの MCP の使用
- クラスタとワークロードの作成(AI/ML ワークロードのマニフェスト生成を含む)
- ローカル クライアント構成(
kubeconfigを使用) - クエリログ
- GKE 環境の費用とセキュリティに関する推奨事項を取得する
ローカル MCP サーバーの使用方法について詳しくは、GKE MCP サーバーをご覧ください。次のセクションは、GKE リモート MCP サーバーにのみ適用されます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable container.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/container.clusterViewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable container.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/container.clusterViewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
- 組織ポリシー管理者(
roles/orgpolicy.policyAdmin): Google Cloud 組織にこのロールを付与すると、カスタム組織ポリシーの作成が許可されます。 - Service Usage 管理者(
roles/serviceusage.serviceUsageAdmin): このロールを Google Cloud プロジェクトに付与して、リモート MCP サービス エンドポイントを有効にします。このロールには、serviceusage.mcppolicy.get権限とserviceusage.mcppolicy.update権限が含まれています。 - MCP ツールユーザー(
roles/mcp.toolUser): MCP サーバー エンドポイントへのツール呼び出しを行う権限を付与します。 - Kubernetes Engine クラスタ閲覧者(
roles/container.clusterViewer): このロールは、リモート サーバーのツールに必要な読み取り専用アクセス権を提供します。 - Gemini CLI などのクライアントを介して MCP サーバーとやり取りしているユーザーのユーザー アカウント。
- MCP サーバーを呼び出す自律型エージェントまたはアプリケーションを構築する際のサービス アカウント。
- サーバー名: GKE リモート MCP サーバー
- サーバー URL またはエンドポイント: https://container.googleapis.com/mcp
- トランスポート: HTTP
- 認証の詳細: 認証方法に応じて、 Google Cloud 認証情報、OAuth クライアント ID とシークレット、エージェントの ID と認証情報を入力できます。認証の詳細については、MCP サーバーに対する認証をご覧ください。
- GKE クラスタとノードプールの構成とステータスを検査します。たとえば、「production-cluster の詳細を表示して、すべてのノードプールを一覧表示して」というプロンプトを使用します。
- kubectl を使用せずに、クラスタ内の Kubernetes リソース構成とコンテナログを表示します。たとえば、「default」名前空間の「frontend-deployment」の YAML を取得します。
- クラスタのアップグレードなど、長時間実行される GKE オペレーションのステータスをモニタリングします。たとえば、「過去 1 時間のプロジェクト内のすべての GKE オペレーションを一覧表示して」というプロンプトを使用します。
Google Cloud プロジェクトで Model Armor を有効にするには、次の gcloud CLI コマンドを実行します。
gcloud services enable modelarmor.googleapis.com \ --project=PROJECT_IDPROJECT_IDは、実際のGoogle Cloud プロジェクト ID に置き換えます。推奨の Model Armor のフロア設定を構成するには、次の gcloud CLI コマンドを実行します。
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --mcp-sanitization=ENABLED \ --malicious-uri-filter-settings-enforcement=ENABLEDPROJECT_IDは、実際のGoogle Cloud プロジェクト ID に置き換えます。Model Armor は、悪意のある URL の試行をスキャンするように構成されています。
構成可能な Model Armor フィルタの詳細については、Model Armor フィルタをご覧ください。
Model Armor を MCP サービスのコンテンツ セキュリティ プロバイダとして追加するには、次の gcloud CLI コマンドを実行します。
gcloud beta services mcp content-security add modelarmor.googleapis.com \ --project=PROJECT_IDPROJECT_IDは、Google Cloud プロジェクト ID に置き換えます。MCP トラフィックが Model Armor に送信されていることを確認するには、次のコマンドを実行します。
gcloud beta services mcp content-security get \ --project=PROJECT_IDPROJECT_IDは、Google Cloud プロジェクト ID に置き換えます。- GKE リモート MCP リファレンス ドキュメントを読む。
- Google Cloud MCP サーバーの詳細を確認する。
必要なロール
GKE リモート MCP サーバーを有効にする 1 回限りの設定を行うには、管理者に次のロールが必要です。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
サービスを使用するためのロール
リモート MCP サーバーツールを呼び出すプリンシパルには、GKE リソースにアクセスする権限が必要です。このプリンシパルは、ユーザーまたは自動サービス アカウントです。少なくとも、Google Cloud プロジェクトに次のロールを付与します。
このロールを付与する対象:
GKE リモート MCP サーバーを有効または無効にする
プロジェクトで GKE リモート MCP サーバーを有効または無効にするには、gcloud beta services mcp enable コマンドを使用します。詳細については、以下のセクションをご覧ください。
プロジェクトで GKE リモート MCP サーバーを有効にする
クライアント認証情報(サービス アカウント キー、OAuth クライアント ID、API キーなど)とリソースのホスティングに異なるプロジェクトを使用している場合は、両方のプロジェクトで GKE サービスと GKE リモート MCP サーバーを有効にする必要があります。
Google Cloud プロジェクトで GKE リモート MCP サーバーを有効にするには、次のコマンドを実行します。
gcloud beta services mcp enable container.googleapis.com \
--project=PROJECT_ID
PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。
GKE リモート MCP サーバーが、 Google Cloud プロジェクトで使用できるようになります。Google Cloud プロジェクトで GKE サービスが有効になっていない場合は、GKE リモート MCP サーバーを有効にする前に、サービスを有効にするよう求められます。
セキュリティのベスト プラクティスとして、AI アプリケーションの機能に必要なサービスに対してのみ MCP サーバーを有効にすることをおすすめします。
プロジェクトで GKE リモート MCP サーバーを無効にする
Google Cloud プロジェクトで GKE リモート MCP サーバーを無効にするには、次のコマンドを実行します。
gcloud beta services mcp disable SERVICE \
--project=PROJECT_ID
GKE リモート MCP サーバーは、 Google Cloud プロジェクトで使用できないように無効になっています。
認証と認可
GKE リモート MCP サーバーは、認証と認可に Identity and Access Management(IAM)で OAuth 2.0 プロトコルを使用します。MCP サーバーへの認証では、すべての Google Cloud ID がサポートされています。
GKE リモート MCP サーバーは、認証に API キーを使用できません。
リソースへのアクセスを制御およびモニタリングできるように、MCP ツールを使用してエージェント用に別個の ID を作成することをおすすめします。認証の詳細については、MCP サーバーに対する認証をご覧ください。
GKE リモート MCP OAuth スコープ
OAuth 2.0 では、スコープと認証情報を使用して、認証されたプリンシパルがリソースに対して特定のアクションを実行する権限があるかどうかを判断します。Google の OAuth 2.0 スコープの詳細については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。
GKE には、次の MCP ツール OAuth スコープがあります。
| gcloud CLI のスコープ URI | 説明 |
|---|---|
https://www.googleapis.com/auth/cloud-platform |
Google Cloud プロジェクトに対する広範な読み取り専用アクセス権を付与します。 |
ツール呼び出し中にアクセスされるリソースに追加のスコープが必要になる場合があります。GKE に必要なスコープのリストを表示するには、GKE API をご覧ください。
GKE MCP サーバーを使用するように MCP クライアントを構成する
Claude や Gemini CLI などのホスト プログラムは、単一の MCP サーバーに接続する MCP クライアントをインスタンス化できます。ホスト プログラムには、異なる MCP サーバーに接続する複数のクライアントを設定できます。リモート MCP サーバーに接続するには、MCP クライアントがリモート MCP サーバーの URL を認識している必要があります。
ホストで、リモート MCP サーバーに接続する方法を探します。サーバーの名前や URL などの詳細情報を入力するよう求められます。
GKE リモート MCP サーバーの場合は、必要に応じて次の情報を入力します。
ホスト固有のガイダンスについては、以下をご覧ください。
一般的なガイダンスについては、リモート MCP サーバーに接続するをご覧ください。
使用可能なツール
読み取り専用の MCP ツールでは、MCP 属性 mcp.tool.isReadOnly が true に設定されています。組織のポリシーを使用して、特定の環境で読み取り専用ツールのみを許可することもできます。
使用可能な MCP ツールとその説明の詳細については、GKE MCP リファレンスをご覧ください。
ツールの一覧表示
MCP インスペクタを使用してツールを一覧表示するか、tools/list HTTP リクエストを GKE リモート MCP サーバーに直接送信します。tools/list メソッド: 認証を必要としません。
POST /mcp HTTP/1.1
Host: container.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
サンプルのユースケース
GKE リモート MCP サーバーのユースケースの例を次に示します。
セキュリティと安全に関するオプションの構成
MCP ツールで実行できるアクションが多岐にわたるため、MCP には新たなセキュリティ リスクと考慮事項が生じます。これらのリスクを最小限に抑えて管理するために、Google Cloud は、 Google Cloud組織またはプロジェクトでの MCP ツールの使用を制御するためのデフォルトのポリシーとカスタマイズ可能なポリシーを提供します。
MCP のセキュリティとガバナンスの詳細については、AI のセキュリティと安全性をご覧ください。
Model Armor
Model Armor は、AI アプリケーションのセキュリティと安全性を強化するために設計されたGoogle Cloud サービスです。LLM のプロンプトとレスポンスを事前にスクリーニングすることで、さまざまなリスクから保護し、責任ある AI への取り組みをサポートします。クラウド環境に AI をデプロイする場合でも、外部のクラウド プロバイダに AI をデプロイする場合でも、Model Armor は、悪意のある入力の防止、コンテンツの安全性の検証、機密データの保護、コンプライアンスの維持、多様な AI 環境全体での AI の安全性とセキュリティ ポリシーの一貫した適用に役立ちます。
Model Armor は、特定のリージョン ロケーションでのみ使用できます。プロジェクトで Model Armor が有効になっていて、サポートされていないリージョンからそのプロジェクトへの呼び出しが行われた場合、Model Armor はリージョン間の呼び出しを行います。詳細については、Model Armor のロケーションをご覧ください。
Model Armor を有効にする
Model Armor を有効にするには、次の操作を行います。
Model Armor のロギング
Model Armor の監査ログとプラットフォーム ログについては、Model Armor の監査ロギングをご覧ください。
プロジェクトで Model Armor を無効にする
Google Cloud プロジェクトで Model Armor を無効にするには、次のコマンドを実行します。
gcloud beta services mcp content-security remove modelarmor.googleapis.com \
--project=PROJECT_ID
PROJECT_ID は、Google Cloud プロジェクト ID に置き換えます。
Google Cloud の MCP トラフィックは、指定されたプロジェクトの Model Armor によってスキャンされません。
Model Armor による MCP トラフィックのスキャンを無効にする
プロジェクトで Model Armor を引き続き使用するが、Model Armor による MCP トラフィックのスキャンを停止する場合は、次のコマンドを実行します。
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--mcp-sanitization=DISABLED
PROJECT_ID は、Google Cloud プロジェクト ID に置き換えます。
Model Armor は、Google Cloudで MCP トラフィックをスキャンしません。
組織レベルの MCP 制御
gcp.managed.allowedMCPService 制約を使用して、 Google Cloud 組織での MCP サーバーの使用を制御するカスタムの組織のポリシーを作成できます。詳細と使用例については、Google Cloud MCP サーバーの IAM によるアクセス制御をご覧ください。