Kubernetes MCP Server について
Kubernetes MCP Serverは、Kubernetesクラスターの操作をMCPクライアントに公開し、自然言語による管理を可能にします。ワークロード、サービス、ネームスペース、ノードに加え、メトリクス確認や保守操作にも対応します。
主な機能
- 01Podの絞り込みと確認
- 02Podログとメトリクスの取得
- 03デプロイのスケーリングとロールアウト管理
- 04サービスの確認と公開
- 05ネームスペースの作成と管理
- 06ノードの確認と保守
活用シーン
- 01Podの確認とログの取得
- 02デプロイのスケーリングやロールアウトの再起動
- 03デプロイをサービスとして公開
- 04保守のためにノードをドレイン
MCP 対応
Kubernetes操作をツールとしてMCPクライアントに提供し、自然言語によるクラスター操作を可能にします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes MCP サーバー
これは、MCP Python SDK を通じて包括的な Kubernetes 機能を提供する Model Context Protocol(MCP)サーバーです。MCP クライアントを通じて、自然言語で Kubernetes クラスターを操作できます。
機能
このサーバーは、論理的なモジュールに整理された幅広い Kubernetes 操作を提供します。
Pod の操作
- フィルタリングと出力形式のオプションを指定して Pod を取得
- 特定の Pod の詳細を表示
- さまざまなオプションを指定して Pod のログを取得
- Pod 内でコマンドを実行
- Pod のメトリクスを取得
Deployment の操作
- フィルタリングと出力形式のオプションを指定して Deployment を取得
- 特定の Deployment の詳細を表示
- Deployment をスケーリング
- Deployment のロールアウトを管理(ステータス、履歴、再起動、取り消し)
- Deployment のメトリクスを取得
Service の操作
- フィルタリングと出力形式のオプションを指定して Service を取得
- 特定の Service の詳細を表示
- Deployment を Service として公開
- Service にポートフォワード
Namespace の操作
- フィルタリングして Namespace を取得
- 特定の Namespace の詳細を表示
- Namespace を作成および削除
- Namespace のリソースクォータを取得
クラスターの操作
- クラスター情報を取得
- Node を取得して詳細を表示
- Node のスケジューリングを管理(cordon/uncordon)
- メンテナンスのために Node をドレイン
- クラスターのメトリクスを取得
前提条件
- Python 3.7+
- kubectl がインストールされ、設定されていること
- Kubernetes クラスターへのアクセス
- MCP クライアント(例:Claude Desktop)
インストール
- このリポジトリをクローンします
- 依存関係をインストールします:
pip install -r requirements.txt
使用方法
サーバーの実行
-
MCP Inspector を使用した開発モード:
python -m mcp.inspector src/k8s_mcp_server.py -
Claude Desktop にインストール:
python -m mcp.install src/k8s_mcp_server.py -
直接実行:
python src/k8s_mcp_server.py
ツールの使用
MCP クライアント経由で接続すると、自然言語で Kubernetes クラスターを操作できます。例:
- 「default namespace のすべての Pod を取得して」
- 「web namespace にある nginx という名前の Deployment の詳細を表示して」
- 「production namespace の frontend Pod からログを取得して」
- 「backend Deployment を 3 つのレプリカにスケーリングして」
- 「environment=staging のラベルを付けて、staging という新しい namespace を作成して」
プロジェクト構成
src/
├── k8s_mcp_server.py # Main server entry point
├── k8s_tools/ # Tool modules
│ ├── __init__.py
│ ├── pod_tools.py # Pod-related tools
│ ├── deployment_tools.py # Deployment-related tools
│ ├── service_tools.py # Service-related tools
│ ├── namespace_tools.py # Namespace-related tools
│ └── cluster_tools.py # Cluster-related tools
└── requirements.txt # Project dependencies
コントリビューション
コントリビューションを歓迎します!お気軽に Pull Request を送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。