✨ 功能 | 🚀 快速开始 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 🧑💻 开发
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
一个强大的且灵活的 Kubernetes 模型上下文协议 (MCP) 服务器实现,支持 Kubernetes 和 OpenShift。
.kube/config 或集群内配置。与其他 Kubernetes MCP 服务器实现不同,这 不是 只是围绕 kubectl 或 helm 命令行工具的包装。
这是一个 基于 Go 的原生实现,直接与 Kubernetes API 服务器交互。
不需要在系统上安装外部依赖项或工具。 如果你使用的是原生二进制文件,则不需要在系统上安装 Node 或 Python。
遵循我们的 用户文档 中的 Claude Code 快速开始指南。
对于具有专用 ServiceAccount 和只读访问权限的安全生产设置,请参阅 Kubernetes 设置指南。
</details>如果你已经安装了 npm,这是在 Claude Desktop 上快速开始使用 kubernetes-mcp-server 的最快方法。
打开你的 claude_desktop_config.json 并将 mcp 服务器添加到 mcpServers 列表中:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": [
"-y",
"kubernetes-mcp-server@latest"
]
}
}
}
通过点击以下链接在 VS Code Insiders 中安装 Kubernetes MCP 服务器扩展:
<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="在 VS Code 中安装"> <img alt="在 VS Code Insiders 中安装" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5">
或者,你可以通过运行以下命令手动安装扩展:
# 对于 VS Code
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# 对于 VS Code Insiders
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
通过点击以下链接在 Cursor 中安装 Kubernetes MCP 服务器扩展:
或者,你可以通过编辑 mcp.json 文件手动安装扩展:
{
"mcpServers": {
"kubernetes-mcp-server": {
"command": "npx",
"args": ["-y", "kubernetes-mcp-server@latest"]
}
}
}
Goose CLI 是开始使用人工智能 (AI) 代理的最简单(也是最便宜)的方法。
如果你已经安装了 npm,这是快速开始使用 kubernetes-mcp-server 的最快方法。
打开你的 goose config.yaml 并将 mcp 服务器添加到 mcpServers 列表中:
extensions:
kubernetes:
command: npx
args:
- -y
- kubernetes-mcp-server@latest
演示展示了如何利用 Kubernetes MCP 服务器自动诊断并修复 OpenShift 中的部署,无需任何用户干预。
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
在这个演示中,我将带你了解如何使用 VS Code Vibe 编码 一个简单的游戏,以及如何利用 Podman MCP 服务器 和 Kubernetes MCP 服务器将其部署到 OpenShift。
<a href="https://www.youtube.com/watch?v=l05jQDSrzVI" target="_blank"> <img src="docs/images/vibe-coding.jpg" alt="Vibe 编码:在 Kubernetes 上构建和部署游戏" width="240" /> </a>在这个演示中,我将展示如何仅通过点击一个链接来设置 VS Code 中的 Kubernetes MCP 服务器。
<a href="https://youtu.be/AI4ljYMkgtA" target="_blank"> <img src="docs/images/kubernetes-mcp-server-github-copilot.jpg" alt="通过 Kubernetes MCP 服务器增强 GitHub Copilot - 一键设置!" width="240" /> </a>Kubernetes MCP 服务器可以通过命令行 (CLI) 参数进行配置。
你可以通过使用 npx、uvx 或下载 最新发布的二进制文件 来运行 CLI 可执行文件。
# 使用 npx 运行 Kubernetes MCP 服务器(假设你已安装 npm 和 node)
npx kubernetes-mcp-server@latest --help
# 使用 uvx 运行 Kubernetes MCP 服务器(假设你已安装 uv 和 python)
uvx kubernetes-mcp-server@latest --help
# 使用最新发布的二进制文件运行 Kubernetes MCP 服务器
./kubernetes-mcp-server --help
| 选项 | 描述 |
|---|---|
--port | 启动 MCP 服务器以流式 HTTP 模式(路径 /mcp)和服务器发送事件 (SSE) 模式(路径 /sse),并监听指定端口。 |
--log-level | 设置日志级别(值 [0-9],参见 Kubernetes 社区贡献者文档)。类似于 kubectl 日志级别。 |
--kubeconfig | Kubernetes 配置文件的路径。如果没有提供,它会尝试解析配置(集群内、默认位置等)。 |
--list-output | 资源列表操作的输出格式(其中之一:yaml、table,默认 "table") |
--read-only | 如果设置,MCP 服务器将以只读模式运行,这意味着它不允许对 Kubernetes 集群进行任何写操作(创建、更新、删除)。这对于调试或检查集群而不进行更改非常有用。 |
--disable-destructive | 如果设置,MCP 服务器将禁用所有破坏性操作(删除、更新等)在 Kubernetes 集群上。这对于调试或检查集群而不意外地进行更改非常有用。当使用 --read-only 时,此选项无效。 |
--toolsets | 逗号分隔的工具集列表,用于启用。请参阅 🛠️ 工具和功能 部分以获取更多信息。 |
--disable-multi-cluster | 如果设置,MCP 服务器将禁用多集群支持,并仅使用 kubeconfig 文件中的当前上下文。这对于限制 MCP 服务器到单个集群非常有用。 |
Kubernetes MCP 服务器支持通过 --toolsets 命令行标志或 toolsets 配置选项启用或禁用特定组的工具和功能(工具、资源、提示等)。
这允许你控制哪些 Kubernetes 功能可供你的 AI 工具使用。
仅启用你需要的工具集可以帮助减少上下文大小并提高 LLM 的工具选择准确性。
以下工具集可用(标记为 ✓ 的工具集默认启用):
<!-- AVAILABLE-TOOLSETS-START -->| 工具集 | 描述 | 默认 |
|---|---|---|
| config | 查看和管理当前本地 Kubernetes 配置(kubeconfig) | ✓ |
| core | Kubernetes 管理中最常用的工具(容器组、通用资源、事件等) | ✓ |
| helm | 管理 Helm 图表和发布 | ✓ |
| kiali | 管理 Kiali 的最常用工具,详情请参阅 Kiali 文档。 |
如果启用了多集群支持(默认情况下)并且你有权访问多个集群,所有适用的工具都将包括一个额外的 context 参数,以指定要使用的 Kubernetes 上下文(集群)。
configuration_contexts_list - 列出 kubeconfig 文件中所有可用的上下文名称及其关联的服务器 URL
configuration_view - 获取当前 Kubernetes 配置内容作为 kubeconfig YAML
minified (boolean) - 返回配置的精简版本。如果设置为 true,则仅保留当前上下文及其相关配置部分。如果设置为 false,则返回配置中的所有上下文、集群、认证信息和用户。 (可选,默认为 true)events_list - 列出当前集群中所有命名空间的所有 Kubernetes 事件
namespace (string) - 可选命名空间,从中检索事件。如果不提供,将列出所有命名空间的事件namespaces_list - 列出当前集群中的所有 Kubernetes 命名空间
projects_list - 列出当前集群中的所有 OpenShift 项目
nodes_log - 获取 Kubernetes 节点的日志(kubelet、kube-proxy 或其他系统日志)。此操作通过 Kubernetes API 代理访问 kubelet 来获取节点日志
name (string) (必需) - 要获取日志的节点名称query (string) (必需) - 查询指定的服务或文件,以返回日志(必需)。例如:"kubelet" 用于获取 kubelet 日志,"/<log-file-name>" 用于获取节点上的特定日志文件(例如,"/var/log/kubelet.log" 或 "/var/log/kube-proxy.log")tailLines (integer) - 从日志末尾检索的行数(可选,0 表示所有日志)nodes_stats_summary - 通过 kubelet 的 Summary API 获取 Kubernetes 节点的详细资源使用统计信息。提供包括 CPU、内存、文件系统和网络使用情况在内的全面指标,涵盖节点、容器组和容器级别。在具有 cgroup v2 和内核 4.20+ 的系统上,还包括 PSI(压力停滞信息)指标,显示 CPU、内存和 I/O 的资源压力。有关 PSI 指标的详细信息,请参阅 https://kubernetes.io/docs/reference/instrumentation/understand-psi-metrics/
name (string) (必需) - 要获取统计信息的节点名称nodes_top - 列出 Kubernetes Metrics Server 记录的指定 Kubernetes 节点或集群中所有节点的资源消耗(CPU 和内存)
label_selector (string) - Kubernetes 标签选择器(例如 'node-role.kubernetes.io/worker='),用于按标签过滤节点(可选,仅在未提供名称时适用)name (string) - 要获取资源消耗的节点名称(可选,如果未提供则为所有节点)pods_list - 列出当前集群中所有命名空间的所有 Kubernetes 容器组
labelSelector (string) - 可选 Kubernetes 标签选择器(例如 'app=myapp,env=prod' 或 'app in (myapp,yourapp)'),当你想按标签过滤容器组时使用此选项pods_list_in_namespace