mcpField
M
Mcp Cluster Api

Mcp Cluster Api

ローカル
github.com/linode開発ツール131 週間前に更新

Mcp Cluster Api について

Mcp Cluster Api は Kubernetes Cluster API(CAPI)のリソースを MCP に接続し、クラスターやマシンを調査・管理する運用担当者向けです。リソース照会、アップグレード判定、コントロールプレーン操作、トラブルシューティング用プロンプトを提供します。

主な機能

  1. 01CAPI クラスターの一覧と詳細表示
  2. 02マシンと Kubernetes リソースの照会
  3. 03クラスター kubeconfig の生成
  4. 04Kubernetes アップグレード可否の確認
  5. 05コントロールプレーンの状態確認とロールアウト
  6. 06クラスターとマシンの調査用プロンプト

活用シーン

  1. 01CAPI クラスターとマシンの棚卸し
  2. 02目標バージョンへのアップグレード可否の確認
  3. 03アクセス用クラスター kubeconfig の取得
  4. 04クラスターやマシンの問題調査

MCP 対応

この MCP サーバーは stdio でクライアントに接続し、CAPI と Kubernetes のリソース管理ツールおよび調査用プロンプトを公開します。コントロールプレーンのロールアウトなど、書き込みを行うツールもあります。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

capi-mcp

capi-mcp は、CAPI(Cluster API)リソースを Model Context Protocol(MCP) と連携させ、Kubernetes クラスターとマシンをプログラムおよびプロンプトベースで管理できるツールです。

MCP とは?

MCP(Model Context Protocol) は、ツールとプロンプトを標準化された方法で記述、呼び出し、管理するためのオープンプロトコルです。ツール、エージェント、UI 間の相互運用性を実現します。

CAPI とは?

CAPI(Cluster API) は、Kubernetes スタイルの API を使用して Kubernetes クラスターを宣言的に管理するための Kubernetes プロジェクトです。クラスターとそのインフラストラクチャーを作成、更新、管理するための一貫した方法を提供します。

前提条件

  • Go(v1.20 以降を推奨)
  • Make
  • npm
  • kubectl
  • Kubernetes クラスターへのアクセスと有効な kubeconfig.yaml

インストールとビルド

リポジトリをクローンして、バイナリをビルドします。

make build

リンティング

リンティングを実行します(golangci-lint がインストールされていない場合はインストールします)。

make lint

実行とテスト

トランスポートのサポート:capi-mcp は stdio トランスポートのみをサポートします。

ビルドしたバイナリで MCP inspector を実行するには、次のようにします。

npx @modelcontextprotocol/inspector -e KUBECONFIG=kubeconfig.yaml bin/capi-mcp

kubeconfig.yaml を実際の kubeconfig ファイルに置き換えてください。

Claude および VSCode での使用方法

Claude Desktop での使用

この MCP サーバーを Claude Desktop で使用するには、Claude の設定で構成する必要があります。

  1. バイナリをビルドする(まだビルドしていない場合):

    make build
    
  2. Claude の設定ファイルを確認する:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
    • Linux:~/.config/Claude/claude_desktop_config.json
  3. MCP サーバーの設定を追加する:

    {
      "mcpServers": {
        "capi-mcp": {
          "command": "/absolute/path/to/capi-mcp/bin/capi-mcp",
          "env": {
            "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml"
          }
        }
      }
    }
    
  4. Claude Desktop を再起動して、新しい設定を読み込みます。

  5. 接続を確認する:Claude との新しい会話で、開発者設定から CAPI MCP サーバーが接続され、実行中であることを確認できます。

    image
VSCode での使用
Claude 拡張機能を使用する場合

MCP をサポートする VSCode 拡張機能を通じて Claude を使用している場合:

  1. VSCode マーケットプレイスから Claude 拡張機能をインストールします。

  2. VSCode の設定または拡張機能の設定ファイルで MCP サーバーを構成します:

    {
      "claude.mcpServers": {
        "capi-mcp": {
          "command": "/absolute/path/to/capi-mcp/bin/capi-mcp",
          "env": {
            "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml"
          }
        }
      }
    }
    
  3. VSCode を再起動して、設定を適用します。

VSCode Toolsets を使用する場合

開発ワークフローを拡張するために、この MCP サーバーを VSCode Toolsets と連携させることもできます。

  1. ワークスペースに toolset の設定を作成します:

    • コマンドパレット(Cmd/Ctrl + Shift + P)を開きます
    • 「Toolsets: Configure Toolsets」を実行します
    • 新しい toolset の設定を追加します
  2. CAPI MCP toolset を構成します:

    {
      "name": "CAPI MCP Server",
      "description": "Cluster API management via MCP",
      "tools": [
        {
          "name": "capi-mcp",
          "command": "/absolute/path/to/capi-mcp/bin/capi-mcp",
          "env": {
            "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml"
          },
          "protocol": "mcp"
        }
      ]
    }
    
  3. toolset を使用します:

    • サイドバーの Toolsets パネルからアクセスします
    • コマンドパレットからツールを直接呼び出します
    • 他の VSCode AI 機能や拡張機能と連携させます

これにより、他の開発用 toolset と併せて、VSCode の開発環境内から CAPI 管理ツールを直接使用できます。

利用可能なツールとプロンプト

接続すると、Claude を使って次の操作を行えます。

ツール:

  • list_clusters - Kubernetes 環境内のすべての CAPI クラスターを一覧表示します
  • get_cluster - 特定のクラスターの詳細情報を取得します
  • get_cluster_kubeconfig - CAPI クラスターにアクセスするための kubeconfig を生成して取得します
  • check_upgrade_eligibility - クラスターを指定した Kubernetes バージョンに安全にアップグレードできるか確認します
  • list_machines - クラスター全体のすべてのマシン(ノード)を一覧表示します
  • get_machine - 特定のマシンの詳細情報を取得します
  • get_kube_resource - 名前、種類、API バージョンを指定して、任意の Kubernetes リソースを取得します
  • rollout_controlplane - コントロールプレーンの再起動を実行します(ローリングアップデートを開始します。読み取り専用ではありません)
  • get_control_plane_status - CAPI クラスターのコントロールプレーンコンポーネントのステータスを取得します

プロンプト:

  • debug_capi_cluster - クラスターの問題に関する段階的なデバッグガイダンスを取得します
  • debug_capi_machine - マシンの問題に関する段階的なデバッグガイダンスを取得します
  • restart_control_plane - クラスターのコントロールプレーンを再起動するための手順を取得します
使用例

次のような質問を Claude / Copilot にしてみましょう。

  • 「すべての CAPI クラスターを表示してください」
  • 「'production' という名前のクラスターのステータスはどうなっていますか?」
  • 「'staging' クラスター内のすべてのマシンを一覧表示してください」
  • 「'default' 名前空間にある 'dev-cluster' クラスターの kubeconfig を取得してください」
  • 「クラスターを Kubernetes v1.32.0 にアップグレードできるか確認してください」
  • 「debug_capi_cluster プロンプトを使って、クラスターのデバッグを手伝ってください」
  • 「クラスターのコントロールプレーンコンポーネントのステータスを取得してください」
  • 「'default' 名前空間にある、kind 'Deployment'、apiVersion 'apps/v1' の deployment 'my-app' を取得してください」

注: kubeconfig.yaml ファイルに、Kubernetes クラスター内の CAPI リソースへアクセスするために必要な権限が設定されていることを確認してください。rollout_controlplane のような一部のツールは書き込み操作を行うため、適切な RBAC 権限が必要です。

コメント

MCP は初めてですか?

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

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