clusterport について
clusterportは、kubectlでクラスターを管理する開発者や運用担当者向けの、Kubernetes操作用MCPサーバー兼CLIです。引数配列でホストのkubectlを実行し、マニフェストは標準入力で渡します。
主な機能
- 01リソースの取得、説明、ログ表示
- 02マニフェストの適用やリソース作成
- 03リソースの削除、スケール、パッチ適用
- 04ロールアウト操作とコンテキスト切り替え
- 05リソースの説明表示とAPIリソース一覧
活用シーン
- 01クラスターリソースとログの確認
- 02マニフェスト適用やKubernetesリソース作成
- 03レプリカ数の調整とリソースへのパッチ適用
- 04リソースの説明確認やコンテキスト切り替え
MCP 対応
stdioのMCPサーバーとして動作し、12のKubernetesツールをMCPクライアントに公開します。操作はホスト上のkubectlで実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | 取得する特定のリソース名。省略すると、その種類のすべてのリソースが一覧表示されます。 |
| namespace | string | いいえ | 取得するリソースの名前空間。省略すると、現在のコンテキストのデフォルトの名前空間が使用されます。 |
| output_format | string | いいえ | kubectl get の出力形式(json や yaml など)。デフォルトは json です。 |
| resource_type | string | はい | 取得する Kubernetes リソースの種類(pods、deployments、services など)。 |
詳細
clusterport
clusterport は、Kubernetes の基本操作に対応する小規模な MCP サーバー兼 CLI です。
コミュニティの Flux159
mcp-server-kubernetes でドキュメント化されている機能のうち、基本的な 12 個のツールを
クリーンルーム方式で再構築しています。get、describe、ログの取得、apply と
create、delete、scale と patch、ロールアウト操作とコンテキスト
切り替え、さらに kubectl explain と API リソースの一覧表示に対応しています。
すべての処理は、ホスト上の実際の kubectl を通じて実行されます。各呼び出しは
引数配列として構築され、直接起動されます。シェル文字列は使用しないため、
リソース名、名前空間、パッチがシェル構文として再解釈されることはありません。マニフェストが一時
ファイルやシェルのリダイレクトに書き込まれることもありません。kubectl_apply はマニフェストを
標準入力で送信し(kubectl apply -f -)、kubectl_create はパラメーターから
最小限のマニフェスト仕様を生成し、同じ方法で標準入力から作成します
(kubectl create -f -)。実行処理は差し替え可能で、これによりテストスイートでは
モックを使って正確な引数配列と標準入力のペイロードを検証できます。
意図的に対象外としている機能:長時間実行されるポートフォワードセッション、 Pod 内での exec、helm ツール、アドオンのインストール/アンインストール操作、 リソース以外の URL 操作、watch/ストリーミング、cordon、taint、drain などの ノード操作。
ホストには、動作する kubectl とクラスターの認証情報が必要です。
kubectl が見つからない場合、作り上げた結果を返すのではなく、基盤となる起動
エラー(ENOENT)をそのまま返して呼び出しは失敗します。公開されている
コンテナーイメージには kubectl バイナリは含まれていません。ホスト側の
実行環境を前提としていることは Dockerfile に記載されています。
インストール
npx @reneturcios/clusterport kubectl-get pods -n default
docker run -i ghcr.io/cloudcorprecords/clusterport
CLI
clusterport kubectl-get <resource_type> [name] [-n namespace] [-o format]
clusterport kubectl-describe <resource_type> <name> [-n namespace]
clusterport kubectl-logs <name> [-n namespace] [-c container]
clusterport kubectl-apply "<manifest yaml>" [-n namespace] [--dry-run]
clusterport kubectl-create <resource_type> <name> [--image img] [-n namespace]
clusterport kubectl-delete <resource_type> <name> [-n namespace]
clusterport kubectl-scale <resource_type> <name> <replicas> [-n namespace]
clusterport kubectl-patch <resource_type> <name> '<json patch>' [-n namespace]
clusterport kubectl-rollout <resource_type> <name> <action> [-n namespace]
clusterport kubectl-context <current|list|use> [name]
clusterport explain-resource <resource> [--api-version v]
clusterport list-api-resources [kind]
clusterport --version
終了コード:0 は成功、1 は kubectl エラー、2 は使用方法のエラーです。
MCP サーバー
npx -y @reneturcios/clusterport mcp
{
"mcpServers": {
"clusterport": {
"command": "npx",
"args": ["-y", "@reneturcios/clusterport", "mcp"]
}
}
}
ツール
| ツール | 入力 | 機能 |
|---|---|---|
kubectl_get | resource_type(必須)、name、namespace、output_format | デフォルトで kubectl get -o json を実行し、JSON を解析します。 |
kubectl_describe | resource_type、name(必須)、namespace | kubectl describe を実行します。 |
kubectl_logs | name(必須)、namespace、container | kubectl logs を実行します。 |
kubectl_apply | manifest(必須)、namespace、dry_run | kubectl apply -f - を実行し、マニフェストを標準入力で送信します。 |
kubectl_create | resource_type、name(必須)、namespace、image | 生成した仕様を kubectl create -f - で標準入力から作成します。 |
kubectl_delete | resource_type、name(必須)、namespace | kubectl delete を実行します。 |
kubectl_scale | resource_type、name、replicas(必須)、namespace | kubectl scale --replicas=n を実行します。 |
kubectl_patch | resource_type、name、patch(必須)、namespace | kubectl patch -p を実行します。 |
kubectl_rollout | resource_type、name、action(必須)、namespace | kubectl rollout <action> <type>/<name> を実行します。 |
kubectl_context | operation(必須:current、list、use)、name | kubectl config の current/get/use-context を実行します。 |
explain_resource | resource(必須)、api_version | kubectl explain を実行します。 |
list_api_resources | kind(任意) | kubectl api-resources を実行し、解析したうえで kind で絞り込みます。 |
kubectl バイナリが見つからない、クラスターに接続できない、リソースが存在しないなどの 実行エラーは、基盤となるメッセージを含むツールエラーとして報告されます。
開発
npm install
npm run build
npm test
npm run dev
テストはすべてモックの実行環境で行われます。正確な引数配列、apply/create での標準入力による マニフェストの受け渡し、出力の解析、エラーの伝播を検証します。実際のクラスターには接続しません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。