← 返回目录
K

Kubernetes MCP Server

社区
通过 MCP 让 AI 助手原生管理 Kubernetes 与 OpenShift 集群。
分类
开发工具 第 74 / 438
Stars
★ 2.2k 非常热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Node.js · Python · Docker · 预编译二进制
凭据
无需凭据
许可证
Apache-2.0
最近提交
工具数
46
63FMRS · C

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

最强项 · 文档质量 17/20 最弱项 · 可靠性 10/20

可靠性
10/20
安全与权限
10/20
维护活跃度
14/20
文档质量
17/20
安装易用性
12/20
查看各项评分依据
可靠性 10/20
README 提到有“广泛的测试套件”并且仓库带有 build.yaml 构建状态徽章,说明存在 CI 流程,工具列表描述与功能清单基本一致、未见明显自相矛盾之处。但本次评审仅为静态审阅,未看到具体测试文件、测试覆盖范围或 CI 工作流内容,也无法验证 npm/PyPI/OCI 三种打包方式在实际环境中能否顺利完成 MCP 初始化与工具列表握手。三个包的 version 字段均为占位符 '0.0.0',进一步降低了对'声明行为=实际行为'这一假设的信心。根据静态评审规则,在没有可验证的执行证据前不应给出高于12分的分数,故评为10分。
安全与权限 10/20
该服务器默认以读写模式运行,暴露了大量高风险操作,包括 pods_exec(在容器内执行任意命令)、pods_delete、resources_delete、resources_create_or_update(服务器端应用式整体覆盖写入)、helm_install/uninstall、resources_scale 以及 KubeVirt 的 vm_lifecycle 等,这些操作默认没有服务器强制的二次确认机制,仅依赖客户端自身的确认 UI。缓解措施确实存在,但均为可选项:--read-only、--disable-destructive、TOML 中的 denied_resources 拒绝列表,以及 HTTP 模式下的 OAuth/OIDC 认证支持;文档中还提到令牌、密钥、密码等敏感数据会在发送给客户端前自动脱敏,并提供了面向生产的最小权限 ServiceAccount 配置指南。未发现红线级问题(无恶意软件、无隐蔽数据外泄、无伪造身份或测试结果),但默认权限范围较宽、销毁性操作默认可执行且无内置确认,属于'主要风险可见但权限/确认/范围收敛不完整'的情况,评为10分。
维护活跃度 14/20
仓库隶属于 containers 组织(与 Podman、Buildah 等知名容器工具同源),采用 Apache-2.0 许可证,星标数 1957、未被归档,93 个开放 issue 显示有持续的社区互动。文档目录内容丰富且看起来经过持续维护(多个专题文档、按生态项目划分的评测场景表)。但 server.json 中三个包的版本号均为占位符 '0.0.0',这既可能是清单生成流程的疏漏,也让人无法确认发布节奏与实际版本管理是否规范;同时未见明确的安全响应渠道或版本发布策略说明。综合活跃度信号积极但治理细节存在缺口,评为14分。
文档质量 17/20
文档覆盖面广,除 README 外还有独立的 docs/ 目录,包含配置参考(configuration.md)、可观测性(OTEL.md)、日志(logging.md)、自定义 Prompt(prompts.md)、OIDC 接入指南(Keycloak、Entra ID)、按客户端划分的入门教程(Claude Code、Kubernetes 安全部署指南),以及按工具集划分的专题文档(KIALI.md、kubevirt.md、NETOBSERV.md)。工具参数以表格形式自动生成并逐一列出,清晰易查。生态项目验证表格进一步提供了可核查的证据链接(evals/tasks)。不足之处在于未见集中的“已知限制”或明确的故障排查章节标题,评为17分。
安装易用性 12/20
提供了 Claude Desktop、VS Code/Insiders、Cursor、Goose CLI、Claude Code 等多种主流客户端的具体配置示例,npx/uvx 均可一键运行,门槛较低。Docker/OCI 方式需要用户手动挂载 kubeconfig、设置环境变量和端口映射,步骤明确但相对繁琐。前提条件“需要可访问的 Kubernetes 集群”属于该领域固有依赖,不算安装缺陷。但 server.json 中三个包的版本号均为 '0.0.0' 占位符,这意味着如果按清单原样操作,用户可能无法确定实际会拉取到哪个版本,存在安装说明与真实可用产物不一致的风险。按静态评审规则,在缺乏已验证执行证据时设置分不应超过15分,综合评为12分。

静态评测 · 未实际运行收录于 2026-08-26

查看 FMRS 评分方法 →

选型与风险

能访问什么执行命令或代码访问网络

适合谁

  • 希望让 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 中的所有集群

安装接入

准备工作

运行环境:Node.js · Python · Docker · 预编译二进制

其他可选配置项(1 个)
KUBECONFIG 可选 指定容器内 kubeconfig 路径的环境变量,通常设为 /kubeconfig,通过 docker -v 挂载宿主机 ~/.kube/config 使用。

在 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 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "kubernetes": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ]
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add kubernetes -- npx -y kubernetes-mcp-server@latest

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在客户端连接后,工具列表中应出现 kubernetes MCP server 的工具(如 namespaces_list、pods_list);随后让客户端执行“列出所有命名空间”,若能返回集群命名空间列表即证明连接成功。

常见排障

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

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出当前集群中所有处于 Running 状态的 Pod
  • 查看 default 命名空间中 my-pod 这个 Pod 的最近 100 行日志
  • 把 apps/v1 Deployment my-app 的副本数扩容到 5
  • 在 stable/grafana 图表安装一个名为 grafana 的 Helm release 到 monitoring 命名空间

工具能力 46

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 压力指标
展开其余 38 个工具
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

使用场景

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

支持客户端

Claude Desktop
Claude Code
VS Code
Cursor
Goose CLI

依据项目文档列出,未经本站实测。

详细介绍

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

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 970df6a7169c 数据同步于 2026-10-19 查看 FMRS 评分方法