关于 kubernetes-mcp
kubernetes-mcp 是一个用 Go 编写的 MCP 服务,将 Kubernetes 操作暴露为 MCP 工具,支持 stdio、sse 和 streamable 三种传输方式。它可以使用本地 kubeconfig,也可以使用集群内的服务账户配置。
主要功能
- 01通用资源 CRUD 工具,按 API 组前缀注册
- 02支持 stdio、sse、streamable 传输
- 03兼容本地 kubeconfig 与集群内配置
- 04提供 Pod 日志分析、事件查询等实用工具
- 05内置排障与清单处理提示词及指标工具
适用场景
- 01通过 MCP 客户端查询和管理集群资源
- 02分析 Pod 日志并排查节点或网络问题
- 03在 Kubernetes 中部署为远程 MCP 服务
MCP 相关
该项目是 MCP 服务端,向 MCP 客户端暴露 Kubernetes 资源操作、工具、提示词和指标。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Kubernetes MCP
English | 中文
一个使用 Go 构建、专注于 Kubernetes 的 Model Context Protocol(MCP)服务。
它将 Kubernetes 操作作为 MCP 工具提供,并支持 stdio、sse 和 streamable 传输方式。
为什么选择本项目
- 为 Kubernetes 操作提供统一的 MCP 接口
- 同时支持本地
kubeconfig和集群内配置 - 提供多种传输方式,以适应不同的集成模式
- 通用资源 CRUD + 实用工具 + 提示词 + 指标
- 基于
slog的日志记录,支持配置级别和格式
要求
- Go
1.24+ - 可访问 Kubernetes 集群
- 通过
--kubeconfig,或 - 通过集群内服务账号
- 通过
快速开始
构建
git clone https://github.com/HSn0918/kubernetes-mcp.git
cd kubernetes-mcp
go build -o kubernetes-mcp ./cmd/kubernetes-mcp
运行(stdio)
./kubernetes-mcp server transport stdio --kubeconfig ~/.kube/config
运行(SSE)
./kubernetes-mcp server transport sse \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--base-url "http://localhost:8080" \
--kubeconfig ~/.kube/config
运行(StreamableHTTP)
./kubernetes-mcp server transport streamable \
--port 8080 \
--health-port 8081 \
--allow-origins "*" \
--kubeconfig ~/.kube/config
CLI 结构
kubernetes-mcp
├── server
│ └── transport
│ ├── stdio
│ ├── sse
│ └── streamable
└── version
配置标志
全局标志:
--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:<port>)
传输端点
- StreamableHTTP MCP 端点:
POST /mcp - 健康检查端点(仅 SSE/Streamable):
GET /healthzGET /readyz
工具概览
1. 通用资源操作
对于每个 API 组前缀,服务都会提供:
LIST_<PREFIX>_RESOURCESGET_<PREFIX>_RESOURCEDESCRIBE_<PREFIX>_RESOURCECREATE_<PREFIX>_RESOURCEUPDATE_<PREFIX>_RESOURCEDELETE_<PREFIX>_RESOURCE
已注册的前缀:
K8S
2. 核心/集群实用工具
LIST_NAMESPACESLIST_NODESGET_POD_LOGSANALYZE_POD_LOGS
3. 实用工具
GET_CURRENT_TIMEGET_CLUSTER_INFOGET_API_RESOURCESSEARCH_RESOURCESEXPLAIN_RESOURCEAPPLY_MANIFESTVALIDATE_MANIFESTDIFF_MANIFESTGET_EVENTS
4. 提示词工具
KUBERNETES_YAML_PROMPTKUBERNETES_QUERY_PROMPTTROUBLESHOOT_PODS_PROMPTTROUBLESHOOT_NODES_PROMPTTROUBLESHOOT_NETWORK_PROMPT
5. 指标工具
GET_NODE_METRICSGET_POD_METRICSGET_RESOURCE_METRICSGET_TOP_CONSUMERS
架构(k8s 风格的组/版本)
cmd/kubernetes-mcp/
main.go
app/
pkg/
client/kubernetes/
config/
handlers/
apis/
core/v1/
apps/v1/
base/
tool/
prompt/
metrics/
server/
health/
logger/
Docker
构建:
docker build -t kubernetes-mcp:latest .
使用明确指定的传输命令运行:
docker run --rm -it \
-v ~/.kube:/root/.kube \
kubernetes-mcp:latest \
server transport stdio --kubeconfig /root/.kube/config
Kubernetes 部署
部署清单位于 /deploy/kubernetes。
make k8s-deploy
# or
make k8s-deploy-kustomize
开发
make build
make test
Justfile + 一键安装 Skill
此仓库包含一个项目用法 Skill,位于 skills/kubernetes-mcp-usage。
# list just tasks
just
# common dev tasks
just build
just test
# install the project skill into Codex
just skill-install
# overwrite existing install
just skill-install-force
Skill 安装目标位置:
$CODEX_HOME/skills/kubernetes-mcp-usage(若未设置 CODEX_HOME,则为 ~/.codex/skills/kubernetes-mcp-usage)。
安装后,重启 Codex 以加载该 Skill。
注意事项
- 资源操作取决于集群 API 的可用性和 RBAC 权限。
- 对于位于 ingress/反向代理之后的网络传输方式,请为 SSE 正确设置
--base-url。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。