k8s-mcp-server
MCP 协议服务器,让 AI 助手通过 kubectl/helm/istioctl/argocd 安全操控 Kubernetes 集群
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP 协议服务器,让 AI 助手通过 kubectl/helm/istioctl/argocd 安全操控 Kubernetes 集群
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
![]()
想象一下这样的场景:凌晨两点,你被告警叫醒,日志里满是陌生的错误信息。以前你需要 SSH 进去、一条一条敲 kubectl get pods,逐层排查。现在,你只需要对 AI 助手说一句话——"帮我看看这个命名空间下所有 Pod 的状态"——AI 就能替你执行一系列 Kubernetes 命令,整理出结构化的诊断结果。这不是科幻,而是 k8s-mcp-server 正在做的事情。
Kubernetes 已成为事实上的容器编排标准。然而,其陡峭的学习曲线和复杂的命令行操作让许多开发者望而生畏。与此同时,以 Claude 为代表的 AI 助手已经具备了理解自然语言、生成代码、分析问题的能力。Model Context Protocol(MCP) 作为 Anthropic 提出的开放协议,正是连接 AI 助手与外部工具的桥梁——k8s-mcp-server 便是这个理念在 Kubernetes 领域的具体实现。
该项目由开源社区开发者 alexei-led 创建并维护,采用 MIT 许可证,当前版本 1.4.2,Python 3.13+ 开发环境,获得了 213 个 GitHub Stars。
k8s-mcp-server 的核心价值在于在保证安全的前提下,让 AI 助手能够执行真实的 Kubernetes 操作。它支持的 CLI 工具链包括:
用户向 Claude 提问 → Claude 通过 MCP 协议将命令发送给 k8s-mcp-server → 服务器验证命令安全性 → 在容器化环境中执行 kubectl/helm 等命令 → 返回结果给 Claude → Claude 分析并解释给用户。
项目采用清晰的分层架构,代码组织在 src/k8s_mcp_server/ 下:
| 模块 | 职责 |
|---|---|
server.py | FastMCP 服务器核心,注册工具和处理程序 |
cli_executor.py | 异步执行 CLI 命令,超时控制,输出捕获 |
security.py | 命令白名单验证,危险命令拦截,管道链验证 |
tools.py | kubectl/helm/istioctl/argocd 命令解析与参数验证 |
config.py | 环境变量驱动,支持 timeout/namespace/context 配置 |
prompts.py | 预定义 Kubernetes 操作提示模板 |
技术栈方面,项目使用 FastMCP(Anthropic MCP 规范的 Python 实现)作为服务器框架,Pydantic 进行数据验证,asyncio 实现非阻塞命令执行。代码风格由 ruff + black 统一规范,有 pytest 单元测试和集成测试覆盖。
k8s-mcp-server 提供了完整的 Docker 容器化方案,部署极其简单。Dockerfile 采用多阶段构建(python:3.13-slim),内置 kubectl v1.33.0、helm v3.17.3 及其各平台二进制,自动下载并验证工具链。
通过 docker-compose 部署,只需一行配置挂载 ~/.kube(集群认证配置),设置好 K8S_CONTEXT 和 K8S_NAMESPACE 环境变量即可。对于 AWS EKS、GCP GKE、Azure AKS 等主流云托管 K8s,也提供了开箱即用的凭证挂载支持。
这是项目最值得关注的亮点之一。k8s-mcp-server 在安全设计上下了相当深的功夫:
命令白名单机制:默认只允许特定的 kubectl/helm/istioctl/argocd 命令通过,所有命令必须先经过 security.py 的 Allowlist 校验。
危险命令拦截:内置危险命令黑名单,包括 kubectl delete(不带资源名)、kubectl drain、kubectl exec(交互式)、helm delete/uninstall 等高危操作,且可以通过 YAML 配置文件自定义。
管道链验证:AI 生成的命令可能包含管道符(|),系统只允许白名单内的 Unix 工具(如 grep、awk、sed)参与管道组合,防止通过管道注入恶意命令。
超时与输出限制:执行超时默认 300 秒,最大输出 10 万字符,防止资源耗尽攻击。
非 root 用户运行:容器以非特权用户 appuser 运行,即使命令执行被突破也难以获取系统权限。
无 Web UI:项目专注 MCP 协议层面,不提供图形界面,需配合 Claude Desktop 或其他 MCP 客户端使用。
离线场景受限:kubectl/helm 等工具依赖官方二进制下载地址,在严格网络隔离环境中需手动挂载工具。
安全性与可用性的博弈:strict 安全模式下许多"危险但有用"的命令(如 kubectl delete pod)需要显式放行,初始配置有一定门槛。
MCP 协议成熟度:MCP 规范仍在快速迭代中,transport 方式(stdio/SSE/streamable-http)在不同客户端的兼容性可能存在差异。
k8s-mcp-server 是一个定位清晰、技术扎实、安全优先的 MCP 服务器实现。它不追求大而全的功能集,而是专注于"Kubernetes CLI 工具的安全托管"这一件事。对于已经使用 Claude Desktop 或其他支持 MCP 的 AI 助手的开发者而言,它是将 AI 能力延伸至 Kubernetes 运维领域的最佳路径。目前已有 13 个项目 topic 标签覆盖,包括 AI-assistant、DevOps、Docker、K8s 等热门领域,在 GitHub 上持续活跃。
