mcpField
C
clusterport

clusterport

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

clusterport について

clusterportは、kubectlでクラスターを管理する開発者や運用担当者向けの、Kubernetes操作用MCPサーバー兼CLIです。引数配列でホストのkubectlを実行し、マニフェストは標準入力で渡します。

主な機能

  1. 01リソースの取得、説明、ログ表示
  2. 02マニフェストの適用やリソース作成
  3. 03リソースの削除、スケール、パッチ適用
  4. 04ロールアウト操作とコンテキスト切り替え
  5. 05リソースの説明表示とAPIリソース一覧

活用シーン

  1. 01クラスターリソースとログの確認
  2. 02マニフェスト適用やKubernetesリソース作成
  3. 03レプリカ数の調整とリソースへのパッチ適用
  4. 04リソースの説明確認やコンテキスト切り替え

MCP 対応

stdioのMCPサーバーとして動作し、12のKubernetesツールをMCPクライアントに公開します。操作はホスト上のkubectlで実行されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-clusterport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/clusterport"
]
}
}
}
起動コマンドnpx -y @reneturcios/clusterport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/clusterport0.1.0
ocighcr.io/cloudcorprecords/clusterport:0.1.0

ツール

12

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
namestringいいえ取得する特定のリソース名。省略すると、その種類のすべてのリソースが一覧表示されます。
namespacestringいいえ取得するリソースの名前空間。省略すると、現在のコンテキストのデフォルトの名前空間が使用されます。
output_formatstringいいえkubectl get の出力形式(json や yaml など)。デフォルトは json です。
resource_typestringはい取得する 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_getresource_type(必須)、name、namespace、output_formatデフォルトで kubectl get -o json を実行し、JSON を解析します。
kubectl_describeresource_type、name(必須)、namespacekubectl describe を実行します。
kubectl_logsname(必須)、namespace、containerkubectl logs を実行します。
kubectl_applymanifest(必須)、namespace、dry_runkubectl apply -f - を実行し、マニフェストを標準入力で送信します。
kubectl_createresource_type、name(必須)、namespace、image生成した仕様を kubectl create -f - で標準入力から作成します。
kubectl_deleteresource_type、name(必須)、namespacekubectl delete を実行します。
kubectl_scaleresource_type、name、replicas(必須)、namespacekubectl scale --replicas=n を実行します。
kubectl_patchresource_type、name、patch(必須)、namespacekubectl patch -p を実行します。
kubectl_rolloutresource_type、name、action(必須)、namespacekubectl rollout <action> <type>/<name> を実行します。
kubectl_contextoperation(必須:current、list、use)、namekubectl config の current/get/use-context を実行します。
explain_resourceresource(必須)、api_versionkubectl explain を実行します。
list_api_resourceskind(任意)kubectl api-resources を実行し、解析したうえで kind で絞り込みます。

kubectl バイナリが見つからない、クラスターに接続できない、リソースが存在しないなどの 実行エラーは、基盤となるメッセージを含むツールエラーとして報告されます。

開発

npm install
npm run build
npm test
npm run dev

テストはすべてモックの実行環境で行われます。正確な引数配列、apply/create での標準入力による マニフェストの受け渡し、出力の解析、エラーの伝播を検証します。実際のクラスターには接続しません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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