k8s-pilot について
k8s-pilotは、複数のKubernetesクラスターを一元管理するサーバーです。クラスターの確認やリソース操作を行うユーザー向けに、読み取り専用モード、コンテキスト切り替え、操作ガイド用プロンプトを備えています。
主な機能
- 01複数クラスター間のコンテキスト切り替え
- 02リソースの作成、更新、削除、確認
- 03書き込み操作を防ぐ読み取り専用モード
- 04リモートアクセス用Streamable HTTPトランスポート
- 05一般的なKubernetes操作を案内するプロンプト
活用シーン
- 01本番クラスターを変更せずに確認
- 02複数クラスターのリソース管理
- 03ガイド用プロンプトによるPodのトラブルシューティング
- 04クラスターの健全性確認やNamespace整理の計画
MCP 対応
Kubernetesリソース操作とガイド用プロンプトをMCPクライアントに公開します。stdioとStreamable HTTPのトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes クラスター群を統括する中央パイロット ✈️✈️
k8s_pilot は、複数の Kubernetes クラスターを一度に管理するための、軽量で一元化されたコントロールプレーンサーバーです。
強力なツールと直感的な API により、1 つのコックピットからすべてのクラスターを監視・操作できます。
🚀 概要
- 🔄 複数クラスターのコンテキスト切り替えに対応
- 🔧 一般的な Kubernetes リソースのほとんどで作成・読み取り・更新・削除(CRUD)操作が可能
- 🔒 クラスターを安全に調査できる読み取り専用モード
- ⚙️ Claude AI などに対応する MCP を基盤として使用
- 🌐 リモートアクセス用のストリーミング可能な HTTP トランスポートに対応
- 🤖 操作をガイドする MCP プロンプト
- 📝 書き込み操作のコンテキスト対応ログ
🧰 前提条件
- Python 3.13 以上
uvパッケージマネージャー- Kubernetes クラスターへのアクセス(
~/.kube/configまたはクラスター内設定)
# Install uv (if not installed)
# For MacOS
brew install uv
# For Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
インストール
# Clone the repository
git clone https://github.com/bourbonkk/k8s-pilot.git
cd k8s-pilot
# Launch with uv + MCP
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
🆕 v2.0 の新機能
- ストリーミング可能な HTTP トランスポート:HTTP 経由でリモートクラスターを管理できます(stdio に加えて対応)
- MCP プロンプト:一般的な K8s 操作向けの組み込みプロンプトテンプレート
- コンテキスト対応ログ:書き込み操作の進行状況を MCP コンテキスト経由で報告するようになりました
- バグ修正:Ingress および RBAC リソース用の API クライアントが不足していた問題を修正しました
- セキュリティ:ノード変更操作に読み取り専用チェックを追加しました
- Dockerfile:
uvパッケージマネージャーを使用するように更新し、ビルドを高速化しました
使い方
通常モード(フルアクセス)
# Start with full read/write access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
読み取り専用モード(安全な調査)
# Start in readonly mode - only read operations allowed
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --readonly
ストリーミング可能な HTTP モード(リモートアクセス)
# Start with Streamable HTTP transport for remote access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --transport streamable-http
コマンドラインオプション
# Show help
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --help
Docker で実行する
ローカルに uv をインストールせずに、公開済みの Docker イメージを使って k8s-pilot を直接実行できます。
コンテナからクラスターにアクセスできるように、~/.kube/config をマウントしてください。
docker run -i --rm \
-v ~/.kube/config:/root/.kube/config \
ghcr.io/bourbonkk/k8s-pilot:latest
読み取り専用モード
--readonly フラグを指定すると、Kubernetes クラスターへの書き込み操作をすべて防止する安全モードが有効になります。次のような用途に最適です。
- クラスターの調査:誤った変更を加えるリスクがありません
- 監査シナリオ:変更はせずに情報を確認できます
- 学習環境:安全に操作を試せます
- 本番環境の監視:変更のリスクがありません
保護される操作(読み取り専用モードではブロック)
pod_create、pod_update、pod_deletedeployment_create、deployment_update、deployment_deleteservice_create、service_update、service_deleteconfigmap_create、configmap_update、configmap_deletesecret_create、secret_update、secret_deletenamespace_create、namespace_delete- その他すべての作成・更新・削除操作
許可される操作(常に利用可能)
pod_list、pod_detail、pod_logsdeployment_list、deployment_getservice_list、service_getconfigmap_list、configmap_getsecret_list、secret_getnamespace_list、namespace_get- その他すべての一覧取得・取得操作
MCP プロンプト
k8s-pilot には、一般的な操作向けのプロンプトテンプレートが組み込まれています。
| プロンプト | 説明 |
|---|---|
troubleshoot_pod | Pod のトラブルシューティングを段階的に進めるガイド |
deployment_guide | アプリケーションのデプロイをガイドするワークフロー |
cluster_health_check | クラスターの包括的なヘルスチェック |
namespace_cleanup | 安全な Namespace クリーンアップ手順 |
Claude Desktop での使い方
この設定を使って、Claude 内から k8s_pilot MCP サーバーを実行します。
{
"mcpServers": {
"k8s_pilot": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py"
]
}
}
}
読み取り専用モードでは、次の設定を使用します。
{
"mcpServers": {
"k8s_pilot_readonly": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py",
"--readonly"
]
}
}
}
Docker では、次の設定を使用します(YOUR_USERNAME を実際の Mac ユーザー名に置き換えてください)。
{
"mcpServers": {
"k8s_pilot_docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/Users/YOUR_USERNAME/.kube/config:/root/.kube/config",
"ghcr.io/bourbonkk/k8s-pilot:latest"
]
}
}
}
<path-to-cloned-repo> を、リポジトリをクローンした実際のディレクトリに置き換えてください。
シナリオ
pypy Namespace に nginx:latest イメージを使用する Deployment を作成し、それに接続する Service も作成します。
主な機能
マルチクラスタ管理
- 複数の Kubernetes クラスターをシームレスに操作できます
- コンテキストを認識した操作を実行できます
- MCP プロンプトを使用して、クラスターを簡単に切り替えられます
リソース管理
- 以下のリソースを表示、作成、更新、削除できます:
- Deployments、Services、Pods
- ConfigMaps、Secrets、Ingresses
- StatefulSets、DaemonSets
- Roles、ClusterRoles
- PersistentVolumes と Claims
名前空間の操作
- 名前空間を作成、削除できます
- 名前空間内のすべてのリソースを一覧表示できます
- ラベルとリソースクォータを管理できます
ノード管理
- ノードの詳細と状態を表示できます
- ノードを Cordon/Uncordon し、ラベルや Taint を設定できます
- ノードごとに Pod を一覧表示できます
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。