kubernetes-mcp-server
通过 MCP 协议让 AI 原生操控 Kubernetes 集群的 Go 语言服务器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 MCP 协议让 AI 原生操控 Kubernetes 集群的 Go 语言服务器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你正在开发一个新服务,需要在 Kubernetes 集群中快速部署一个测试环境,查看各 Pod 的资源使用情况,排查某个 Deployment 的异常日志。传统做法是打开终端,手敲一堆 kubectl 命令——但如果这一切可以交给 AI 代理来完成呢?Kubernetes MCP Server 就是让这件事成为现实的一座桥梁。
Kubernetes 已经成为容器编排的事实标准,然而它的操作复杂度也是众所周知的。运维工程师每天要面对 YAML 配置、namespace 切换、多集群管理等一系列繁琐操作。Model Context Protocol(MCP)的出现,正是为了解决 AI 模型「无法有效操作外部工具」的问题——它定义了一套标准化的协议,让 AI 可以调用工具、获取资源、理解上下文,而无需针对每个工具单独适配。
Kubernetes MCP Server 由 containers 组织 开发维护,该组织同时也是 Podman、Buildah 等知名容器工具的娘家。项目于 2024 年发布,当前已获得 1679 颗 GitHub Stars,汇集了 Kubernetes 生态和 MCP 协议的双重热度。
市面上存在一些将 kubectl 命令包装成 API 调用的方案,但 Kubernetes MCP Server 与它们有本质区别——它直接与 Kubernetes API Server 通信,不依赖任何外部进程或工具链。
Pod 操作是它最常用的功能集。你可以通过自然语言让 AI 列出所有 namespace 中的 Pod、获取指定 Pod 的详细状态、查看容器日志、执行命令进入 Pod,甚至在 Pod 中临时运行一个新的容器镜像。这些操作覆盖了日常运维中最频繁的场景。更进一步,当集群中安装了 Metrics Server 时,还能获取 Pod 和 Node 的实时 CPU/内存使用数据,帮助判断是否存在资源瓶颈。
Helm 集成是另一个亮点。通过 MCP Server,AI 可以帮你在指定 namespace 安装 Helm chart、列出所有 release,或者卸载一个 release。整个操作直接通过 Helm SDK(helm.sh/helm/v3)调用,无需在系统中安装 helm 二进制文件。
Tekton 工作流支持则面向 CI/CD 场景。AI 可以触发一个 Tekton Pipeline 的执行、重启一个 PipelineRun 获取新执行实例、创建 TaskRun,甚至通过 Pod 解析自动获取 TaskRun 的日志输出。这对于需要 AI 辅助 DevOps 流程的团队非常实用。
值得注意的是,项目还内置了 OpenTelemetry 分布式追踪和 Prometheus 指标导出能力。通过简单的配置,可以开启 /stats 端点获取实时统计信息,并通过 OTLP 协议将追踪数据发送到任何兼容的后端——这在生产环境中监控 MCP Server 自身的运行状况至关重要。
项目采用 Go 语言开发,代码量约 273 个文件分布在 cmd、pkg、internal 三个顶层目录中,架构分层非常清晰:
spf13/cobra 命令行框架,接收用户传入的 flag 并初始化 MCP ServerToolset 接口和各工具的 Handler(如 pods_handler、helm_handler、tekton_handler)client-go 库,提供 RESTClientGetter 和各种资源的 CRUD 操作helm.sh/helm/v3 SDK所有工具通过 MCP SDK(github.com/modelcontextprotocol/go-sdk)注册为 ServerTool,遵循 MCP 规范的 Tool Call 协议。每个工具都标注了 ClusterAware(是否支持指定集群上下文)和 destructiveHint/readOnlyHint(是否是破坏性或只读操作)等元信息——这些元信息可以用于实现更安全的只读模式,或者在配置中主动禁用破坏性工具。
项目提供了多种分发方式,真正做到了「开箱即用」:
二进制分发:编译好的原生可执行文件支持 Linux/macOS/Windows 三大平台,解压即用,完全不依赖 Node.js 或 Python。Makefile 中定义了 build-multiarch 目标,支持 --targetarch 参数构建多架构镜像。
容器镜像:Dockerfile 采用多阶段构建,第一阶段从 golang:latest 编译,第二阶段使用 Red Hat UBI9 Minimal 镜像作为运行时基础镜像,最终镜像仅约 50MB。用户 ID 使用安全的非 root 用户(65532:65532),符合容器安全最佳实践。镜像发布在 GHCR(ghcr.io/containers/kubernetes-mcp-server)。
Helm Chart:官方 Helm Chart 通过 OCI 注册表分发,一行命令即可完成部署:helm install kubernetes-mcp-server oci://ghcr.io/containers/charts/kubernetes-mcp-server。支持配置 OAuth 认证、可观测性参数和资源限制。
npm / PyPI:还提供 npm 和 Python 包,通过 uvx 或 npx 可快速在本地运行,适合桌面 AI 助手(如 Claude Code)集成。
项目在安全性方面有周全考虑:
OAuth/OIDC 集成:支持配置 OIDC 授权服务器,实现 JWT 令牌验证和 STS Token 交换,适合在需要严格访问控制的生产环境中使用。
只读模式:通过 --read-only 或配置文件的 read_only 选项,可以将 MCP Server 暴露给只读权限的 ServiceAccount,禁用所有修改类操作。
破坏性操作提示:所有删除、终止类操作均标注了 destructiveHint,客户端可据此向用户确认后再执行,防止误操作。
Kubernetes MCP Server 并非万能。它不是一个完全自治的运维代理——AI 的能力上限取决于 prompt 质量和模型的推理能力,在复杂故障排查场景下可能需要人工介入。此外,它需要有效的 kubeconfig 或集群内 ServiceAccount 配置,网络连通性是前提条件。最后,对于那些依赖特定 kubectl 插件(如 kubeval、polaris)的场景,目前还无法直接支持。
随着 MCP 协议逐渐成为 AI-工具交互的标准,Kubernetes MCP Server 的出现代表了一个重要趋势:AI 正在从「被动回答」转向「主动操控」。在 DevOps 场景中,这种转变意味着未来运维工程师可以通过自然语言指令,让 AI 自动完成环境检查、问题诊断、部署调整等一系列工作——而这只需要一个合规运行的 MCP Server。
对于 AI 应用开发者而言,这个项目也是一个极好的参考实现:它展示了如何将复杂的系统 API(Kubernetes)通过 MCP 协议优雅地暴露给 AI,同时兼顾安全性、可测试性和可观测性。无论你是在构建内部运维助手还是开发面向云原生的 AI 产品,Kubernetes MCP Server 都值得深入研究。