Kubernetes MCP サーバー
標準化されたインターフェースを通じて Kubernetes クラスターと対話するためのツールを提供する Kubernetes Model Context Protocol (MCP) サーバー。
特徴
- APIリソース検出クラスターで利用可能なすべてのAPIリソースを取得します
- リソース一覧: オプションの名前空間とラベルフィルタリングを使用して、あらゆるタイプのリソースを一覧表示します。
- リソースの詳細: 特定の Kubernetes リソースに関する詳細情報を取得します
- リソースの説明 リソースの包括的な説明を取得します
- ポッドログ: 特定のポッドからログを取得する
- ノードメトリック: 特定のノードのリソース使用率メトリックを取得します
- ポッドメトリクス: 特定のポッドのCPUとメモリのメトリクスを取得します
- イベント一覧: 名前空間内または特定のリソースのイベントを一覧表示します。
- リソースの作成: マニフェストから新しい Kubernetes リソースを作成します。
- 標準化されたインターフェースプロトコルを使用してツールの相互作用を一貫させます
- 柔軟な構成: さまざまなKubernetesコンテキストとリソーススコープをサポート
前提条件
- Go 1.20以降
- Kubernetes クラスターへのアクセス
- 適切なクラスターアクセスが設定された
kubectl
インストール
- リポジトリをクローンします。
- 依存関係をインストールします:
- サーバーを構築します。
使用法
サーバーの起動
サーバーを実行します。
サーバーが起動し、stdin/stdout で MCP プロトコル メッセージをリッスンします。
利用可能なツール
1. getAPIResources
Kubernetes クラスター内で利用可能なすべての API リソースを取得します。
パラメータ:
includeNamespaceScoped
(boolean): 名前空間スコープのリソースを含めるかどうか (デフォルトは true)includeClusterScoped
(ブール値): クラスタースコープのリソースを含めるかどうか (デフォルトは true)
例:
2. listResources
特定のリソース タイプのインスタンスをすべて一覧表示します。
パラメータ:
Kind
(文字列、必須): リストするリソースの種類(例:「Pod」、「Deployment」)namespace
(文字列): リソースを一覧表示する名前空間 (省略した場合は、名前空間付きリソースのすべての名前空間を一覧表示します)labelSelector
(文字列): ラベルセレクターでリソースをフィルタリングする
例:
3. getResource
特定のリソースに関する詳細情報を取得します。
パラメータ:
kind
(文字列、必須): 取得するリソースの種類 (例: "Pod"、"Deployment")name
(文字列、必須): 取得するリソースの名前namespace
(文字列): リソースの名前空間 (名前空間付きリソースの場合)
例:
4. describeResource
kubectl describe
と同様に、指定された種類と名前に基づいて Kubernetes クラスター内のリソースについて説明します。
パラメータ:
Kind
(文字列、必須): 記述するリソースの種類(例:「ポッド」、「デプロイメント」)name
(文字列、必須): 記述するリソースの名前namespace
(文字列): リソースの名前空間 (名前空間付きリソースの場合)
例:
5. getPodsLogs
Kubernetes クラスター内の特定のポッドのログを取得します。
パラメータ:
Name
(文字列、必須): ログを取得するポッドの名前。namespace
(文字列): ポッドの名前空間 (名前空間リソースの場合)。
例:
6. getNodeMetrics
Kubernetes クラスター内の特定のノードのリソース使用状況メトリックを取得します。
パラメータ:
Name
(文字列、必須): メトリックを取得するノードの名前。
例:
7. getPodMetrics
Kubernetes クラスター内の特定のポッドの CPU およびメモリのメトリックを取得します。
パラメータ:
namespace
(文字列、必須): ポッドの名前空間。podName
(文字列、必須): ポッドの名前。
例:
8. getEvents
Kubernetes クラスター内の特定の名前空間またはリソースのイベントを取得します。
パラメータ:
namespace
(文字列): イベントを取得する名前空間。省略した場合、すべての名前空間のイベントが考慮されます(RBACで許可されている場合)。resourceName
(文字列): イベントをフィルタリングする特定のリソースの名前 (例: Pod 名)。resourceKind
(文字列):resourceName
が指定されている場合の特定のリソースの種類 (例: "Pod")。
例 (名前空間イベント):
例 (リソース イベント):
9. createorUpdateResource
YAML または JSON マニフェストから Kubernetes クラスターに新しいリソースを作成します。
パラメータ:
manifest
(文字列、必須): 作成するリソースの YAML または JSON マニフェスト。namespace
(文字列、オプション): リソースを作成する名前空間。マニフェストに名前空間が含まれている場合、このパラメータは省略するか、上書きすることができます(動作はサーバーの実装によって異なる場合があります)。
例:
発達
プロジェクト構造
新しいツールの追加
新しいツールを追加するには:
handlers/handlers.go
に新しいツール定義関数 (例:MyNewTool() mcp.Tool
) を作成します。- ツールハンドラー関数(例:
MyNewHandler(client *k8s.Client) func(...)
)をhandlers/handlers.go
に実装します。 s.AddTool()
を使用して、main.go
にツールとそのハンドラーを登録します。
貢献
貢献を歓迎します!このプロジェクトへの貢献方法の詳細については、 CONTRIBUTING.mdをご覧ください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
標準化されたインターフェースを通じて Kubernetes クラスターと対話するためのツールを提供する Kubernetes Model Context Protocol (MCP) サーバー。
Related MCP Servers
- AsecurityAlicenseAqualityA beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.Last updated -3936JavaScriptApache 2.0
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -132TypeScriptMIT License
- -securityFlicense-qualityA server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.Last updated -Python