mcpField
M
Mcp Kubernetes Server

Mcp Kubernetes Server

ローカル
github.com/ductnnクラウド・インフラ182 週間前に更新

Mcp Kubernetes Server について

Mcp Kubernetes Serverは、Kubernetes運用者やAIアシスタント向けに、自然言語での問い合わせとクラスタリソース管理を提供します。kubectlとKubernetes Pythonクライアントを組み合わせ、リソースの一覧、確認、作成、変更、スケーリング、削除に対応します。

主な機能

  1. 01自然言語の問い合わせをkubectlコマンドに変換
  2. 02複数の名前空間にまたがるPodとDeploymentの一覧表示
  3. 03リソースの作成、確認、変更、削除
  4. 04Deploymentのスケーリングとリソース設定の管理
  5. 05kubectlまたはKubernetes Pythonクライアントの利用

活用シーン

  1. 01問い合わせでクラスタ内のPodやDeploymentを一覧表示
  2. 02名前空間、Pod、Deploymentの管理
  3. 03ラベル、アノテーション、Deployment設定の変更
  4. 04Deploymentのスケーリングとラベルによる絞り込み

MCP 対応

自然言語での問い合わせやリソース管理など、Kubernetesクラスタ操作をMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Kubernetes MCP サーバー

Python Version License

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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

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