← 返回目录
K

Kubernetes MCP Server

社区
通过 MCP 让 AI 助手原生管理 Kubernetes 与 OpenShift 集群。
GitHub 源仓库 ↗
★ 2.0k Stars 分类 · 开发工具 非常热门 源版本 d98b21b48464
63FMRS · C
可靠性
10/20
安全与权限
10/20
维护活跃度
14/20
文档质量
17/20
安装易用性
12/20

README 显示这是一个持续维护、文档完善的 Go 原生 MCP 服务器,工具覆盖 Kubernetes、OpenShift、Helm、Tekton、KubeVirt、Kiali、NetObserv 等多个方向,并提供 npm、PyPI/uvx、原生二进制、Docker 等多种安装方式;源材料中未包含第三方用户评价。

查看 FMRS 评分方法 →

Kubernetes MCP Server 是一个基于 Go 原生实现的 Model Context Protocol 服务器,直接与 Kubernetes/OpenShift API 服务器交互,而不是对 kubectl 或 helm 命令行工具的简单封装。它支持 Pod、通用资源、命名空间、事件的增删改查,并可选启用 Helm、Tekton、KubeVirt、Kiali(Istio 网格)、NetObserv(网络可观测性)等工具集,同时支持多集群、只读模式和精细的资源访问限制。

工具能力

configuration_contexts_list
列出 kubeconfig 文件中所有可用的上下文名称及对应的服务器地址
targets_list
列出所有可用的目标(集群)
configuration_view
以 kubeconfig YAML 格式获取当前 Kubernetes 配置内容
events_list
列出 Kubernetes 事件(警告、错误、状态变化),用于调试和故障排查
namespaces_list
列出当前集群中所有的 Kubernetes 命名空间
projects_list
列出当前集群中所有的 OpenShift 项目
nodes_log
通过 API 代理获取 Kubernetes 节点日志(kubelet、kube-proxy 或其他系统日志)
nodes_stats_summary
通过 kubelet Summary API 获取节点详细资源使用统计信息,包括 PSI 压力指标
nodes_top
列出 Kubernetes Metrics Server 记录的节点 CPU 和内存使用情况
pods_list
列出当前集群所有命名空间中的 Pod
pods_list_in_namespace
列出指定命名空间中的所有 Pod
pods_get
按名称获取当前或指定命名空间中的 Pod
pods_delete
按名称删除当前或指定命名空间中的 Pod
pods_top
列出 Metrics Server 记录的 Pod CPU 和内存使用情况
pods_exec
在 Kubernetes Pod 中执行命令(Shell 访问,容器内运行命令)
pods_log
按名称获取 Kubernetes Pod 的日志
pods_run
使用指定的容器镜像运行 Pod,并可选择暴露端口
resources_list
按 apiVersion 和 kind 列出 Kubernetes 资源对象,可选按命名空间和标签选择器过滤
resources_get
按 apiVersion、kind、命名空间和名称获取 Kubernetes 资源
resources_create_or_update
通过服务端应用(Server-Side Apply)使用完整期望状态清单创建或更新 Kubernetes 资源
resources_delete
按 apiVersion、kind、命名空间和名称删除 Kubernetes 资源
resources_scale
获取或更新 Kubernetes 资源的副本数(scale)
helm_install
在当前或指定命名空间中安装 Helm Chart 以创建发布版本
helm_list
列出当前、指定或所有命名空间中的 Helm 发布版本
helm_uninstall
卸载当前或指定命名空间中的 Helm 发布版本
kcp_workspaces_list
列出当前集群中所有可用的 kcp 工作区
kcp_workspace_describe
获取指定 kcp 工作区的详细信息
kiali_get_mesh_traffic_graph
返回指定命名空间的服务间流量拓扑、依赖关系和网络指标
kiali_get_mesh_status
获取 Istio 服务网格的整体健康状况、拓扑和环境详情
kiali_manage_istio_config_read
读取 Istio、Gateway API 和 Inference API 配置(列出或获取)
kiali_manage_istio_config
创建、修改或删除 Istio、Gateway API 和 Inference API 配置
kiali_list_mesh_clusters
列出 Kiali 可访问的 Istio 网格集群
kiali_get_resource_details
获取资源列表或特定资源(应用、ArgoCD 应用)的详细数据
kiali_list_traces
列出命名空间中某服务的分布式追踪记录
kiali_get_trace_details
根据追踪 ID 获取单条分布式追踪并返回调用层次结构
kiali_get_pod_performance
返回 Pod CPU/内存使用情况与 Kubernetes 请求/限制的对比摘要
kiali_get_logs
获取命名空间中 Pod 或工作负载的日志
kiali_get_metrics
返回资源的 Istio 指标摘要(延迟、流量、吞吐量、负载大小)
vm_clone
通过创建 VirtualMachineClone 资源在 KubeVirt 上克隆虚拟机
vm_create
在 KubeVirt 上创建虚拟机,自动解析实例类型、偏好设置和镜像
vm_guest_info
通过 QEMU Guest Agent 获取虚拟机的客户机操作系统信息
vm_lifecycle
管理 KubeVirt 虚拟机的生命周期:启动、停止或重启
vm_troubleshoot
通过自动化根因检测诊断 KubeVirt 虚拟机问题
netobserv_list_flows
从 Loki 列出 NetObserv 网络流量记录
netobserv_get_flow_metrics
以拓扑或时间序列形式返回聚合的 NetObserv 流量指标
netobserv_export_flows
使用与 list_flows 相同的过滤条件将 NetObserv 流量记录导出为 CSV

安装接入

在 Claude Desktop 中,编辑 claude_desktop_config.json,加入使用 npx 启动的配置(需要安装 Node.js):{"mcpServers":{"kubernetes":{"command":"npx","args":["-y","kubernetes-mcp-server@latest"]}}}。也可以使用 uvx(需要 Python/uv)运行 PyPI 包,或直接下载 Go 原生二进制发行版。若使用 Docker/容器镜像,需要挂载 kubeconfig 文件卷、设置 KUBECONFIG 环境变量、映射 8080 端口,并通过 streamable-http 连接 http://localhost:8080/mcp。VS Code、VS Code Insiders 和 Cursor 提供一键安装链接;Goose CLI 在 config.yaml 中使用类似的 npx 配置。使用前需具备可访问的 Kubernetes 集群。

claude_desktop_config.json
{"mcpServers":{"kubernetes":{"command":"npx","args":["-y","kubernetes-mcp-server@latest"]}}}

选型与风险

适合谁

  • 希望让 Claude Desktop、Claude Code、VS Code 或 Cursor 等 AI 助手直接操作 Kubernetes/OpenShift 集群的开发者和平台工程师
  • 需要轻量、无需预装 kubectl/helm 二进制的集群访问方案的团队
  • 在 kubeconfig 中定义了多个上下文、需要多集群支持的场景

不适合谁

  • 没有可用 Kubernetes 集群访问权限的用户
  • 未先评估 --read-only/--disable-destructive 等限制选项、需要严格只读或隔离环境的场景
  • 只想要 kubectl 简单封装的用户(该项目是原生重新实现,并非 kubectl 透传)

所需权限

  • 需要一个具备目标集群 API 访问权限的 kubeconfig 文件(或集群内 ServiceAccount)
  • Docker/OCI 部署方式需要挂载 kubeconfig 文件卷并暴露 HTTP 端口
  • 默认情况下对集群资源具有完整读写权限,除非设置 --read-only 或 --disable-destructive
  • pods_exec 工具可在集群容器内执行任意命令

风险与副作用

  • 默认配置允许对任意 Kubernetes/OpenShift 资源(包括 Secret)进行创建、更新、删除,除非通过 denied_resources 或只读模式显式限制
  • pods_exec 和 resources_create_or_update 可用于在集群中执行任意命令或改变集群状态
  • Streamable HTTP 模式会暴露一个网络端点(Docker 示例中为 8080 端口),在对外暴露前应通过支持的 OAuth/OIDC 进行安全加固
  • 多集群支持意味着一次被攻破的 MCP 会话可能波及 kubeconfig 中的所有集群

常见排障

  1. 若服务器无法连接集群,检查 --kubeconfig 路径或集群内配置是否正确解析
  2. 使用更高的 --log-level 数值获取更详细的 Kubernetes API 调试信息
  3. 若某个工具缺失,检查 --toolsets 是否包含所需工具集(如 helm、tekton、kubevirt)
  4. Docker/OCI 部署时,确认 kubeconfig 卷挂载路径与容器内 KUBECONFIG 环境变量一致
  5. 如遇可观测性问题,可查看 /stats 端点或参考 docs/OTEL.md 中的 OpenTelemetry 追踪配置

使用场景

诊断并自动修复失败的 Deployment
管理 Pod、命名空间及任意 Kubernetes/OpenShift 通用资源
安装、列出和卸载 Helm 发布版本
启动并排查 Tekton Pipeline 和 Task
创建、克隆和排查 KubeVirt 虚拟机
通过 Kiali 检查 Istio 服务网格拓扑与指标
通过 NetObserv 分析网络流量与丢包

支持客户端

Claude Desktop完整支持
Claude Code完整支持
VS Code完整支持
Cursor完整支持
Goose CLI完整支持