MimiOps mcp server for Kubernetes について
MimiOpsは、AIエージェント向けにKubernetesの監視、調査、限定的な復旧操作を提供する方針重視のMCPサーバーです。リスクの高い変更を制限し、Helm、FluxCD、Karpenterの拡張を任意で利用できます。
主な機能
- 01クラスターとワークロードの確認
- 02ログとイベントの取得
- 03限定的な復旧操作
- 04Helmリリースの確認とロールバック
- 05FluxCDリソースの確認
- 06Karpenterノードプールの確認
活用シーン
- 01Podやワークロードの問題調査
- 02Helmリリース状態の確認
- 03FluxCDとKarpenterリソースの確認
MCP 対応
Kubernetesの確認と限定的な復旧のためのツールをMCPクライアントに公開します。破壊的操作は既定で制限され、フラグで有効化できます。拡張機能も選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/sergelogvinov/mimiops-mcp:v0.5.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/sergelogvinov/mimiops-mcp:v0.5.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mimiops MCP Server
動機
Kubernetes ワークロードを管理する方法は数多くありますが、誤って問題を引き起こす方法も数多くあります。 AI エージェントが予期しない操作を行った事例は、すでに確認されています。AI エージェントに Kubernetes への完全なアクセス権を与えることには、特にリソースを直接作成、更新、削除できる場合、大きなリスクがあります。
私の考えでは、AI エージェントには、安全で明確に定義されたツールを提供する必要があります。こうしたツールでは、エージェントが実行できる操作を制限し、変更を適用する前に検証し、危険な操作を防ぐ必要があります。
また、ワークロードの問題を調査し、修正するのに役立つツールも必要です。 多くのワークロードは、Argo CD、FluxCD、Helm などのよく知られたツールや、その他の GitOps またはデプロイシステムによってすでに管理されています。 AI エージェントはリソースの管理者を把握し、これらのツールと競合する可能性のある直接変更を避けるべきです。
目標は、AI に Kubernetes の完全な制御権を与えることではありません。 目標は、AI が問題を理解し、変更を提案し、管理された操作のみを実行できる安全なインターフェースを提供することです。
概要
Mimi OPS は、AI エージェントに制限のない Kubernetes アクセスを与えるようには設計されていません。 その代わり、よく知られた操作を少数に絞り、管理された形で提供します。
エージェントは、状況を把握して調査し、限られた数の安全な復旧操作を実行できます。任意のリソースの編集、YAML の適用、シークレットの変更、永続データの削除など、より危険な操作は厳しく制限されます。
これにより、Mimi OPS は AI エージェントと Kubernetes の間に位置する、独自の方針を持つインターフェースになります。一般的なトラブルシューティングには十分な機能を備えつつ、予期しない変更のリスクを減らせるよう制限されています。
AI の手綱をしっかり握りましょう。
Kubernetes のコアツール
コアツールは常に登録されます。以下の名前は、サーバーが公開する MCP ツール名です。
- クラスター:
clusters_list(マルチクラスター構成の場合のみ)、clusters_describe。 - Pod:
pods_list、pods_get、pods_describe、pods_log。 - Job:
jobs_list、jobs_get、jobs_describe、jobs_log、jobs_create。 - CronJob:
cronjobs_list、cronjobs_get、cronjobs_describe。 - ノード:
nodes_list、nodes_get、nodes_describe。 - 名前空間:
namespaces_list、namespaces_describe。 - リソース構成:
resourcequotas_list、resourcequotas_describe、limitranges_list、limitranges_describe、storageclasses_list、persistentvolumeclaims_list、persistentvolumeclaims_describe、priorityclasses_list。 - イベント:
events_get。 - ワークロード(Deployment、StatefulSet、DaemonSet):
workloads_list、workloads_get、workloads_describe。 - オートスケーリング:
hpa_list、hpa_describe。 - サービス:
services_list、services_describe。
以下の追加の復旧ツールは、--allow-destructive が有効な場合にのみ登録されます。
pods_delete— Pod を削除し、そのコントローラーによる再作成を促します。jobs_delete— Job を削除します。cronjobs_suspend、cronjobs_resume— スケジュール実行を一時停止または再開します。workloads_scale— Deployment、StatefulSet、または DaemonSet のスケールを変更します。
Helm 拡張機能
Helm ツールは、デフォルトで --extensions helm によって有効になります。
helm_list— Helm リリースを一覧表示します。helm_status— リリースのステータス、リビジョン、および関連情報を確認します。helm_rollback— リリースを前のリビジョンにロールバックします。--allow-destructiveが有効な場合のみ使用できます。
FluxCD 拡張機能
--extensions fluxcd(または --extensions all)で FluxCD ツールを有効にします。読み取り専用の確認ツールは次のとおりです。
- GitRepository:
flux_gitrepositories_list、flux_gitrepositories_describe。 - OCIRepository:
flux_ocirepositories_list、flux_ocirepositories_describe。 - HelmRelease:
flux_helmreleases_list、flux_helmreleases_describe。 - Kustomization:
flux_kustomizations_list、flux_kustomizations_describe。
--allow-destructive が有効な場合、Flux では次のツールも公開されます。
flux_reconcile— GitRepository、HelmRelease、または Kustomization の即時リコンサイルを開始します。flux_reconciliation— Flux HelmRelease または Kustomization を一時停止または再開します。
Karpenter 拡張機能
--extensions karpenter(または --extensions all)を指定すると、Karpenter ツールを有効にできます。読み取り専用の確認ツールは次のとおりです。
- NodePool:
karpenter_nodepools_list— ノードクラス、ノード数、準備状況、重み、プロビジョニング済みの CPU/メモリと上限を含む NodePool の一覧を表示します。
インストール
brew install sergelogvinov/tap/mimiops-mcp
MCPB 対応クライアント
MimiOPS には、Claude Desktop など、MCP バンドルに対応したクライアント向けの MCPB マニフェストが含まれています。
.mcpb リリースバンドルをダウンロードし、クライアントで開くかインポートしてください。バンドルは次の処理を行います。
server/mimiops-mcp mcpを起動します。- kubeconfig ファイルの入力を求めます。
- そのファイルを
KUBECONFIGとしてサーバーに渡します。
エディターの手動設定
JSON 形式の MCP 設定を使用するクライアントでは、次のようなサーバーエントリーを追加してください。
{
"mcpServers": {
"mimiops": {
"command": "mimiops-mcp",
"args": ["mcp"]
}
}
}
Zed では、context_servers の下にコマンドオブジェクトを指定します。
{
"context_servers": {
"mimiops": {
"command": {
"path": "mimiops-mcp",
"args": ["mcp"],
"env": {
"KUBECONFIG": "/absolute/path/to/kubeconfig"
}
}
}
}
}
設定を保存した後、クライアントを再起動するか、再読み込みしてください。
その後、サーバーが mimiops として表示され、以下に記載されているツールが利用できるようになります。
実行
共通フラグ
Kubernetes とアプリケーションのフラグは**グローバル(永続)**であり、mcp、server、tools に継承されます。
| フラグ | デフォルト | 環境変数 | 説明 |
|---|---|---|---|
--kubeconfig <path> | auto | KUBECONFIG | kubeconfig へのパス。未設定の場合は、デフォルトの Kubernetes 読み込みルールを使用します |
--context <name> | current context | CONTEXT | 使用する Kubernetes コンテキスト |
--namespace <name> | all namespaces | NAMESPACE | 操作のデフォルトの名前空間スコープ |
--as <user> | unset | AS | Kubernetes の偽装ユーザー |
--extensions <list> | helm | EXTENSIONS | 有効にする拡張機能をカンマ区切りで指定するか、all を指定します |
--allow-destructive | false | ALLOW_DESTRUCTIVE | 破壊的または変更を伴うツールを有効にします |
--log-level <level> | info | LOG_LEVEL | debug、info、warn、または error |
--log-format <format> | text | LOG_FORMAT | text または json |
Kubernetes クライアントでは、標準の genericclioptions 接続フラグと認証フラグも利用できます。tools コマンドには、次のコマンド固有フラグが追加されます。
| コマンド | フラグ | デフォルト | 説明 |
|---|---|---|---|
tools | --output、-o | text | ツールの結果を text、json、または yaml 形式で出力します |
server | --port | 8080 | HTTP/SSE の待ち受けポート。環境変数:PORT |
使用できるコマンドは、mcp(stdio)、server(HTTP/SSE)、tools(CLI からの直接実行)、および version です。
例
# stdio with kubeconfig and impersonation
./bin/mimiops-mcp mcp --kubeconfig ~/.kube/dev.yaml --as developer
# SSE server scoped to a namespace, with destructive tools enabled
./bin/mimiops-mcp server --namespace default --allow-destructive --port 8080
# List enabled tools, or invoke one directly from the CLI
./bin/mimiops-mcp tools --extensions all
./bin/mimiops-mcp tools pods_list namespace=default -o json
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。