はじめに

こんにちは!アイレット株式会社DX開発事業部の田村です。

2025年12月に Google Cloud の製品向けに MCP(Model Context Protocol)のサポートが発表されました。これによりGKE(Google Kubernetes Engine)を含む複数の Google Cloud サービスが AI エージェントから直接操作できるようになりました。

Announcing official MCP support for Google services | Google Cloud Blog
Google is announcing official MCP support for Google and Google Cloud services for AI agents.

Google Cloud MCP servers について

Google CloudはMCPサーバーをリモートで利用できるようにGoogle Cloud MCP serversの提供を発表しました。
ユーザーはHTTP経由でMCPサーバーに接続して利用することができます。

今回の発表では以下の4サービスがサポートされています。

  • Google Maps
  • BigQuery
  • Google Compute Engine
  • Google Kubernetes Engine

上記のうちGKE MCPサーバーについて、どんなことができるのかを見ていきたいと思います。

GKE MCPサーバーでできること

GKEのMCPサーバーは、以下の8つのツールを提供しています。(2025年12月12日時点)

カテゴリ ツール名 説明
クラスター管理 list_clusters GKEクラスターの一覧を取得
クラスター管理 get_cluster 特定のクラスター情報を取得
Kubernetesリソース操作 kube_api_resources Kubernetes APIリソースの情報を取得
Kubernetesリソース操作 kube_get Kubernetesリソース(Pod、Deploymentなど)を取得
ノードプール管理 list_node_pools ノードプールの一覧を取得
ノードプール管理 get_node_pool 特定のノードプール情報を取得
オペレーション管理 list_operations GKE オペレーション(クラスター作成、アップグレードなど)の一覧を取得
オペレーション管理 get_operation 特定のオペレーション情報を取得

これらのツールを使うことで、AIエージェントはGKEクラスターの状態を把握したり、Kubernetesリソースを確認したりできるようになります。

GKE MCPサーバーの特徴

今回発表されたのは、Google Cloudが運用する「マネージド」のMCPサーバーです。
実はGoogleはオープンソース版のGKE MCP Serverも公開しています。オープンソース版は主にローカル環境で動作させてクラスター作成やマニフェスト生成など、より高度な機能が利用可能になっています。

GitHub - GoogleCloudPlatform/gke-mcp
Contribute to GoogleCloudPlatform/gke-mcp development by creating an account on GitHub.

マネージドMCPサーバーの特徴として以下が挙げられます

  • Google Cloud側でメンテナンスされて提供される
  • クラスターやPodの状態など読み取り専用のツールが提供されている(2025年12月時点)
  • Google CloudのIAM権限でアクセス管理することができる

エンドポイントの提供方法

Google Cloud MCPサーバーはCloud API RegistryというGoogle Cloudのサービスで管理されていて、このサービスを経由することでGKE MCPやそのlist_clusterskube_getといったツールが提供されています。(Cloud API Registryは2025年12月時点でパブリックプレビュー)

言い換えるなら、Google Cloudが公式に提供するMCPサーバー管理のためのプラットフォームということですね!
Google Cloudのサービスとして利用できるため、IAMでの権限管理、ログ管理といったセキュリティ要件も叶えられるという点が魅力かなと思います。

今回使用するGKE MCPサーバーは以下のエンドポイントで提供されています。

https://container.googleapis.com/mcp

マネージド版とオープンソース版の比較

項目 マネージド版 オープンソース版
提供形態 Google Cloudが運用するHTTPエンドポイント ローカル環境で実行
主な用途 クラスターの監視・診断・分析 クラスター作成・マニフェスト生成・運用全般
クラスター作成 ❌ 不可 ✅ 可能(cluster_toolkit
クラスター情報取得 ✅ 可能(list_clusters, get_cluster ✅ 可能
Kubernetesリソース操作 ✅ 読み取りのみ(kube_get, kube_api_resources ✅ 読み取りのみ
マニフェスト生成 ❌ 不可 ✅ 可能(AI/ML推論ワークロード用)
ログ分析 ❌ 不可 ✅ 可能(LQLクエリ)
コスト分析 ❌ 不可 ✅ 可能(クラスター/namespace/workload別)
セキュリティ管理 Google Cloud IAM、監査ログ ローカル認証情報
メンテナンス Google Cloudが実施 自分で更新が必要

マネージド版は「読み取り専用の監視・診断に特化」していて、クラスター作成やマニフェスト生成といった書き込み操作はできません。一方でオープンソース版はローカル環境で動作させる前提で、「クラスター作成からログ分析、コスト分析まで幅広い運用タスク」まで行うことができます。

どちらを使っていくかは用途次第だと思いますが、本番環境の監視や複数人で安全に使いたい場合はマネージド版、開発環境でAIにクラスター構築から任せたい場合はオープンソース版になっていくのではないでしょうか。

ともあれまだ発表されたばかりのMCPですので、今後はマネージド版の方に機能を集約していく可能性もあると思います。

実際に使ってみる

Cloud Shell で Gemini CLI を使って MCP サーバーを利用します。
操作する GKE は Autopilot で nginx と Fluent Bit の Pod を立ち上げます。

以下のようにPodを作成しました。

$ kubectl get deployments
# NAME         READY   UP-TO-DATE   AVAILABLE   AGE
# fluent-bit   1/1     1            1           3m23s
# nginx        3/3     3            3           3m45s

$ kubectl get pods
# NAME                         READY   STATUS    RESTARTS   AGE
# fluent-bit-799c7cc5f-bxknd   1/1     Running   0          6s
# nginx-6976b7d7d6-2s6q7       1/1     Running   0          29s
# nginx-6976b7d7d6-d4vq4       1/1     Running   0          15s
# nginx-6976b7d7d6-ldjqg       1/1     Running   0          15s

Gemini CLIでMCPサーバーを設定

今回はCloud Shell環境でGemini CLIを使ってMCPサーバーに接続してみます。
使用するコマンドはgcloud CLIのバージョン549以上が必要となりますのでご注意ください!

gcloud --version
# Google Cloud SDK 549.0.1
# ...

# バージョンが549未満の方はUpdateしてください
gcloud components update

MCP サーバーの有効化:

GKEのMCPサーバーを使うには、事前にMCPエンドポイントを有効化する必要があります。

gcloud beta services mcp enable container.googleapis.com --project=<プロジェクトID>

GKE MCPサーバーの設定:

~/.gemini/settings.jsonファイルを作成して、MCPサーバーを登録します。

cat > ~/.gemini/settings.json <<'EOF'
{
  "mcpServers": {
    "gke": {
      "httpUrl": "https://container.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform",
          "https://www.googleapis.com/auth/userinfo.email"
        ]
      },
      "headers": {
        "x-goog-user-project": "YOUR_PROJECT_ID"
      }
    }
  }
}
EOF

Gemini CLIからGKEを操作

Gemini CLIを起動して、自然言語でGKEクラスターを操作してみます。

gemini

以下のコマンドでMCPが有効化されていることを確認できます。

/mcp

Configured MCP servers:

🟢 gke - Ready (8 tools)
  Tools:
  - get_cluster
  - get_node_pool
  - get_operation
  - kube_api_resources
  - kube_get
  - list_clusters
  - list_node_pools
  - list_operations

まずは以下のような質問を投げてみます。
※実行される場合プロジェクトIDはご自身のプロジェクトIDに置き換えてください。

<プロジェクトID>のすべてのリージョンにあるGKEクラスターの一覧を教えてください

MCPツールを初めて使用する際、セキュリティのため承認が求められます。

Allow execution of MCP tool "list_clusters" from server "gke"?

● 1. Yes, allow once
  2. Yes, always allow tool "list_clusters" from server "gke"
  3. Yes, always allow all tools from server "gke"
  4. No, suggest changes (esc)

今回は「Yes, always allow all tools from server “gke”」を選択して、以降すべてのツールを許可します。

実行結果:

list_clustersツールを使ってクラスター一覧を取得していますね。

✓ list_clusters (gke MCP Server) {"parent":"projects/<プロジェクトID>/locations/-"}

<プロジェクトID>のすべてのリージョンにある GKE クラスターは以下の通りです:

* mcp-test-cluster (ロケーション: asia-northeast1)

少し複雑な質問を投げてみます。

稼働しているDeploymentに関して見直すべきポイントはありますか?

実行結果:

kube_get (gke MCP Server)

 Deploymentの一覧を取得し、内容を確認しました。
  ほとんどはGKEが管理するシステムコンポーネントであり、これらは適切に設定されています。

  しかし、default名前空間で稼働しているfluent-bitとnginxという2つのDeploymentについて、見直すべき点がいくつか見つかりました。

  主な見直しポイント

   1. イメージタグが `:latest` になっている (nginx, fluent-bit)
       * 問題点: imageにバージョンが指定されず :latest タグが使われています。このタグは、イメージがビルドされるたびに参照先が変わる可能性があり、意図せず新しいバージョンのコンテナがデプロイされ、予期せぬ動作を引き起こす原因となります。
       * 推奨事項: nginx:1.23.0 のように、特定のバージョンを明示的に指定してください。これにより、デプロイの再現性と安定性が向上します。

   2. Readiness ProbeとLiveness Probeが設定されていない (nginx, fluent-bit)
       * 問題点: Podが正常にリクエストを受け付けられる状態かを判断するreadinessProbeと、Podが正常に稼働し続けているかを判断するlivenessProbeがありません。これにより、アプリケーションが応答不能になっているPodにトラフィックが送られたり、異常なPodが再起動されずに放置されたりする可能性があります。
       * 推奨事項:
           * nginxには、/ へのHTTP GETリクエストなどを利用した単純なProbeを追加できます。
           * fluent-bitには、ヘルスチェック用のエンドポイントがあればそれを、なければ特定のポートへのTCP接続を試みるProbeなどを設定します。

  まとめ

  ユーザーが管理していると思われるnginxとfluent-bitのDeploymentは、イメージのバージョンを固定し、ヘルスチェック(Probe)を追加することで、より堅牢で安定した運用が可能になります。

  これらの修正を適用しますか? ご希望であれば、具体的な修正案を提示することも可能です。

Geminiはkube_getツールを使ってDeploymentを取得し、自動的にベストプラクティスに基づいた分析を行ってくれています。
指摘内容についてもイメージタグやProbeの設定など妥当な内容ですね。

さいごに

最後まで閲覧いただきありがとうございます。
GKEのMCPサーバーがマネージドで提供されたということで、環境依存することなくMCPサーバーを利用していくことができるようになりました。

AIエージェントが複数のGoogle Cloudサービスをまたいで作業できるようになるとBigQueryでデータを分析して、その結果をもとにGKEのスケーリングを調整するといった自動化も可能になるかもしれません。

今後も他のGoogle CloudサービスでもMCPサポートが予定されていると発表しているので待ち遠しいですね。