Mcp Kubernetes Server について
Mcp Kubernetes Serverは、Kubernetes運用者やAIアシスタント向けに、自然言語での問い合わせとクラスタリソース管理を提供します。kubectlとKubernetes Pythonクライアントを組み合わせ、リソースの一覧、確認、作成、変更、スケーリング、削除に対応します。
主な機能
- 01自然言語の問い合わせをkubectlコマンドに変換
- 02複数の名前空間にまたがるPodとDeploymentの一覧表示
- 03リソースの作成、確認、変更、削除
- 04Deploymentのスケーリングとリソース設定の管理
- 05kubectlまたはKubernetes Pythonクライアントの利用
活用シーン
- 01問い合わせでクラスタ内のPodやDeploymentを一覧表示
- 02名前空間、Pod、Deploymentの管理
- 03ラベル、アノテーション、Deployment設定の変更
- 04Deploymentのスケーリングとラベルによる絞り込み
MCP 対応
自然言語での問い合わせやリソース管理など、Kubernetesクラスタ操作をMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes MCP サーバー
Kubernetes クラスターへの自然言語処理と API アクセスを提供する軽量な MCP サーバーです。kubectl コマンドと Kubernetes Python クライアントの両方を組み合わせています。
https://github.com/user-attachments/assets/48e061cd-3e85-40ff-ab04-a1a2b9bbd152
✨ 機能
- 自然言語インターフェース:英語の自然なクエリを kubectl コマンドに変換します
- すべての名前空間にまたがって Pod とデプロイメントを一覧表示します
- 対応していないクエリの場合は、汎用のリソース一覧表示にフォールバックします
- 完全な CRUD 操作:
- 🆕 API エンドポイント経由で名前空間、Pod、デプロイメントを作成/削除します
- 🔍 クラスターリソースを調査します
- ✏️ ラベル、アノテーション、デプロイメント設定を変更します
- 🗑️ 適切に削除します
- 📊 デプロイメントをスケーリングします
- デュアル実行モード:
kubectlコマンドとの統合- Kubernetes Python クライアント(公式 SDK)
- 高度な機能:
- 名前空間の検証(DNS-1123 準拠)
- ラベルによるフィルタリング
- 猶予期間の制御
- コマンドの自動フォールバック
- リソース管理(CPU、メモリ)
- 環境変数の設定
📦 インストール
前提条件
- Python 3.11+
- Kubernetes クラスターへのアクセス
kubectlがローカルで設定済みであること- UV がインストール済みであること
# Clone repository
git clone https://github.com/ductnn/mcp-kubernetes-server.git
cd mcp-kubernetes-server
# Create virtual environment
uv venv .venv
# Activate (Unix)
source .venv/bin/activate
# Install dependencies
uv pip install -r requirements.txt
🚀 使用方法
自然言語処理
このサーバーは、リソースの一覧表示に関する基本的な自然言語クエリをサポートしています。
# List all pods
result = nl_processor.process("Show me all pods")
# List all deployments
result = nl_processor.process("Show me all deployments")
# Query with namespace
result = nl_processor.process("Show me all resources", "kube-system")
より複雑な操作には、専用の API エンドポイントを使用してください。
# Create a pod
pod_service.create_pod(
name="my-pod",
namespace="default",
image="nginx:latest",
labels={"app": "my-app"}
)
# Create a deployment
deployment_service.create_deployment(
name="my-deployment",
namespace="default",
image="nginx:latest",
replicas=3
)
# Delete a namespace
namespace_service.delete("my-namespace", force=True)
API エンドポイント
このサーバーは、すべての操作に対応する RESTful エンドポイントを提供します。
/api/pods- Pod 操作/api/deployments- デプロイメント操作/api/namespaces- 名前空間操作/api/cluster- クラスター操作/api/nlp- 自然言語処理
🤖 AI アシスタントでの使用方法
Claude Desktop
- Claude Desktop を開き、
Settings->Developerモードを選択 ->Edit configを選択して、claude_desktop_config.jsonファイルを開いて編集します。
{
"mcpServers": {
"kubernetes": {
"command": "/path-to-your-uv/uv",
"args": [
"--directory",
"/path-you-project/", // Example for me /Users/ductn/mcp-kubernetes-server
"run",
"main.py"
]
}
}
}
- 次に、Claude Desktop を再起動して使用します :)
🧪 テスト
テストスイートを実行します。
# Run all tests
pytest
# Run specific test file
pytest tests/unit/test_pod_service.py
# Run with coverage
pytest --cov=.
📝 ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。