k8s-mcp-server
Kubernetes MCP サーバー
標準化されたインターフェースを通じて Kubernetes クラスターと対話するためのツールを提供する Kubernetes Model Context Protocol (MCP) サーバー。
特徴
APIリソース検出:Kubernetesクラスターで利用可能なすべてのAPIリソースを取得します
リソース一覧: オプションの名前空間とラベルフィルタリングを使用して、あらゆるタイプのリソースを一覧表示します。
リソースの詳細: 特定の Kubernetes リソースに関する詳細情報を取得します
リソースの説明:Kubernetes リソースの包括的な説明を取得します
ポッドログ: 特定のポッドからログを取得する
ノードメトリック: 特定のノードのリソース使用率メトリックを取得します
ポッドメトリクス: 特定のポッドのCPUとメモリのメトリクスを取得します
イベント一覧: 名前空間内または特定のリソースのイベントを一覧表示します。
リソースの作成: マニフェストから新しい Kubernetes リソースを作成します。
標準化されたインターフェース:MCPプロトコルを使用してツールの相互作用を一貫させます
柔軟な構成: さまざまなKubernetesコンテキストとリソーススコープをサポート
Related MCP server: Multi Cluster Kubernetes MCP Server
前提条件
Go 1.20以降
Kubernetes クラスターへのアクセス
適切なクラスターアクセスが設定された
kubectl
インストール
リポジトリをクローンします。
git clone https://github.com/reza-gholizade/k8s-mcp-server.git
cd k8s-mcp-server依存関係をインストールします:
go mod downloadサーバーを構築します。
go build -o k8s-mcp-server main.go使用法
サーバーの起動
サーバーを実行します。
./k8s-mcp-serverサーバーが起動し、stdin/stdout で MCP プロトコル メッセージをリッスンします。
利用可能なツール
1. getAPIResources
Kubernetes クラスター内で利用可能なすべての API リソースを取得します。
パラメータ:
includeNamespaceScoped(boolean): 名前空間スコープのリソースを含めるかどうか (デフォルトは true)includeClusterScoped(ブール値): クラスタースコープのリソースを含めるかどうか (デフォルトは true)
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getAPIResources",
"params": {
"arguments": {
"includeNamespaceScoped": true,
"includeClusterScoped": true
}
}
}2. listResources
特定のリソース タイプのインスタンスをすべて一覧表示します。
パラメータ:
Kind(文字列、必須): リストするリソースの種類(例:「Pod」、「Deployment」)namespace(文字列): リソースを一覧表示する名前空間 (省略した場合は、名前空間付きリソースのすべての名前空間を一覧表示します)labelSelector(文字列): ラベルセレクターでリソースをフィルタリングする
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "listResources",
"params": {
"arguments": {
"Kind": "Pod",
"namespace": "default",
"labelSelector": "app=nginx"
}
}
}3. getResource
特定のリソースに関する詳細情報を取得します。
パラメータ:
kind(文字列、必須): 取得するリソースの種類 (例: "Pod"、"Deployment")name(文字列、必須): 取得するリソースの名前namespace(文字列): リソースの名前空間 (名前空間付きリソースの場合)
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getResource",
"params": {
"arguments": {
"kind": "Pod",
"name": "nginx-pod",
"namespace": "default"
}
}
}4. describeResource
kubectl describeと同様に、指定された種類と名前に基づいて Kubernetes クラスター内のリソースについて説明します。
パラメータ:
Kind(文字列、必須): 記述するリソースの種類(例:「ポッド」、「デプロイメント」)name(文字列、必須): 記述するリソースの名前namespace(文字列): リソースの名前空間 (名前空間付きリソースの場合)
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "describeResource",
"params": {
"arguments": {
"Kind": "Pod",
"name": "nginx-pod",
"namespace": "default"
}
}
}5. getPodsLogs
Kubernetes クラスター内の特定のポッドのログを取得します。
パラメータ:
Name(文字列、必須): ログを取得するポッドの名前。namespace(文字列): ポッドの名前空間 (名前空間リソースの場合)。
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getPodsLogs",
"params": {
"arguments": {
"Name": "my-app-pod-12345",
"namespace": "production"
}
}
}6. getNodeMetrics
Kubernetes クラスター内の特定のノードのリソース使用状況メトリックを取得します。
パラメータ:
Name(文字列、必須): メトリックを取得するノードの名前。
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getNodeMetrics",
"params": {
"arguments": {
"Name": "worker-node-1"
}
}
}7. getPodMetrics
Kubernetes クラスター内の特定のポッドの CPU およびメモリのメトリックを取得します。
パラメータ:
namespace(文字列、必須): ポッドの名前空間。podName(文字列、必須): ポッドの名前。
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getPodMetrics",
"params": {
"arguments": {
"namespace": "default",
"podName": "my-app-pod-67890"
}
}
}8. getEvents
Kubernetes クラスター内の特定の名前空間またはリソースのイベントを取得します。
パラメータ:
namespace(文字列): イベントを取得する名前空間。省略した場合、すべての名前空間のイベントが考慮されます(RBACで許可されている場合)。resourceName(文字列): イベントをフィルタリングする特定のリソースの名前 (例: Pod 名)。resourceKind(文字列):resourceNameが指定されている場合の特定のリソースの種類 (例: "Pod")。
例 (名前空間イベント):
{
"jsonrpc": "2.0",
"id": 1,
"method": "getEvents",
"params": {
"arguments": {
"namespace": "default"
}
}
}例 (リソース イベント):
{
"jsonrpc": "2.0",
"id": 1,
"method": "getEvents",
"params": {
"arguments": {
"namespace": "production",
"resourceName": "my-app-pod-12345",
"resourceKind": "Pod"
}
}
}9. createorUpdateResource
YAML または JSON マニフェストから Kubernetes クラスターに新しいリソースを作成します。
パラメータ:
manifest(文字列、必須): 作成するリソースの YAML または JSON マニフェスト。namespace(文字列、オプション): リソースを作成する名前空間。マニフェストに名前空間が含まれている場合、このパラメータは省略するか、上書きすることができます(動作はサーバーの実装によって異なる場合があります)。
例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "createResource",
"params": {
"arguments": {
"namespace": "default",
"manifest": "apiVersion: v1\nkind: Pod\nmetadata:\n name: my-new-pod\nspec:\n containers:\n - name: nginx\n image: nginx:latest"
}
}
}発達
プロジェクト構造
.
├── handlers/ # Tool handlers
│ └── handlers.go # Implementation of MCP tools
├── pkg/ # Internal packages
│ └── k8s/ # Kubernetes client implementation
├── main.go # Server entry point
├── go.mod # Go module definition
└── go.sum # Go module checksums新しいツールの追加
新しいツールを追加するには:
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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables AI assistants to interact with Kubernetes clusters through natural language, supporting core Kubernetes operations, monitoring, security, and diagnostics.115947MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with multiple Kubernetes clusters simultaneously, providing comprehensive tools for cluster management, resource operations, and diagnostics across different environments.
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for Kubernetes that provides full resource coverage and advanced troubleshooting tools via HTTP chunked streaming. It enables users to manage clusters and diagnose complex issues like pod crashloops through specialized prompts and standard kubectl-like operations.12,374MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server for generating Kubernetes manifests (deployments, services, configmaps, secrets, ingresses, namespaces) and performing kubectl operations like apply, delete, get, describe, logs, and exec.MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/reza-gholizade/k8s-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server