
基于 Go 构建的 Kubernetes 模型上下文协议(MCP)服务器。它以 MCP 工具形式展示 Kubernetes 操作,并支持 stdio、sse 和可流式传输。
概览
基于 Go 构建的 Kubernetes 模型上下文协议(MCP)服务器。它以 MCP 工具形式展示 Kubernetes 操作,并支持 stdio、sse 和可流式传输。 - Kubernetes 运行的统一 MCP 接口 - 支持本地 kubeconfig 和集群内配置 - 多种传输方式支持不同集成模式 - 通用资源 CRUD + 工具 + 提示 + 指标 - 基于 slog 的日志,可配置级别/格式 - Go 1.24+ - 通过 --kubeconfig 访问 Kubernetes 集群,或通过集群内服务账户访问 - --日志级别(debug|info|warn|error,默认信息)- --log-格式(console|json,默认控制台)- --kubeconfig(可选) 网络传输标志(sse,可流式传输): - --port(默认8080) - --health-port(默认8081) - --允许起源(默认*) - --base-url(默认 http://localhost: ) - StreamableHTTP MCP 端点:POST /mcp - 健康端点(仅限 SSE/Streamable):- GET /healthz - GET /readyz
概述(AI 翻译)
英文 |中文
一台基于 Go 构建的基于 Kubernetes 的模型上下文协议(MCP)服务器。
它以MCP工具的形式将Kubernetes操作暴露,并支持stdio、sse和streamable传输。
为什么要做这个项目
- Kubernetes 操作的统一 MCP 接口
- 支持本地
kubeconfig和集群内配置 - 支持不同积分模式的多重传输
- 通用资源 CRUD + 工具 + 提示词 + 指标
- 基于
slog的日志,支持可配置的层级/格式
要求
- 去
1.24+ - 访问Kubernetes集群
- 通过
--kubeconfig,或 - 通过集群内服务账户
快速启动
建造
跑(标准)
跑(SSE)
运行(StreamableHTTP)
CLI 结构
配置标志
全球旗帜:
--log-level(debug|info|warn|error,默认info)--log-format(console|json,默认console)--kubeconfig(可选)
网络传输标志(sse,streamable):
--port(默认8080)--health-port(默认8081)--allow-origins(默认*)
仅限SSE的标志:
--base-url(默认http://localhost:)
交通终点
- StreamableHTTP MCP 端点:
POST /mcp
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Kubernetes MCP
English | 中文
A Kubernetes-focused Model Context Protocol (MCP) server built in Go.
It exposes Kubernetes operations as MCP tools and supports stdio, sse, and streamable transports.
Why This Project
- Unified MCP interface for Kubernetes operations
- Works with both local
kubeconfigand in-cluster configuration - Multiple transports for different integration modes
- Generic resource CRUD + utility tools + prompts + metrics
slog-based logging with configurable level/format
Requirements
- Go
1.24+ - Access to a Kubernetes cluster
- via
--kubeconfig, or - via in-cluster service account
- via
Quick Start
Build
git clone https://github.com/HSn0918/kubernetes-mcp.git
cd kubernetes-mcp
go build -o kubernetes-mcp ./cmd/kubernetes-mcp
Run (stdio)
./kubernetes-mcp server transport stdio --kubeconfig ~/.kube/config
Run (SSE)
./kubernetes-mcp server transport sse \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--base-url "http://localhost:8080" \
--kubeconfig ~/.kube/config
Run (StreamableHTTP)
./kubernetes-mcp server transport streamable \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--kubeconfig ~/.kube/config
CLI Structure
kubernetes-mcp
├── server
│ └── transport
│ ├── stdio
│ ├── sse
│ └── streamable
└── version
Configuration Flags
Global flags:
--log-level(debug|info|warn|error, defaultinfo)--log-format(console|json, defaultconsole)--kubeconfig(optional)
Network transport flags (sse, streamable):
--port(default8080)--health-port(default8081)--allow-origins(default*)
SSE-only flags:
--base-url(defaulthttp://localhost:)
Transport Endpoints
- StreamableHTTP MCP endpoint:
POST /mcp - Health endpoints (SSE/Streamable only):
GET /healthzGET /readyz
Tooling Overview
1. Generic Resource Operations
For each API group prefix, the server exposes:
LIST__RESOURCESGET__RESOURCEDESCRIBE__RESOURCECREATE__RESOURCEUPDATE__RESOURCEDELETE__RESOURCE
Registered prefixes:
K8S
2. Core/Cluster Utilities
LIST_NAMESPACESLIST_NODESGET_POD_LOGSANALYZE_POD_LOGS
3. Utility Tools
GET_CURRENT_TIMEGET_CLUSTER_INFOGET_API_RESOURCESSEARCH_RESOURCESEXPLAIN_RESOURCEAPPLY_MANIFESTVALIDATE_MANIFESTDIFF_MANIFESTGET_EVENTS
4. Prompt Tools
KUBERNETES_YAML_PROMPTKUBERNETES_QUERY_PROMPTTROUBLESHOOT_PODS_PROMPTTROUBLESHOOT_NODES_PROMPTTROUBLESHOOT_NETWORK_PROMPT
5. Metrics Tools
GET_NODE_METRICSGET_POD_METRICSGET_RESOURCE_METRICSGET_TOP_CONSUMERS
安装
docker run --rm -it \