Skip to main content
Glama

Kubernetes MCP サーバー

GitHubライセンス npm PyPI - バージョン GitHub リリース (最新の SemVer) 建てる

✨ 機能| 🚀 はじめに| 🎥 デモ| ⚙️ 設定| 🛠️ ツール| 🧑‍💻 開発

https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e

✨ 特徴

KubernetesOpenShiftをサポートする強力かつ柔軟な Kubernetes Model Context Protocol (MCP)サーバー実装。

  • ✅ 構成:

    • Kubernetes 構成の変更を自動的に検出し、MCP サーバーを更新します。

    • 現在のKubernetes .kube/configまたはクラスター内の構成を表示および管理します。

  • ✅ 汎用 Kubernetes リソース:任意の Kubernetes または OpenShift リソースに対して操作を実行します。

    • 任意の CRUD 操作 (作成または更新、取得、一覧、削除)。

  • ✅ ポッド: ポッド固有の操作を実行します。

    • すべての名前空間または特定の名前空間内のポッドを一覧表示します

    • 指定された名前空間から名前でポッドを取得します

    • 指定された名前空間から名前でポッドを削除します

    • 指定された名前空間から名前別にポッドのログを表示します

    • ポッドにexe を実行してコマンドを実行します。

    • ポッド内でコンテナ イメージを実行し、オプションで公開します。

  • ✅ 名前空間: Kubernetes 名前空間を一覧表示します。

  • ✅ イベント: すべての名前空間または特定の名前空間の Kubernetes イベントを表示します。

  • ✅ プロジェクト: OpenShift プロジェクトを一覧表示します。

  • ☸️ ヘルム:

    • 現在の名前空間または指定された名前空間に Helm チャートをインストールします

    • すべての名前空間または特定の名前空間の Helm リリースを一覧表示します

    • 現在の名前空間または指定された名前空間内の Helm リリースをアンインストールします

他のKubernetes MCPサーバー実装とは異なり、これはkubectlhelmコマンドラインツールの単なるラッパーではありません。Kubernetes APIサーバーと直接やり取りするGoベースのネイティブ実装です。

システムに外部依存関係やツールをインストールする必要はありません。ネイティブバイナリを使用する場合は、Node.jsやPythonをシステムにインストールする必要はありません。

  • ✅ 軽量: サーバーは、Linux、macOS、Windows 用の単一のネイティブバイナリとして配布されます。

  • ✅ 高パフォーマンス / 低レイテンシ: 外部コマンドの呼び出しと待機のオーバーヘッドなしで、Kubernetes API サーバーと直接対話します。

  • ✅ クロスプラットフォーム: Linux、macOS、Windows のネイティブバイナリとして利用できるほか、npm パッケージ、Python パッケージ、コンテナー/Docker イメージとしても利用できます。

  • ✅ 構成可能: サーバーの動作を構成するためのコマンドライン引数をサポートします。

  • ✅ 十分にテスト済み: サーバーには、さまざまな Kubernetes 環境にわたって信頼性と正確性を確保するための広範なテスト スイートがあります。

Related MCP server: k8s-interactive-mcp

🚀 はじめに

要件

  • Kubernetes クラスターへのアクセス。

クロードデスクトップ

npxの使用

npm がインストールされている場合は、これが Claude Desktop でkubernetes-mcp-serverを使い始める最も早い方法です。

claude_desktop_config.jsonを開き、mcp サーバーをmcpServersのリストに追加します。

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ]
    }
  }
}

VS Code / VS Code インサイダー

次のリンクをクリックして、VS Code Insiders に Kubernetes MCP サーバー拡張機能をインストールします。

または、次のコマンドを実行して拡張機能を手動でインストールすることもできます。

# For VS Code
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'

グースCLI

Goose CLI は、人工知能 (AI) エージェントを導入するための最も簡単 (かつ安価) な方法です。

npmの使用

npm がインストールされている場合は、これがkubernetes-mcp-serverを使い始める最も早い方法です。

goose config.yamlを開き、mcp サーバーをmcpServersのリストに追加します。

extensions:
  kubernetes:
    command: npx
    args:
      - -y
      - kubernetes-mcp-server@latest

🎥 デモ

OpenShift デプロイメントの診断と自動修正

Claude Desktop が Kubernetes MCP サーバーを活用して、ユーザーの支援なしに OpenShift のデプロイメントを自動的に診断および修正する方法を紹介するデモです。

https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941

Vibe シンプルなゲームをコーディングして OpenShift にデプロイする

このデモでは、VS Code を使用してシンプルなゲームをVibe Codingするプロセスと、 Podman MCP サーバーと Kubernetes MCP サーバーを活用してそれを OpenShift にデプロイする方法について説明します。

VS Code で Kubernetes MCP サーバーを使用して GitHub Copilot を強化 - ワンクリック セットアップ!

このデモでは、リンクをクリックするだけで VS コードで Kubernetes MCP サーバーをセットアップする方法を紹介します。

⚙️ 構成

Kubernetes MCP サーバーは、コマンド ライン (CLI) 引数を使用して構成できます。

CLI 実行ファイルは、 npxuvxを使用するか、最新リリースのバイナリをダウンロードすることで実行できます。

# Run the Kubernetes MCP server using npx (in case you have npm and node installed)
npx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using uvx (in case you have uv and python installed)
uvx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using the latest release binary
./kubernetes-mcp-server --help

設定オプション

オプション

説明

--sse-port

MCP サーバーを Server-Sent Event (SSE) モードで起動し、指定されたポートでリッスンします。

--log-level

ログレベル( 0~9の値)を設定します。kubectl のログレベルと同様です。

--kubeconfig

Kubernetes 構成ファイルへのパス。指定されていない場合は、構成(クラスター内、デフォルトの場所など)の解決を試みます。

--read-only

設定すると、MCPサーバーは読み取り専用モードで実行されます。つまり、Kubernetesクラスターへの書き込み操作(作成、更新、削除)は許可されません。これは、変更を加えずにクラスターのデバッグや検査を行う際に便利です。

--disable-destructive

設定すると、MCPサーバーはKubernetesクラスター上のすべての破壊的な操作(削除、更新など)を無効にします。これは、誤って変更を加えてしまうことなくクラスターのデバッグや検査を行うのに役立ちます。このオプションは--read-onlyが使用されている場合は無効です。

🛠️ ツール

configuration_view

現在の Kubernetes 構成コンテンツを kubeconfig YAML として取得する

パラメータ:

  • minified ( boolean 、オプション、デフォルト: true )

    • 設定の縮小版を返す

    • true場合、現在のコンテキストと関連する構成部分のみを保持します

    • falseの場合、すべてのコンテキスト、クラスタ、認証情報、およびユーザーを返します。

events_list

すべての名前空間から現在のクラスター内のすべての Kubernetes イベントを一覧表示します

パラメータ:

  • namespace ( string 、オプション)

    • イベントを取得する名前空間。指定しない場合は、すべての名前空間のイベントがリストされます。

helm_install

指定された名前とチャートを使用して、現在の名前空間または指定された名前空間に Helm チャートをインストールします。

パラメータ:

  • chartstring 、必須)

    • インストールするHelmチャートの名前

    • ローカルパスまたはリモートURLを指定できます

    • 例: ./my-chart.tgzまたはhttps://example.com/my-chart.tgz

  • valuesobject 、オプション)

    • Helmチャートに渡す値

    • 例: {"key": "value"}

  • name ( string 、オプション)

    • Helmリリースの名前

    • 指定されていない場合はランダムな名前

  • namespace ( string 、オプション)

    • Helmチャートをインストールする名前空間

    • 指定されていない場合は、設定された名前空間を使用します

helm_list

現在または指定された名前空間(または指定された場合はすべての名前空間)のすべての Helm リリースを一覧表示します。

パラメータ:

  • namespace ( string 、オプション)

    • Helmリリースをリストするための名前空間

    • 指定されていない場合は、設定された名前空間を使用します

  • all_namespaces ( boolean 、 オプション )

    • trueの場合、すべての名前空間からの Helm リリースが一覧表示されます。

    • falseの場合、指定された名前空間からの Helm リリースを一覧表示します。

helm_uninstall

現在の名前空間または指定された名前空間内の指定された名前の Helm リリースをアンインストールします

パラメータ:

  • name ( string 、必須)

    • アンインストールする Helm リリースの名前

  • namespace ( string 、オプション)

    • Helmリリースをアンインストールする名前空間

    • 指定されていない場合は、設定された名前空間を使用します

namespaces_list

現在のクラスター内のすべての Kubernetes 名前空間を一覧表示する

**パラメータ:**なし

pods_delete

現在の名前空間または指定された名前空間内の指定された名前の Kubernetes Pod を削除します。

パラメータ:

  • name ( string 、必須)

    • 削除するポッドの名前

  • namespace ( string 、必須)

    • Podを削除する名前空間

pods_exec

指定された名前とコマンドを使用して、現在または指定された名前空間の Kubernetes Pod でコマンドを実行します。

パラメータ:

  • command ( string[] 、必須)

    • Podコンテナで実行するコマンド

    • 最初の項目はコマンド、残りは引数です

    • 例: ["ls", "-l", "/tmp"]

  • name (文字列、必須)

    • ポッドの名前

  • namespace (文字列、必須)

    • ポッドの名前空間

  • containerstring 、オプション)

    • ログを取得するポッドコンテナの名前

pods_get

現在の名前空間または指定された名前空間で、指定された名前の Kubernetes Pod を取得します。

パラメータ:

  • name ( string 、必須)

    • ポッドの名前

  • namespace ( string 、必須)

    • Podを取得する名前空間

pods_list

すべての名前空間から現在のクラスター内のすべての Kubernetes ポッドを一覧表示します

パラメータ:

  • labelSelector ( string 、オプション)

    • Kubernetesラベルセレクター(例:'app=myapp,env=prod' または 'app in (myapp,yourapp)')。このオプションを使用して、ラベルでポッドをフィルタリングします。

pods_list_in_namespace

現在のクラスター内の指定された名前空間内のすべての Kubernetes ポッドを一覧表示します。

パラメータ:

  • namespace ( string 、必須)

    • ポッドを一覧表示する名前空間

  • labelSelector ( string 、オプション)

    • Kubernetesラベルセレクター(例:'app=myapp,env=prod' または 'app in (myapp,yourapp)')。このオプションを使用して、ラベルでポッドをフィルタリングします。

pods_log

現在の名前空間または指定された名前空間内の Kubernetes Pod のログを取得します。

パラメータ:

  • name ( string 、必須)

    • ログを取得するポッドの名前

  • namespace ( string 、必須)

    • Podログを取得する名前空間

  • containerstring 、オプション)

    • ログを取得するポッドコンテナの名前

pods_run

指定されたコンテナ イメージとオプションの名前を使用して、現在の名前空間または指定された名前空間で Kubernetes Pod を実行します。

パラメータ:

  • imagestring 、必須)

    • ポッドで実行するコンテナイメージ

  • namespace ( string 、必須)

    • Podを実行する名前空間

  • name ( string 、オプション)

    • ポッドの名前(指定されていない場合はランダムな名前)

  • portnumber 、オプション)

    • Podコンテナから公開するTCP/IPポート

    • 提供されていない場合はポートは公開されません

projects_list

現在のクラスター内のすべての OpenShift プロジェクトを一覧表示します

resources_create_or_update

リソースのYAMLまたはJSON表現を指定して、現在のクラスター内のKubernetesリソースを作成または更新します。

パラメータ:

  • resourcestring 、必須)

    • Kubernetes リソースの表現を含む JSON または YAML

    • apiVersion、kind、metadata、specなどのトップレベルフィールドを含める必要があります

一般的な apiVersion と kind には次のものがあります:

  • v1 ポッド

  • v1 サービス

  • v1ノード

  • apps/v1 デプロイメント

  • networking.k8s.io/v1 イングレス

resources_delete

現在のクラスター内の Kubernetes リソースを削除する

パラメータ:

  • apiVersion ( string 、必須)

    • リソースの apiVersion (例: v1apps/v1networking.k8s.io/v1 )

  • kind ( string 、必須)

    • リソースの種類 (例: PodServiceDeploymentIngress )

  • name ( string 、必須)

    • リソースの名前

  • namespace ( string 、オプション)

    • 名前空間リソースを削除する名前空間

    • クラスタスコープのリソースでは無視されます

    • 指定されていない場合は設定された名前空間を使用します

resources_get

現在のクラスター内のKubernetesリソースを取得する

パラメータ:

  • apiVersion ( string 、必須)

    • リソースの apiVersion (例: v1apps/v1networking.k8s.io/v1 )

  • kind ( string 、必須)

    • リソースの種類 (例: PodServiceDeploymentIngress )

  • name ( string 、必須)

    • リソースの名前

  • namespace ( string 、オプション)

    • 名前空間リソースを取得する名前空間

    • クラスタスコープのリソースでは無視されます

    • 指定されていない場合は設定された名前空間を使用します

resources_list

現在のクラスター内の Kubernetes リソースとオブジェクトを一覧表示する

パラメータ:

  • apiVersion ( string 、必須)

    • リソースの apiVersion (例: v1apps/v1networking.k8s.io/v1 )

  • kind ( string 、必須)

    • リソースの種類 (例: PodServiceDeploymentIngress )

  • namespace ( string 、オプション)

    • 名前空間リソースを取得する名前空間

    • クラスタスコープのリソースでは無視されます

    • 指定されていない場合は、すべての名前空間のリソースを一覧表示します

  • labelSelector ( string 、オプション)

    • Kubernetes ラベルセレクター(例:'app=myapp,env=prod' または 'app in (myapp,yourapp)')。このオプションを使用して、ラベルでポッドをフィルタリングします。

🧑‍💻 開発

mcp-inspectorで実行する

プロジェクトをコンパイルし、 mcp-inspectorを使用して Kubernetes MCP サーバーを実行し、MCP サーバーを検査します。

# Compile the project
make build
# Run the Kubernetes MCP server with mcp-inspector
npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server
A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
13hResponse time
3wRelease cycle
17Releases (12mo)
Commit activity
Issues opened vs closed

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • The official MCP Server from Mia-Platform to interact with Mia-Platform Console

  • MCP server for Klever blockchain smart contract development.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/containers/kubernetes-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server