mcp-k8s について
mcp-k8s は、MCP ツールを通じて Kubernetes クラスターを操作できる MCP サーバーです。LLM を使ったリソース管理や運用、開発・テストを目的とする方を対象とし、書き込みや Helm 操作は個別に有効・無効を切り替えられます。
主な機能
- 01組み込みリソースと CRD の種類の照会
- 02リソースの取得とフィルター付きの一覧表示
- 03作成・更新・削除の個別の有効化設定
- 04Helm リリースとリポジトリの管理
- 05stdio、SSE、Streamable HTTP のトランスポート
活用シーン
- 01自然言語による Kubernetes リソースの管理
- 02クラスターの問題調査や設定レビューの補助
- 03テスト環境でのリソースの作成と後片付け
MCP 対応
mcp-k8s は MCP サーバーとして、リソースの照会・作成・更新・削除や Helm のインストール・アップグレードなどのツールを MCP クライアントに公開します。既定では stdio で動作し、HTTP トランスポートにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-k8s
MCP ツールを通じて Kubernetes クラスターと対話できる、Kubernetes MCP(Model Control Protocol)サーバーです。
特長
- 対応する Kubernetes リソースタイプを照会(組み込みリソースと CRD)
- Kubernetes リソースをきめ細かく制御して操作
- 読み取り操作:リソースの詳細取得、フィルターオプションを指定したタイプ別リソース一覧の取得
- 書き込み操作:リソースの作成、更新、削除(各操作を個別に有効化/無効化可能)
- カスタムリソースを含む、すべての Kubernetes リソースタイプに対応
- kubeconfig を使用して Kubernetes クラスターに接続
- きめ細かな制御が可能な Helm サポート
- Helm リリースの管理(一覧表示、取得、インストール、アップグレード、アンインストール)
- Helm リポジトリの管理(一覧表示、追加、削除)
- 各操作を個別に有効化/無効化可能
プレビュー
cursor を通じた対話

ユースケース
1. LLM による Kubernetes リソース管理
- 対話型のリソース管理:LLM と自然言語で対話して Kubernetes リソースを管理でき、複雑な kubectl コマンドを覚える必要がありません
- 一括操作:複雑な一括操作の要件を自然言語で説明すると、LLM が具体的なリソース操作に変換します
- リソースの状態照会:自然言語でクラスターのリソース状態を照会し、わかりやすい回答を受け取れます
2. 運用自動化のシナリオ
- インテリジェントな運用アシスタント:日常的なクラスター管理タスクで、運用担当者を支援するアシスタントとして利用できます
- 問題の診断:自然言語による問題の説明を通じて、クラスターの問題診断を支援します
- 設定のレビュー:LLM の理解能力を活用して、Kubernetes リソース設定のレビューと最適化を支援します
3. 開発とテストのサポート
- プロトタイプの迅速な検証:開発者は自然言語を使って、リソース設定をすばやく作成し、検証できます
- 環境管理:テスト環境のリソース管理を簡素化し、テストリソースをすばやく作成、変更、クリーンアップできます
- 設定の生成:要件の説明に基づき、ベストプラクティスに沿ったリソース設定を自動生成します
4. 教育・トレーニングのシナリオ
- 対話型学習:初心者は自然言語で対話しながら、Kubernetes の概念や操作を学べます
- ベストプラクティスの案内:リソース操作中に、LLM がベストプラクティスを提案します
- エラーの説明:操作に失敗した場合、わかりやすいエラーの説明と修正案を提示します
アーキテクチャ
1. プロジェクト概要
Kubernetes クラスターに接続し、以下の機能を提供する stdio ベースの MCP サーバーです。
- Kubernetes リソースタイプの照会(組み込みリソースと CRD を含む)
- Kubernetes リソースの CRUD 操作(書き込み操作は設定可能)
- リリースとリポジトリを管理する Helm 操作
2. 技術スタック
- Go
- mcp-go SDK
- Kubernetes client-go ライブラリ
- Helm v3 クライアントライブラリ
- 通信には Stdio を使用
3. コアコンポーネント
- MCP Server:mcp-go の
mcp-k8sパッケージを使用して、stdio ベースの MCP サーバーを作成します - K8s クライアント:client-go を使用して Kubernetes クラスターに接続します
- Helm クライアント:Helm v3 ライブラリを使用して Helm の操作を行います
- ツールの実装:さまざまな Kubernetes 操作に対応する MCP ツールを実装します
4. 利用可能なツール
リソースタイプのクエリツール
get_api_resources:クラスターでサポートされているすべての API リソースタイプを取得します
リソース操作ツール
get_resource:特定のリソースの詳細情報を取得しますlist_resources:リソースタイプのすべてのインスタンスを一覧表示しますcreate_resource:新しいリソースを作成します(無効にできます)update_resource:既存のリソースを更新します(無効にできます)delete_resource:リソースを削除します(無効にできます)
Helm 操作ツール
list_helm_releases:クラスター内のすべての Helm リリースを一覧表示しますget_helm_release:特定の Helm リリースの詳細情報を取得しますinstall_helm_chart:Helm チャートをインストールします(無効にできます)upgrade_helm_chart:Helm リリースをアップグレードします(無効にできます)uninstall_helm_chart:Helm リリースをアンインストールします(無効にできます)list_helm_repositories:設定済みの Helm リポジトリを一覧表示しますadd_helm_repository:新しい Helm リポジトリを追加します(無効にできます)remove_helm_repository:Helm リポジトリを削除します(無効にできます)
使用方法
mcp-k8s は、3 つの通信モードに対応しています。
1. Stdio モード(デフォルト)
stdio モードでは、mcp-k8s は標準入出力ストリームを介してクライアントと通信します。これがデフォルトのモードであり、ほとんどのユースケースに適しています。
# Run in stdio mode (default)
{
"mcpServers":
{
"mcp-k8s":
{
"command": "/path/to/mcp-k8s",
"args":
[
"--kubeconfig",
"/path/to/kubeconfig",
"--enable-create",
"--enable-delete",
"--enable-update",
"--enable-list",
"--enable-helm-install",
"--enable-helm-upgrade"
]
}
}
}
2. SSE モード
SSE(Server-Sent Events)モードでは、mcp-k8s は mcp クライアント向けの HTTP エンドポイントを公開します。 サービスをリモートサーバーにデプロイできます(ただし、セキュリティに注意する必要があります)。
# Run in SSE mode
./bin/mcp-k8s --kubeconfig=/path/to/kubeconfig --transport=sse --port=8080 --host=localhost --enable-create --enable-delete --enable-list --enable-update --enable-helm-install
# This command will open all operations
mcp の設定
{
"mcpServers": {
"mcp-k8s": {
"url": "http://localhost:8080/sse",
"args": []
}
}
}
SSE モードの設定:
--transport:SSE モードを有効にするには「sse」に設定します--port:HTTP サーバーのポート(デフォルト:8080)--host:HTTP サーバーのホスト(デフォルト:「localhost」)
3. Streamable HTTP モード
Streamable HTTP モードでは、mcp-k8s は直接的な HTTP レスポンスと SSE ストリームの両方をサポートする HTTP エンドポイントを公開します。このモードは柔軟性に優れ、ストリーミング出力に対応しています。
# Run in Streamable HTTP mode
./bin/mcp-k8s --kubeconfig=/path/to/kubeconfig --transport=streamable-http --port=8080 --host=localhost --endpoint-path=/mcp --enable-create --enable-delete --enable-list --enable-update --enable-helm-install
mcp の設定
{
"mcpServers": {
"mcp-k8s": {
"url": "http://localhost:8080/mcp",
"args": []
}
}
}
Streamable HTTP モードの設定:
--transport:Streamable HTTP モードを有効にするには「streamable-http」に設定します--port:HTTP サーバーのポート(デフォルト:8080)--host:HTTP サーバーのホスト(デフォルト:「localhost」)--endpoint-path:MCP サーバーのエンドポイントパス(デフォルト:「/mcp」)
4. Docker 環境
SSE モード
- 完全な例 イメージ名が mcp-k8s で、ポートのマッピングと環境パラメーターの設定が必要な場合は、次のコマンドを実行できます。
docker run --rm -p 8080:8080 -i -v ~/.kube/config:/root/.kube/config ghcr.io/silenceper/mcp-k8s:latest --transport=sse
Streamable HTTP モード
docker run --rm -p 8080:8080 -i -v ~/.kube/config:/root/.kube/config ghcr.io/silenceper/mcp-k8s:latest --transport=streamable-http --endpoint-path=/mcp
stdio モード
{
"mcpServers": {
"mcp-k8s": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"~/.kube/config:/root/.kube/config",
"--rm",
"ghcr.io/silenceper/mcp-k8s:latest"
]
}
}
}
はじめに
直接使用する
リリースページからお使いのプラットフォーム向けのバイナリを直接ダウンロードして、すぐに使用できます。
Go Install
go install github.com/silenceper/mcp-k8s/cmd/mcp-k8s@latest
ビルド
Makefile を使用する(推奨)
Makefile は VERSION ファイルからバージョン情報を自動的に取り込みます。
git clone https://github.com/silenceper/mcp-k8s.git
cd mcp-k8s
make build
これにより、ldflags を使ってバージョン情報を埋め込んだ状態でビルドされます。
直接ビルドする
git clone https://github.com/silenceper/mcp-k8s.git
cd mcp-k8s
go build -o bin/mcp-k8s cmd/mcp-k8s/main.go
注:ldflags を手動で指定しない限り、直接ビルドした場合のバージョンは「dev」と表示されます。
コマンドライン引数
mcp-k8s --help で利用可能なすべてのオプションを確認できます。また、mcp-k8s --version でバージョンを確認できます。
Kubernetes リソース操作
--kubeconfig:Kubernetes 設定ファイルへのパス(指定しない場合はデフォルトの設定を使用します)--enable-create:リソースの作成操作を有効にします(デフォルト:false)--enable-update:リソースの更新操作を有効にします(デフォルト:false)--enable-delete:リソースの削除操作を有効にします(デフォルト:false)--enable-list:リソースの一覧表示操作を有効にします(デフォルト:true)
Helm 操作
--enable-helm-release-list:启用 Helm リリース一覧操作(デフォルト:true)--enable-helm-release-get:启用 Helm リリース取得操作(デフォルト:true)--enable-helm-install:启用 Helm チャートのインストール(デフォルト:false)--enable-helm-upgrade:启用 Helm チャートのアップグレード(デフォルト:false)--enable-helm-uninstall:启用 Helm チャートのアンインストール(デフォルト:false)--enable-helm-repo-list:启用 Helm リポジトリ一覧操作(デフォルト:true)--enable-helm-repo-add:启用 Helm リポジトリ追加操作(デフォルト:false)--enable-helm-repo-remove:启用 Helm リポジトリ削除操作(デフォルト:false)
トランスポート設定
--transport:トランスポートの種類(stdio、sse、または streamable-http)(デフォルト:"stdio")--host:HTTP トランスポート(SSE または Streamable HTTP)のホスト(デフォルト:"localhost")--port:HTTP トランスポート(SSE または Streamable HTTP)の TCP ポート(デフォルト:8080)--endpoint-path:Streamable HTTP トランスポートのエンドポイントパス(デフォルト:"/mcp")
バージョン情報
--version:バージョン、コミットハッシュ、ビルド日時を含むバージョン情報を表示します--helpまたは-h:ヘルプ情報を表示します
Streamable HTTP のテスト
Streamable HTTP モードが正しく動作しているかテストするには、付属のテストスクリプトを使用します。
# Start the server in one terminal
./bin/mcp-k8s --transport=streamable-http --port=8080 --enable-list
# In another terminal, run the test script
./test_streamable_http.sh
詳しいテスト手順については、TEST_STREAMABLE_HTTP.md を参照してください。
MCP クライアントとの統合
mcp-k8s は stdio ベースの MCP サーバーであり、MCP 対応の LLM クライアントであればどれでも統合できます。統合手順については、お使いの MCP クライアントのドキュメントを参照してください。
セキュリティに関する考慮事項
- 書き込み操作は、独立した設定スイッチによって厳密に制御されます
- RBAC を使用し、K8s クライアントに必要最小限の権限のみを付与します
- インジェクション攻撃を防ぐため、すべてのユーザー入力を検証します
- Helm 操作も同じセキュリティ原則に従い、読み取り操作はデフォルトで有効、書き込み操作はデフォルトで無効です
WeChat 公式アカウントをフォロー

コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。