返回市场
Kubernetes MCP 服务器

Kubernetes MCP 服务器

作者:containers816 星标更新:2025-11-24

项目介绍

Kubernetes MCP Server

GitHub License npm PyPI - Version GitHub release (latest SemVer) Build

✨ 特性 | 🚀 快速开始 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 🧑‍💻 开发

https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e

✨ 特性 <a id="features"></a>

一个强大的、灵活的 Kubernetes 模型上下文协议(MCP) 服务器实现,支持 KubernetesOpenShift

  • ✅ 配置
    • 自动检测 Kubernetes 配置的变化并更新 MCP 服务器。
    • 查看和管理当前的 Kubernetes .kube/config 或集群内配置。
  • ✅ 通用 Kubernetes 资源:对任何 Kubernetes 或 OpenShift 资源执行操作。
    • 任何 CRUD 操作(创建或更新、获取、列出、删除)。
  • ✅ 容器组(Pods):执行特定于容器组的操作。
    • 列出所有命名空间或特定命名空间中的容器组。
    • 根据名称从指定命名空间中获取容器组。
    • 根据名称从指定命名空间中删除容器组。
    • 显示指定命名空间中容器组的日志。
    • 获取所有容器组或特定容器组在指定命名空间中的资源使用情况。
    • 进入容器组并运行命令。
    • 在容器组中运行容器镜像,并可选地暴露它。
  • ✅ 命名空间:列出 Kubernetes 命名空间。
  • ✅ 事件:查看所有命名空间或特定命名空间中的 Kubernetes 事件。
  • ✅ 项目:列出 OpenShift 项目。
  • ☸️ Helm
    • 在当前或提供的命名空间中安装 Helm 图表。
    • 列出所有命名空间或特定命名空间中的 Helm 发布。
    • 在当前或提供的命名空间中卸载 Helm 发布。

与其他 Kubernetes MCP 服务器实现不同,这个 不是 只是 kubectlhelm 命令行工具的包装。 这是一个 基于 Go 的原生实现,直接与 Kubernetes API 服务器交互。

不需要在系统上安装外部依赖项或工具。 如果你使用的是原生二进制文件,则不需要在系统上安装 Node 或 Python。

  • ✅ 轻量级:该服务器作为单个原生二进制文件分发给 Linux、macOS 和 Windows。
  • ✅ 高性能/低延迟:直接与 Kubernetes API 服务器交互,没有调用和等待外部命令的开销。
  • ✅ 多集群:可以同时与多个 Kubernetes 集群交互(如在你的 kubeconfig 文件中定义的那样)。
  • ✅ 跨平台:作为 Linux、macOS 和 Windows 的原生二进制文件提供,以及 npm 包、Python 包和容器/Docker 镜像。
  • ✅ 可配置:支持通过 命令行参数 来配置服务器行为。
  • ✅ 经过充分测试:该服务器有一个广泛的测试套件,确保其在不同 Kubernetes 环境中的可靠性和正确性。

🚀 快速开始 <a id="getting-started"></a>

要求

  • 访问 Kubernetes 集群。
<details> <summary><b>Claude Code</b></summary>

遵循我们的 用户文档 中的 Claude Code 快速开始指南

为了安全地设置生产环境,包括专用的 ServiceAccount 和只读访问权限,请参阅 Kubernetes 设置指南

</details>

Claude Desktop

使用 npx

如果你已经安装了 npm,这是在 Claude Desktop 上快速开始使用 kubernetes-mcp-server 的最快方法。

打开你的 claude_desktop_config.json 并将 mcp 服务器添加到 mcpServers 列表中:

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ]
    }
  }
}

VS Code / VS Code Insiders

通过点击以下链接,在 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

通过点击以下链接,在 Cursor 中安装 Kubernetes MCP 服务器扩展:

安装 MCP 服务器

或者,你可以通过编辑 mcp.json 文件手动安装扩展:

{
  "mcpServers": {
    "kubernetes-mcp-server": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}

Goose CLI

Goose CLI 是使用人工智能(AI)代理的最简单(也是最便宜)的方法。

使用 npm

如果你已经安装了 npm,这是快速开始使用 kubernetes-mcp-server 的最快方法。

打开你的 goose config.yaml 并将 mcp 服务器添加到 mcpServers 列表中:

extensions:
  kubernetes:
    command: npx
    args:
      - -y
      - kubernetes-mcp-server@latest

🎥 演示 <a id="demos"></a>

诊断并自动修复 OpenShift 部署

演示展示了如何利用 Kubernetes MCP 服务器自动诊断并修复 OpenShift 中的部署,无需任何用户干预。

https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941

Vibe 编码 一个简单的游戏并将其部署到 OpenShift

在这个演示中,我将引导你完成使用 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>

通过 Kubernetes MCP 服务器增强 GitHub Copilot - 一键设置!

在这个演示中,我将展示如何仅通过点击一个链接来设置 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>

⚙️ 配置 <a id="configuration"></a>

Kubernetes MCP 服务器可以通过命令行(CLI)参数进行配置。

你可以通过使用 npxuvx 或下载 最新发布的二进制文件 来运行 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 日志级别
--kubeconfigKubernetes 配置文件的路径。如果没有提供,它会尝试解析配置(集群内、默认位置等)。
--list-output资源列表操作的输出格式(一种:yaml、table,默认 "table")
--read-only如果设置了此选项,MCP 服务器将以只读模式运行,这意味着它不允许对 Kubernetes 集群进行任何写操作(创建、更新、删除)。这对于调试或检查集群而不进行更改非常有用。
--disable-destructive如果设置了此选项,MCP 服务器将禁用所有破坏性操作(删除、更新等)对 Kubernetes 集群的操作。这对于调试或检查集群而不意外地进行更改非常有用。当使用 --read-only 时,此选项无效。
--toolsets要启用的工具集的逗号分隔列表。更多信息请参阅 🛠️ 工具和功能 部分。
--disable-multi-cluster如果设置了此选项,MCP 服务器将禁用多集群支持,并仅使用 kubeconfig 文件中的当前上下文。这对于限制 MCP 服务器到单个集群非常有用。

🛠️ 工具和功能 <a id="tools-and-functionalities"></a>

Kubernetes MCP 服务器支持通过 --toolsets 命令行标志或 toolsets 配置选项启用或禁用特定的工具和功能组(工具、资源、提示等)。 这允许你控制哪些 Kubernetes 功能可供你的 AI 工具使用。 仅启用你需要的工具集可以帮助减少上下文大小并提高 LLM 的工具选择准确性。

可用工具集

以下是一些可用的工具集(标记为 ✓ 的默认工具集默认启用):

<!-- AVAILABLE-TOOLSETS-START -->
工具集描述默认
config查看和管理当前本地 Kubernetes 配置(kubeconfig)
coreKubernetes 管理中最常用的工具(Pods、通用资源、事件等)
helm管理 Helm 图表和发布
kiali最常用的管理 Kiali 的工具,更多详情请参阅 Kiali 文档
<!-- AVAILABLE-TOOLSETS-END -->

工具

如果启用了多集群支持(默认情况下)并且你有权访问多个集群,所有适用的工具都将包含一个额外的 context 参数,用于指定要使用的 Kubernetes 上下文(集群)。

<!-- AVAILABLE-TOOLSETS-TOOLS-START --> <details> <summary>config</summary>
  • configuration_contexts_list - 列出 kubeconfig 文件中的所有可用上下文名称及其关联的服务器 URL

  • configuration_view - 获取当前 Kubernetes 配置内容作为 kubeconfig YAML

    • minified (boolean) - 返回配置的精简版本。如果设置为 true,则仅保留当前上下文及其相关配置部分。如果设置为 false,则返回配置中的所有上下文、集群、认证信息和用户。 (可选,默认为 true)
</details> <details> <summary>core</summary>
  • 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、内存、文件系统和网络使用情况,涵盖节点、Pod 和容器级别。在具有 cgroup v2 和内核 4.20+ 的系统上,还包括 PSI(压力停滞信息)指标,显示 CPU、内存和 I/O 的资源压力。有关 PSI 指标的详细信息,请参阅 Kubernetes 文档

    • name (string) (必需) - 要获取统计信息的节点名称
  • nodes_top - 列出 Kubernetes Metrics Server 记录的指定 Kubernetes 节点或集群中所有节点的资源消耗(CPU 和内存)

    • label_selector (string) - Kubernetes 标签选择器(例如 'node-role.kubernetes.io/worker='),用于按标签过滤节点(可选,仅在未提供名称时适用)
    • name (string) - 要获取资源消耗的节点名称(可选,如果未提供则为所有节点)
  • pods_list - 列出当前集群中所有命名空间的所有 Kubernetes Pod

    • labelSelector (string) - 可选的 Kubernetes 标签选择器(例如 'app=myapp,env=prod' 或 'app in (myapp,yourapp)'),当你想按标签过滤