mcpField
K
K8s MCP Server (Go)

K8s MCP Server (Go)

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

K8s MCP Server (Go) について

K8s MCP Server (Go) は、権限を制御しながらクラスターを確認したい AI アシスタントや運用担当者向けの Kubernetes MCP サーバーです。既定では読み取り専用で、限定操作またはフルアクセスのモードも明示的に選べます。

主な機能

  1. 01既定で読み取り専用アクセス
  2. 02readonly、readwrite、dangerous モードの明示設定
  3. 03ワークロード、ログ、イベント、ノードの確認
  4. 04CPU とメモリの使用状況の表示
  5. 05MCPB バンドルまたはネイティブバイナリでの導入

活用シーン

  1. 01リソースを変更せずに異常な Pod を診断
  2. 02ワークロードのログと最近のイベントを確認
  3. 03ノードまたは Pod のリソース使用量を確認
  4. 04readwrite モードで選択したデプロイ操作を実行

MCP 対応

MCP クライアントに Kubernetes の確認・運用ツールを提供します。利用可能なツールは設定した権限モードによって異なります。

設定

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

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

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

リポジトリ
パッケージ
mcpbk8s-mcp-go_0.4.6_darwin_amd64.mcpb
mcpbk8s-mcp-go_0.4.6_darwin_arm64.mcpb
mcpbk8s-mcp-go_0.4.6_linux_amd64.mcpb
mcpbk8s-mcp-go_0.4.6_linux_arm64.mcpb
mcpbk8s-mcp-go_0.4.6_windows_amd64.mcpb
mcpbk8s-mcp-go_0.4.6_windows_arm64.mcpb

ツール

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

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

詳細

k8s-mcp-go

AI エージェントが安全に Kubernetes にアクセスできる、デフォルトで読み取り専用のツールです。

AI アシスタントが、制限のない kubectl を与えられることなく、クラスターを安全に調査できる Kubernetes MCP サーバーです。

GitHub リリース ライセンス Go MCP

特長

  • デフォルトで読み取り専用:AI にクラスターを変更する権限を与えずに、診断に活用できます。
  • 明示的な権限モード:アシスタントの起動前に、readonly、readwrite、dangerous を選択できます。
  • Docker 不要:MCPB バンドルまたは単一のネイティブバイナリでインストールできます。
  • Kubernetes に特化した可視性:ポッド、デプロイメント、サービス、ログ、イベント、ノード、リアルタイムの CPU/メモリ使用量を調査できます。
  • レジストリに対応した配布:MCP Registry の利用者やパッケージ化されたクライアント向けに、io.github.kaneg/k8s-mcp-go として公開されています。

配布先

  • MCP Registry:io.github.kaneg/k8s-mcp-go として公開されています。
  • PulseMCP:公式の server.json とともに、MCP エコシステムからインデックスされています。
  • Claude Code Marketplaces:MCPB のインストールメタデータとともに掲載されています。

理由

ほとんどの AI エージェントは Kubernetes ツールを使用できます。 本当の課題は、間違ったものを変更させない方法です。

AI に生の kubectl アクセスを与えるのは危険です。優れたモデルであっても、次のような操作を誤る可能性があります。

  • 間違ったリソースを削除する
  • 間違ったワークロードを再起動する
  • 危険な変更を適用する
  • デバッグセッションを本番環境のインシデントに変えてしまう

k8s-mcp-go は、制限のないシェルアクセスの代わりに、AI エージェントが Kubernetes を操作するための安全策を備えたインターフェースを提供します。

実際の現場で生じる、次の問いに答えるために作られています。

クラスターを壊させることなく、AI に Kubernetes の作業を手伝わせるにはどうすればよいでしょうか?

権限モード

あらかじめ権限の範囲を選択します。

希望する操作モード
「AI に調査や診断をさせたいが、何も変更させたくない」readonly
「スケーリングや再起動など、安全な運用操作を許可する」readwrite
「クラスターへの全権限を与える」dangerous
readonly(デフォルト)

診断、調査、安全な探索に適しています。

AI は次のような操作を行えます。

  • ポッド、デプロイメント、サービス、ノード、名前空間を一覧表示する
  • ログやイベントを読み取る
  • クラスターの状態を調査する
  • リソース使用量を確認する

ワークロードの変更やリソースの削除はできません。

readwrite

制御された運用ワークフローに適しています。

AI は次のような操作を行えます。

  • デプロイメントをスケーリングする
  • デプロイメントを再起動する
  • ステートフルセットを再起動する
  • イメージを更新する
  • デプロイメントにパッチを適用する
  • 名前空間を作成する

最も破壊的な操作は引き続き実行できません。

dangerous

すべてのアクセスを許可します。

AI に次の操作を許可したい場合に限り使用してください。

  • リソースを削除する
  • 名前空間を削除する
  • 任意の YAML を適用する

判断に迷う場合は、readonly を使用してください。

クイックスタート

オプション 1:MCPB のインストール(推奨)

お使いのプラットフォーム用の .mcpb バンドルをリリースからダウンロードします。MCPB 対応クライアント(Claude Desktop、Cursor など)から直接インストールできます。Docker、Go、手動セットアップは不要です。

OSアーキテクチャファイル
Linuxx86_64k8s-mcp-go_*_linux_amd64.mcpb
LinuxARM64k8s-mcp-go_*_linux_arm64.mcpb
macOSIntelk8s-mcp-go_*_darwin_amd64.mcpb
macOSApple Siliconk8s-mcp-go_*_darwin_arm64.mcpb
Windowsx86_64k8s-mcp-go_*_windows_amd64.mcpb
WindowsARM64k8s-mcp-go_*_windows_arm64.mcpb
オプション 2:バイナリを手動でインストールする

Releases からバイナリアーカイブをダウンロードして、展開します。

# Example: Linux x86_64
tar xzf k8s-mcp-go_*_linux_amd64.tar.gz
chmod +x k8s-mcp-go
sudo mv k8s-mcp-go /usr/local/bin/

その後、MCP クライアントに追加します。

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "k8s": {
      "command": "k8s-mcp-go",
      "args": ["-mode=readonly"]
    }
  }
}

Cursor(.cursor/mcp.json):

{
  "mcpServers": {
    "k8s": {
      "command": "k8s-mcp-go",
      "args": ["-mode=readonly"]
    }
  }
}

クライアントを再起動して、クラスターについて質問してみましょう。

プロンプトの例

インストール後、AI アシスタントに次のような質問をしてみましょう。

  • 「すべての名前空間で、正常でないポッドを表示してください。」
  • 「最も多くのメモリを使用しているポッドはどれですか?」
  • 「最近の警告イベントを要約してください。」
  • 「このデプロイメントを調べて、準備が整っていない理由を説明してください。」
  • 「このデプロイメントのロールアウト状況を確認してください。」

readonly モードでは、アシスタントは調査できますが、クラスターを変更することはできません。

kubectl だけでは不十分な理由

問題は、AI が Kubernetes と通信できるかどうかではありません。 問題は、安全に通信できるかどうかです。

kubectl は強力ですが、AI の動作に対する製品レベルの権限モードは備えていません。 k8s-mcp-go を使えば、アシスタントに許可する操作を選べます。

  • 調査のみ
  • 制限付きの運用操作
  • または、すべての操作

権限の境界こそが、この製品の本質です。

利用可能なツール(合計 35 個)

ツールは権限レベルごとに分類されています。 ツール名は get、list、delete などの動詞で始まります。top_nodes と top_pods は、Kubernetes で定着している kubectl top の用語をそのまま使用しています。

読み取り専用(24 個)
ツール説明
get_server_infoサーバーのバージョン、モード、Kubernetes 設定の参照元、実行時の詳細を表示します
resolve_workloadアプリケーション/ワークロード名を対応するリソースに解決し、次に推奨されるツールを提示します
list_podsポッドを一覧表示します。all_namespaces=true をサポートします
get_podポッドの詳細を取得します
get_pod_logsポッドのログを取得します
list_deploymentsデプロイメントを一覧表示します。all_namespaces=true をサポートします
get_deploymentデプロイメントの詳細を取得します
list_statefulsetsStatefulSet を一覧表示します。all_namespaces=true をサポートします
get_statefulsetStatefulSet の詳細を取得します
list_servicesサービスを一覧表示します。all_namespaces=true をサポートします
get_serviceサービスの詳細を取得します
list_configmapsConfigMap を一覧表示します。all_namespaces=true をサポートします
get_configmapConfigMap のデータを取得します
list_secretsSecret を一覧表示します(キーのみ)。all_namespaces=true をサポートします
get_secretSecret のメタデータとキーを取得します
list_pvcPersistentVolumeClaim を一覧表示します。all_namespaces=true をサポートします
list_ingressIngress リソースを一覧表示します。all_namespaces=true をサポートします
list_jobsJob を一覧表示します。all_namespaces=true をサポートします
top_nodesノードの現在の CPU とメモリの使用量
top_podsポッドの現在の CPU とメモリの使用量
list_nodesクラスターのノードを一覧表示します
list_namespaces名前空間を一覧表示します
get_cluster_overviewクラスターの正常性の概要
list_eventsイベントを一覧表示します
読み取り/書き込み(7 個)
ツール説明
scale_deploymentデプロイメントのレプリカ数を変更します
restart_deploymentデプロイメントをローリング再起動します
restart_statefulsetStatefulSet をローリング再起動します
set_imageコンテナイメージを更新します
get_rollout_statusロールアウトの進行状況を確認します
create_namespace新しい名前空間を作成します
patch_deployment戦略的マージパッチを適用します
危険な操作(7 個)
ツール説明
delete_podポッドを削除します
delete_deploymentデプロイメントを削除します
delete_statefulsetStatefulSet とそのポッドを削除します
delete_daemonsetDaemonSet とそのポッドを削除します
delete_resource専用の削除ツールがないリソースを削除します
delete_namespace名前空間とすべてのリソースを削除します
apply_yaml任意の YAML マニフェストを適用します

上記に専用の削除ツールがある場合は、そちらを優先してください。それ以外の種類のリソースには、代替手段として delete_resource を使用します。Kubernetes のディスカバリーを通じて、名前空間スコープとクラスター スコープのどちらのリソースかを解決します。

{"api_version":"v1","kind":"ServiceAccount","namespace":"apps","name":"builder"}
{"api_version":"rbac.authorization.k8s.io/v1","kind":"ClusterRole","name":"auditor"}

Kubernetes の設定

設定は次の順序で選択されます。

  1. KUBECONFIG が設定されている場合は、指定されたファイル。
  2. Pod のクラスター内 ServiceAccount 設定。
  3. クラスター外で実行する場合は、~/.kube/config。

明示的に指定された KUBECONFIG が優先されます。読み込めない場合、サーバーは Pod の ServiceAccount に暗黙に切り替えるのではなく、エラーを返します。 クラスター内設定では Kubernetes のマウントされたトークンファイルを使用するため、トークンを kubeconfig にコピーしなくても、投影された ServiceAccount トークンのローテーションが引き続き機能します。

環境変数

変数説明
KUBECONFIGkubeconfig の明示的なパスです。設定されていない場合は、クラスター内設定を使用するか、~/.kube/config にフォールバックします。

ソースからビルドする

git clone https://github.com/kaneg/k8s-mcp-go.git
cd k8s-mcp-go
go build -o k8s-mcp-go .

ライセンス

MIT

コメント

MCP は初めてですか?

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

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