Kubernetes Monitor

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides a read-only interface to Kubernetes clusters for retrieving comprehensive cluster information and diagnosing issues, including namespace management, pod status monitoring, node capacity checking, and resource management across deployments and services.

k8s-mcp

Kubernetes クラスター用の Python ベースの読み取り専用モデル コンテキスト プロトコル (MCP)サーバー。クラスター情報を取得して問題を診断するための包括的な API を公開します。

クロードを使ったチャットの例

インストール

前提条件

  • Python 3.8以上
  • Kubernetes クラスターへのアクセス (kubeconfig またはクラスター内構成経由)
  • 必要な Python パッケージ ( pyproject.tomldependenciesを参照)
  • uv - https://github.com/astral-sh/uv
# To install uv curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository git clone git@github.com:vlttnv/k8s-mcp.git cd k8s-mcp # Install dependencies uv venv source .venv/bin/activate uv sync

Claude configure を使用する場合は、テキストエディタで ~/Library/Application Support/Claude/claude_desktop_config.json にある Claude for Desktop App の設定ファイルを開いてください。ファイルが存在しない場合は必ず作成してください。

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "k8s-mcp": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/k8s-mcp", "run", "server.py" ] } } }

コマンドフィールドに uv 実行ファイルへのフルパスを入力する必要があるかもしれません。これは、MacOS/Linuxでは which uv 、Windowsでは where uv を実行することで取得できます。

構成

アプリケーションは、Kubernetes クラスターに接続するために次の 2 つの方法を自動的に試行します。

  1. Kubeconfig ファイル: ローカルの kubeconfig ファイルを使用します (通常は~/.kube/configにあります)
  2. クラスタ内構成: Kubernetesポッド内で実行している場合は、サービスアカウントトークンを使用します。

kubeconfig が適切に設定されているか、適切な RBAC 権限を持つクラスター内で実行されている場合は、追加の構成は必要ありません。

使用法

以下は、Kubernetes クラスターとそのリソースについて Claude に質問できる便利なプロンプトの例です。

一般的なクラスターステータス

  • 「クラスターの全体的な健全性はどうですか?」
  • 「クラスター内のすべての名前空間を表示する」
  • 「クラスター内で利用可能なノードとそのステータスは何ですか?」
  • 「ノード全体のリソース使用率はどうですか?」

ポッドとデプロイメント

  • 「本番環境の名前空間内のすべてのポッドを一覧表示する」
  • 「CrashLoopBackOff 状態のポッドはありますか?」
  • 「再起動回数が多いポッドを表示」
  • 「すべての名前空間にわたるすべてのデプロイメントを一覧表示する」
  • 「どの展開が進行に失敗しているのですか?」

デバッグの問題

  • 「ステージング名前空間のポッドが失敗するのはなぜですか?」
  • 「本番環境の名前空間にあるサービスのYAML構成を取得する」
  • 「デフォルトの名前空間の最近のイベントを表示する」
  • 「保留状態のままになっているポッドはありますか?」
  • 「クラスターで ImagePullBackOff エラーが発生する原因は何ですか?」

リソース管理

  • 「クラスター内のノードのリソース消費量を表示してください」
  • 「クリーンアップする必要がある孤立したリソースはありますか?」
  • 「本番環境の名前空間内のすべてのサービスを一覧表示する」
  • 「ステージングと本番環境のリソース要求を比較する」

特定資源検査

  • 「kube-system の coredns デプロイメントの構成を表示してください」
  • 「ステージング中のリバースプロキシサービスの詳細を取得する」
  • 「ポッド xyz ではどのコンテナが実行されていますか?」
  • 「障害が発生したポッドのログを見せてください」

APIリファレンス

名前空間

  • get_namespaces() : クラスター内で利用可能なすべての名前空間を一覧表示する

ポッド

  • list_pods(namespace=None) : オプションで名前空間でフィルタリングされたすべてのポッドを一覧表示します。
  • failed_pods() : 失敗またはエラー状態のすべてのポッドを一覧表示します
  • pending_pods() : 保留状態のすべてのポッドを理由とともに一覧表示する
  • high_restart_pods(restart_threshold=5) : 再起動回数が閾値を超えるポッドを検索する

ノード

  • list_nodes() : すべてのノードとそのステータスを一覧表示する
  • node_capacity() : すべてのノードの利用可能な容量を表示する

導入とサービス

  • list_deployments(namespace=None) : すべてのデプロイメントを一覧表示する
  • list_services(namespace=None) : すべてのサービスを一覧表示する
  • list_events(namespace=None) : すべてのイベントを一覧表示する

リソース管理

  • orphaned_resources() : 所有者参照のないリソースを一覧表示する
  • get_resource_yaml(namespace, resource_type, resource_name) : 特定のリソースのYAML設定を取得する

ライセンス

MITライセンス

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude などの自然言語インターフェースを通じてクラスター情報を照会し、問題を診断できる、Kubernetes 用の読み取り専用 MCP サーバー。

  1. Installation
    1. Prerequisites
  2. Configuration
    1. Usage
      1. Examples
    2. API Reference
      1. Namespaces
      2. Pods
      3. Nodes
      4. Deployments & Services
      5. Resource Management
    3. License
      1. Contributing
        ID: oam68lbi8z