MCP Server Kubernetesとは?
GitHub ユーザー Flux159 が npm で mcp-server-kubernetes として公開する MCP Server Kubernetes を使うと、エージェントは kubectl と Helm を通じてクラスターを調べ、変更できます。公開するツールは 23 個で、kubectl_get、kubectl_describe、kubectl_logs から、kubectl_apply、kubectl_delete、exec_in_pod、node_management、任意の kubectl コマンドを実行する kubectl_generic ツールまであり、トラブルシューティング用の k8s-diagnose プロンプトもあります。多くのツールは PATH 上の kubectl と helm のバイナリを呼び出し、引数はシェルを介さず直接渡します。ポートフォワーディングと接続確認には公式の JavaScript クライアントライブラリを使います。
既定では ~/.kube/config を読み、現在のコンテキストをそのまま使います。KUBECONFIG_YAML や KUBECONFIG_JSON での kubeconfig 全体、K8S_SERVER と K8S_TOKEN でのサーバーと bearer トークン、独自のパス、そして Pod 内で動く場合はクラスター内の ServiceAccount も受け付けます。後者はリポジトリの Helm チャートが対応しています。既定は stdio で、Streamable HTTP は ENABLE_UNSAFE_STREAMABLE_HTTP_TRANSPORT で明示的に有効にする方式で、オプションで X-MCP-AUTH ヘッダーのトークンを使えます。
MIT ライセンスのリポジトリは GitHub のスターが約 1,600 で、v4.2.1 は 2026年10月26日に出ました。npm パッケージは 10月26日までの 1 か月で約 34,000 回ダウンロードされました。公式の MCP レジストリに掲載されています。
MCP Server Kubernetesのインストール方法
npx mcp-server-kubernetesMCP Server Kubernetesは使う価値があるか?
問題は機能一覧ではなく既定値です。環境変数なしで起動すると、サーバー は現在の kubeconfig コンテキストに対して 23 個すべてのツールを提供します。多くのエンジニアにとって、それは管理者の ID です。するとエージェントは名前空間を削除し、ノードをドレインし、Helm リリースをアンインストールし、exec_in_pod で Pod 内でコマンドを実行し、kubectl_generic に何でも渡せます。kubectl_context の set 操作でさえ kubeconfig を書き換えるので、自分のターミナルが使うコンテキストも変わります。
範囲を絞るスイッチは 3 つあり、優先順位は次のとおりです。ALLOWED_TOOLS は正確な一覧を受け取り、名前の綴りが違うと起動を拒否します。ALLOW_ONLY_READONLY_TOOLS は文書化された 7 個のツールを残します。get、describe、logs、context(切り替えは禁止)、explain_resource、list_api_resources、ping です。ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS は名前ほど強くありません。delete、uninstall、cleanup、ノード管理、exec、kubectl_generic を取り除きますが、kubectl_apply、kubectl_patch、kubectl_scale、Helm の install と upgrade は残ります。そのためエージェントは依然として Deployment をゼロにスケールしたり、稼働中のマニフェストを上書きしたりできます。
Secret は部分的にマスクされます。kubectl_get は既定で Secret の data の値を *** に置き換えますが、ドキュメントは、ログやその他の操作は対象外だとはっきり書いています。既定のモードでは kubectl_generic と exec_in_pod の両方が使えるので、Secret に対する get 権限を持つ ID ならそれを丸ごと読めます。インラインの環境変数を含む Pod の仕様や ConfigMap は、どのモードでもマスクされずに返ります。マスクは便利機能であり、制御を担うのは RBAC です。
そこで専用の ServiceAccount が真価を発揮 します。単一の名前空間で Kubernetes 組み込みの view ClusterRole にバインドすれば、ほとんどのオブジェクトを読めても、Secret、ロール、ロールバインディングは読めません。そのため、プロンプトインジェクションを含むログ行も、サーバーのバグも、認証情報には届かず、何も書き込めません。Kubernetes 自身のガイダンスは、Secret に対する list と watch も get と同様に中身を明かすと警告しています。ここでリポジトリの Helm チャートを手本にしてはいけません。最小権限と説明されているその ClusterRole は、クラスター全体で Secret に対する get、list、watch を与え、さらに Pod と Deployment の delete と pods/exec も与えています。
セキュリティの経緯には両面があります。2025年7月以降 11 件のアドバイザリが公開され、うち 8 件が深刻度高でした。コマンドインジェクション、運用者の bearer トークンを別の API サーバーに送りかねないフラグインジェクション、任意のローカルファイルの読み取り、そして 2026年5月の、呼び出しを止めずにツールを隠すだけだった読み取り専用モード(3.6.0 で修正)です。いずれも速やかに修正され、現在のコードはツール入力からの --server、--token、--as などのフラグを拒否します。1 つのサーバーとしては多くの指摘で、最新リリースを使い続ける理由になります。
真価を発揮する場面
本番を Kubernetes で動かす、エンジニア 50 人の SaaS 企業のオンコール SRE
書き込みのリスクを負わずに、ある名前空間の Pod がクラッシュループしている理由を突き止める
ALLOW_ONLY_READONLY_TOOLS=true と、その名前空間で view ロールにバインドした ServiceAccount の kubeconfig で実行し、k8s-diagnose プロンプトを呼び出します。エージェントはイベント、describe の出力、ログを読みますが、Secret を読むことも何かを変更することもできません。サーバーは無料で、設定は Role のバインディング 1 つです。
ローカルの minikube や kind のクラスターで作業する開発者
サービスを繰り返し改善しながら、Helm チャートをインストールし、値を変えて再デプロイする
ここではローカルのコンテキストでの既定のモードが妥当です。install_helm_chart、kubectl_apply、kubectl_rollout でこのループをカバーできます。同じ設定で本番に向けると同じエージェントが名前空間を削除できるので、kubeconfig の現在のコンテキストはローカルのクラスターにしておきます。
共有クラスターにエージェントを近づけてよいかを判断するフィンテック企業のプラットフォームチームリーダー
どのエージェントの操作を許容するかのポリシーを決める
ALLOWED_TOOLS=kubectl_get,kubectl_describe,kubectl_logs で公開範囲を固定でき、綴りを誤ると起動時に失敗します。OpenTelemetry のトレースはすべての呼び出しを記録します。より大きな判断はその背後の RBAC ロールです。Helm チャートの既定ではクラスター内のすべての Secret を読めるからです。
導入前に確認すること
- 導入
- PATH 上の kubectl と動作する kubeconfig が必要です(Helm 3 は任意)。その後 claude mcp add kubernetes -- npx mcp-server-kubernetes を実行するか、同じ npx コマンドを Claude Desktop、VS Code、Cursor、Codex に設定します。mcpb バンドル、Docker イメージ、Helm チャートも提供されています。ターミナルで kubectl get pods が動けば、最初の呼び出しまで数分です。
- 連携
- ツールは 23 個です。読み取りツール(kubectl_get、kubectl_describe、kubectl_logs、explain_resource、list_api_resources、ping)、書き込みツール(kubectl_apply、kubectl_create、kubectl_patch、kubectl_scale、kubectl_rollout、Helm の install、upgrade、uninstall)、破壊的なツール(kubectl_delete、cleanup、node_management、exec_in_pod、kubectl_generic)に加え、ポートフォワーディングとコンテキストの切り替えがあります。オプションで任意の OTLP バックエンドに OpenTelemetry をエクスポートできます。
- データとプライバシー
- kubeconfig の ID ができることは何でもでき、既定ではそれに kubectl_generic や exec_in_pod による Secret の完全な読み取りが含まれます。Pod のログ、イベント、アノテーションはモデルに届く信頼できないテキストで、いくつかのアドバイザリはこれをトークン流出の経路として説明しています。HTTP モードは既定で DNS リバインディング対策付きで localhost にバインドしますが、MCP_AUTH_TOKEN を設定しない限りトークンは不要です。
- 大規模利用時のコスト
- 無料で、クラスターは通常どおり課金されます。増えていくコストは API サーバーの負荷とコンテキストです。大規模なクラスターで全名前空間にわたる list の呼び出しを行うと、既定の 1 MB の出力バッファーがあふれることがあり、SPAWN_MAX_BUFFER で引き上げられます。
- 制限
- ローカルに kubectl と helm のバイナリが必要です。独自の承認ステップはないので、確認は MCP クライアント次第です。マスクの対象は Secret に対する kubectl_get だけです。Helm チャートの HTTP モードは、security.mcpAuthToken を設定しない限り認証のないリクエストを受け付けます。
良い点
- 23 個のツールで kubectl、Helm、ログ、ポートフォワーディング、ノード作業をカバー
- 読み取り専用と正確な許可リストのモードが 3.6.0 以降は呼び出し時に強制される
- kubectl_get の出力では既定で Secret の値をマスク
- クラスター内の ServiceAccount を含む多くの認証情報の取得元
気になる点
- 既定のモードに delete、exec_in_pod、生の kubectl が含まれる
- 非破壊モードでも apply、patch、scale ができる
- セキュリティアドバイザリが 11 件、うち 8 件が深刻度高
- Helm チャートの既定の ClusterRole はすべての Secret を読める
おすすめの人
kubectl を通じてエージェントにクラスターを調査させたいプラットフォームエンジニアで、まず範囲を絞った ServiceAccount と読み取り専用モードを与える意思のある人。
MCP Server Kubernetesの代替
MCP Server Kubernetes:よくある質問
- MCP Server Kubernetesは使う価値があるか?
- 機能が幅広く、パッチも活発に当たっていますが、初期状態ではエージェントに現在のコンテキストでの削除、exec、生の kubectl を渡してしまいます。Secret を見られない ServiceAccount に対して、読み取り専用で実行してください。 評価は5点満点中3.8点です。
- MCP Server Kubernetesの料金は?
- 無料のオープンソースです(MIT)。費用は接続先のクラスターの分だけです。
- MCP Server Kubernetesの欠点は?
- 既定のモードに delete、exec_in_pod、生の kubectl が含まれる; 非破壊モードでも apply、patch、scale ができる; セキュリティアドバイザリが 11 件、うち 8 件が深刻度高; Helm チャートの既定の ClusterRole はすべての Secret を読める.
- MCP Server Kubernetesは誰に向いているか?
- kubectl を通じてエージェントにクラスターを調査させたいプラットフォームエンジニアで、まず範囲を絞った ServiceAccount と読み取り専用モードを与える意思のある人。
- チームや本番環境でMCP Server Kubernetesを使うと費用はいくらか?
- 無料で、クラスターは通常どおり課金されます。増えていくコストは API サーバーの負荷とコンテキストです。大規模なクラスターで全名前空間にわたる list の呼び出しを行うと、既定の 1 MB の出力バッファーがあふれることがあり、SPAWN_MAX_BUFFER で引き上げられます。
- MCP Server Kubernetesは企業データを扱っても安全か?
- kubeconfig の ID ができることは何でもでき、既定ではそれに kubectl_generic や exec_in_pod による Secret の完全な読み取りが含まれます。Pod のログ、イベント、アノテーションはモデルに届く信頼できないテキストで、いくつかのアドバイザリはこれをトークン流出の経路として説明しています。HTTP モードは既定で DNS リバインディング対策付きで localhost にバインドしますが、MCP_AUTH_TOKEN を設定しない限りトークンは不要です。
- MCP Server Kubernetesの代わりになるものは?
- 当サイトでレビューした中で最も近い代替はAWS MCP Server, Azure MCP Server, Terraform MCP Server 、 Grafana MCP Serverです。
回答確認日:2026年10月28日
