kubernetes-mcp について
kubernetes-mcp は Go で書かれた MCP サーバーで、Kubernetes の操作を MCP ツールとして公開します。stdio、SSE、StreamableHTTP の各トランスポートに対応し、ローカルの kubeconfig とクラスター内のサービスアカウント構成のどちらでも動作します。
主な機能
- 01API グループごとの汎用リソース CRUD ツール
- 02stdio、SSE、StreamableHTTP トランスポートに対応
- 03kubeconfig とクラスター内設定の両方に対応
- 04Pod ログ分析、イベント取得、マニフェスト操作
- 05トラブルシューティング用プロンプトとメトリクスツール
活用シーン
- 01MCP クライアントからのクラスターリソースの照会と管理
- 02Pod ログの分析によるノードやネットワークの問題調査
- 03Kubernetes クラスター内でのリモートサーバーとしての運用
MCP 対応
MCP サーバーとして、Kubernetes のリソース操作、ツール、プロンプト、メトリクスを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes MCP
English | 中文
Go で構築された、Kubernetes に特化した Model Context Protocol(MCP)サーバーです。
Kubernetes の操作を MCP ツールとして公開し、stdio、sse、streamable の各トランスポートをサポートします。
このプロジェクトの目的
- Kubernetes 操作のための統一された MCP インターフェース
- ローカルの
kubeconfigとクラスター内構成の両方に対応 - さまざまな連携モードに対応する複数のトランスポート
- 汎用リソースの CRUD + ユーティリティツール + プロンプト + メトリクス
- レベル/フォーマットを設定可能な
slogベースのロギング
要件
- Go
1.24+ - Kubernetes クラスターへのアクセス
--kubeconfig経由、または- クラスター内のサービスアカウント経由
クイックスタート
ビルド
git clone https://github.com/HSn0918/kubernetes-mcp.git
cd kubernetes-mcp
go build -o kubernetes-mcp ./cmd/kubernetes-mcp
実行(stdio)
./kubernetes-mcp server transport stdio --kubeconfig ~/.kube/config
実行(SSE)
./kubernetes-mcp server transport sse \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--base-url "http://localhost:8080" \
--kubeconfig ~/.kube/config
実行(StreamableHTTP)
./kubernetes-mcp server transport streamable \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--kubeconfig ~/.kube/config
CLI 構造
kubernetes-mcp
├── server
│ └── transport
│ ├── stdio
│ ├── sse
│ └── streamable
└── version
設定フラグ
グローバルフラグ:
--log-level(debug|info|warn|error、デフォルトinfo)--log-format(console|json、デフォルトconsole)--kubeconfig(任意)
ネットワークトランスポートフラグ(sse、streamable):
--port(デフォルト8080)--health-port(デフォルト8081)--allow-origins(デフォルト*)
SSE 専用フラグ:
--base-url(デフォルトhttp://localhost:<port>)
トランスポートエンドポイント
- StreamableHTTP MCP エンドポイント:
POST /mcp - ヘルスエンドポイント(SSE/Streamable のみ):
GET /healthzGET /readyz
ツールの概要
1. 汎用リソース操作
各 API グループプレフィックスに対して、サーバーは以下を公開します:
LIST_<PREFIX>_RESOURCESGET_<PREFIX>_RESOURCEDESCRIBE_<PREFIX>_RESOURCECREATE_<PREFIX>_RESOURCEUPDATE_<PREFIX>_RESOURCEDELETE_<PREFIX>_RESOURCE
登録済みプレフィックス:
K8S
2. コア/クラスターユーティリティ
LIST_NAMESPACESLIST_NODESGET_POD_LOGSANALYZE_POD_LOGS
3. ユーティリティツール
GET_CURRENT_TIMEGET_CLUSTER_INFOGET_API_RESOURCESSEARCH_RESOURCESEXPLAIN_RESOURCEAPPLY_MANIFESTVALIDATE_MANIFESTDIFF_MANIFESTGET_EVENTS
4. プロンプトツール
KUBERNETES_YAML_PROMPTKUBERNETES_QUERY_PROMPTTROUBLESHOOT_PODS_PROMPTTROUBLESHOOT_NODES_PROMPTTROUBLESHOOT_NETWORK_PROMPT
5. メトリクスツール
GET_NODE_METRICSGET_POD_METRICSGET_RESOURCE_METRICSGET_TOP_CONSUMERS
アーキテクチャ(k8s 形式の group/version)
cmd/kubernetes-mcp/
main.go
app/
pkg/
client/kubernetes/
config/
handlers/
apis/
core/v1/
apps/v1/
base/
tool/
prompt/
metrics/
server/
health/
logger/
Docker
ビルド:
docker build -t kubernetes-mcp:latest .
明示的なトランスポートコマンドで実行:
docker run --rm -it \
-v ~/.kube:/root/.kube \
kubernetes-mcp:latest \
server transport stdio --kubeconfig /root/.kube/config
Kubernetes へのデプロイ
デプロイ用マニフェストは /deploy/kubernetes にあります。
make k8s-deploy
# or
make k8s-deploy-kustomize
開発
make build
make test
Justfile + ワンクリックスキルインストール
このリポジトリには、プロジェクト利用スキルが skills/kubernetes-mcp-usage に含まれています。
# list just tasks
just
# common dev tasks
just build
just test
# install the project skill into Codex
just skill-install
# overwrite existing install
just skill-install-force
スキルのインストール先:
$CODEX_HOME/skills/kubernetes-mcp-usage(CODEX_HOME が設定されていない場合は ~/.codex/skills/kubernetes-mcp-usage)。
インストール後、スキルを反映するために Codex を再起動してください。
注意事項
- リソース操作は、クラスターの API の可用性と RBAC 権限に依存します。
- ingress/リバースプロキシの背後でネットワークトランスポートを使用する場合、SSE のために
--base-urlを正しく設定してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。