Kubernetes MCP 服务器
✨ 功能| 🚀 入门| 🎥 演示| ⚙️ 配置| 🛠️ 工具| 🧑💻 开发
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
✨ 特点
强大而灵活的 Kubernetes模型上下文协议 (MCP)服务器实现,支持Kubernetes和OpenShift 。
✅配置:
自动检测 Kubernetes 配置的变化并更新 MCP 服务器。
查看和管理当前Kubernetes 或集群内配置。
✅ 通用 Kubernetes 资源:对任何Kubernetes 或 OpenShift 资源执行操作。
任何 CRUD 操作(创建或更新、获取、列出、删除)。
✅ Pods :执行特定于 Pod 的操作。
列出所有命名空间或特定命名空间中的 pod。
从指定的命名空间按名称获取pod。
从指定的命名空间中按名称删除pod。
按名称显示指定命名空间中 pod 的日志。
执行到 pod 中并运行命令。
在 pod 中运行容器镜像并可选择将其公开。
✅ 命名空间:列出 Kubernetes 命名空间。
✅ 事件:查看所有命名空间或特定命名空间中的 Kubernetes 事件。
✅ 项目:列出 OpenShift 项目。
☸️头盔:
在当前或提供的命名空间中安装Helm 图表。
列出所有命名空间或特定命名空间中的 Helm 版本。
在当前或提供的命名空间中卸载Helm 版本。
与其他 Kubernetes MCP 服务器实现不同,这不仅仅是对kubectl或helm命令行工具的包装。它是一个基于 Go 的原生实现,可直接与 Kubernetes API 服务器交互。
无需在系统上安装任何外部依赖项或工具。如果您使用原生二进制文件,则无需在系统上安装 Node 或 Python。
✅ 轻量级:该服务器作为 Linux、macOS 和 Windows 的单个本机二进制文件分发。
✅ 高性能/低延迟:直接与 Kubernetes API 服务器交互,无需调用和等待外部命令的开销。
✅ 跨平台:可作为 Linux、macOS 和 Windows 的本机二进制文件,以及 npm 包、Python 包和容器/Docker 映像使用。
✅ 可配置:支持命令行参数来配置服务器行为。
✅ 经过充分测试:该服务器具有广泛的测试套件,以确保其在不同的 Kubernetes 环境中的可靠性和正确性。
🚀 入门
要求
访问 Kubernetes 集群。
克劳德桌面
使用 npx
如果您已安装 npm,这是在 Claude Desktop 上开始使用kubernetes-mcp-server最快方法。
打开claude_desktop_config.json并将 mcp 服务器添加到mcpServers列表中:
VS Code / VS Code 内部人士
通过点击以下链接在 VS Code Insiders 中安装 Kubernetes MCP 服务器扩展:
或者,您可以通过运行以下命令手动安装扩展:
Goose 命令行界面
Goose CLI是使用人工智能 (AI) 代理最简单(也是最便宜)的方法。
使用 npm
如果您已经安装了 npm,这是开始使用kubernetes-mcp-server最快方法。
打开你的 goose config.yaml并将 mcp 服务器添加到mcpServers列表中:
🎥 演示
诊断并自动修复 OpenShift 部署
演示展示了 Claude Desktop 如何利用 Kubernetes MCP 服务器自动诊断和修复 OpenShift 中的部署,无需任何用户协助。
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
Vibe 编写一个简单的游戏并将其部署到 OpenShift
在此演示中,我将引导您完成使用 VS Code 对简单游戏进行Vibe Coding的过程,以及如何利用Podman MCP 服务器和 Kubernetes MCP 服务器将其部署到 OpenShift。
使用 VS Code 中的 Kubernetes MCP 服务器增强 GitHub Copilot - 一键设置!
在这个演示中,我将向您展示如何通过单击链接在 VS 代码中设置 Kubernetes MCP 服务器。
⚙️ 配置
可以使用命令行 (CLI) 参数配置 Kubernetes MCP 服务器。
您可以使用npx 、 uvx或下载最新版本的二进制文件来运行 CLI 可执行文件。
配置选项
选项 | 描述 |
| 以服务器发送事件 (SSE) 模式启动 MCP 服务器并监听指定端口。 |
| 设置日志级别(值 )。类似于 。 |
| Kubernetes 配置文件的路径。如果未提供,它将尝试解析配置(集群内、默认位置等)。 |
| 如果设置了此选项,MCP 服务器将以只读模式运行,这意味着它不允许在 Kubernetes 集群上执行任何写入操作(创建、更新、删除)。这对于在不进行任何更改的情况下调试或检查集群非常有用。 |
| 如果设置,MCP 服务器将禁用 Kubernetes 集群上的所有破坏性操作(删除、更新等)。这对于调试或检查集群非常有用,避免意外更改。使用
选项时,此选项无效。 |
🛠️ 工具
configuration_view
获取当前 Kubernetes 配置内容作为 kubeconfig YAML
参数:
minified(boolean,可选,默认值:true)返回配置的最小化版本
如果为
true,则仅保留当前上下文和相关配置部分如果为
false,则返回所有上下文、集群、授权信息和用户
events_list
列出当前集群中所有命名空间的所有 Kubernetes 事件
参数:
namespace(string,可选)用于检索事件的命名空间。如果未提供,则列出所有命名空间中的事件
helm_install
使用提供的名称和图表在当前或提供的命名空间中安装 Helm 图表
参数:
chart(string,必需)要安装的 Helm 图表的名称
可以是本地路径或远程 URL
例如:
./my-chart.tgz或https://example.com/my-chart.tgz
values(object,可选)传递给 Helm 图表的值
例如:
{"key": "value"}
name(string,可选)Helm 版本的名称
如果未提供,则随机名称
namespace(string,可选)安装 Helm 图表的命名空间
如果未提供,将使用配置的命名空间
helm_list
列出当前或提供的命名空间(或指定的所有命名空间)中的所有 Helm 版本
参数:
namespace(string,可选)列出 Helm 版本的命名空间
如果未提供,将使用配置的命名空间
all_namespaces(boolean,可选)如果为
true,将列出所有命名空间中的 Helm 版本如果为
false,将列出来自指定命名空间的 Helm 版本
helm_uninstall
使用提供的名称卸载当前或提供的命名空间中的 Helm 版本
参数:
name(string,必需)要卸载的 Helm 版本的名称
namespace(string,可选)用于卸载 Helm 版本的命名空间
如果未提供,将使用配置的命名空间
namespaces_list
列出当前集群中的所有 Kubernetes 命名空间
**参数:**无
pods_delete
删除当前命名空间或指定命名空间中具有指定名称的 Kubernetes Pod
参数:
name(string,必需)要删除的 Pod 的名称
namespace(string,必需)要从中删除 Pod 的命名空间
pods_exec
使用提供的名称和命令在当前或提供的命名空间中的 Kubernetes Pod 中执行命令
参数:
command(string[],必需)在 Pod 容器中执行的命令
第一项是命令,其余的是参数
例如:
["ls", "-l", "/tmp"]
name(字符串,必需)Pod 的名称
namespace(字符串,必需)Pod 的命名空间
container(string,可选)获取日志的 Pod 容器的名称
pods_get
获取当前命名空间或指定命名空间中具有指定名称的 Kubernetes Pod
参数:
name(string,必需)Pod 的名称
namespace(string,必需)获取 Pod 的命名空间
pods_list
列出当前集群中所有命名空间的所有 Kubernetes Pod
参数:
labelSelector(string,可选)Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。
pods_list_in_namespace
列出当前集群中指定命名空间内的所有 Kubernetes pod
参数:
namespace(string,必需)列出 Pod 的命名空间
labelSelector(string,可选)Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。
pods_log
获取当前命名空间或指定名称的 Kubernetes Pod 的日志
参数:
name(string,必需)获取日志的 Pod 名称
namespace(string,必需)获取 Pod 日志的命名空间
container(string,可选)获取日志的 Pod 容器的名称
pods_run
使用提供的容器镜像和可选名称在当前或提供的命名空间中运行 Kubernetes Pod
参数:
image(string,必需)要在 Pod 中运行的容器镜像
namespace(string,必需)运行 Pod 的命名空间
name(string,可选)Pod 的名称(如果未提供则为随机名称)
port(number,可选)从 Pod 容器公开的 TCP/IP 端口
如果未提供,则不公开端口
projects_list
列出当前集群中的所有 OpenShift 项目
resources_create_or_update
通过提供资源的 YAML 或 JSON 表示形式来创建或更新当前集群中的 Kubernetes 资源
参数:
resource(string,必需)包含 Kubernetes 资源表示的 JSON 或 YAML
应包含顶级字段,例如 apiVersion、kind、metadata 和 spec
常见的apiVersion和kind包括:
v1 Pod
v1 服务
v1 节点
apps/v1 部署
networking.k8s.io/v1 入口
resources_delete
删除当前集群中的 Kubernetes 资源
参数:
apiVersion(string,必需)资源的 apiVersion(例如,
v1,apps/v1,networking.k8s.io/v1)
kind(string,必需)资源类型(例如
Pod、Service、Deployment、Ingress)
name(string,必需)资源名称
namespace(string,可选)要从中删除命名空间资源的命名空间
忽略集群范围的资源
如果未提供,则使用已配置的命名空间
resources_get
获取当前集群中的 Kubernetes 资源
参数:
apiVersion(string,必需)资源的 apiVersion(例如,
v1,apps/v1,networking.k8s.io/v1)
kind(string,必需)资源类型(例如
Pod、Service、Deployment、Ingress)
name(string,必需)资源名称
namespace(string,可选)用于检索命名空间资源的命名空间
忽略集群范围的资源
如果未提供,则使用已配置的命名空间
resources_list
列出当前集群中的 Kubernetes 资源和对象
参数:
apiVersion(string,必需)资源的 apiVersion(例如,
v1,apps/v1,networking.k8s.io/v1)
kind(string,必需)资源种类(例如
Pod、Service、Deployment、Ingress)
namespace(string,可选)用于检索命名空间资源的命名空间
忽略集群范围的资源
如果未提供,则列出所有命名空间的资源
labelSelector(string,可选)Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。
🧑💻开发
使用 mcp-inspector 运行
编译项目并使用mcp-inspector运行 Kubernetes MCP 服务器来检查 MCP 服务器。
Related MCP Servers
- -security-license-qualityProvides MCP multi-cluster Kubernetes management and operations, featuring a management interface, logging, and nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -695MIT License
- -security-license-qualityProvides MCP multi-cluster Kubernetes management and operations. It can be integrated as an SDK into your own project and includes nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -131MIT License
- GoMIT License
- -security-license-qualityAn auto-generated MCP server that enables interaction with Google Kubernetes Engine Hub API for multi-cluster management through natural language commands.Last updated -