首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Kubernetes MCP 服务器2026-06-11195分享添加福利群:解决AI开发者的「MCP实战痛点」
一个强大且灵活的Kubernetes MCP服务器实现,支持OpenShift。
By manusa
2026-06-11195
github
详情内容

Kubernetes MCP 服务器

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

✨ 功能 | 🚀 入门 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 🧑‍💻 开发

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

✨ 功能

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

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

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

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

  • ✅ 轻量级: 服务器以单个原生二进制文件的形式分发,适用于 Linux、macOS 和 Windows。
  • ✅ 高性能 / 低延迟: 直接与 Kubernetes API 服务器交互,无需调用和等待外部命令的开销。
  • ✅ 跨平台: 可作为 Linux、macOS 和 Windows 的原生二进制文件,以及 npm 包、Python 包和容器/Docker 镜像。
  • ✅ 可配置: 支持 命令行参数 来配置服务器行为。
  • ✅ 经过充分测试: 服务器具有广泛的测试套件,以确保其在不同 Kubernetes 环境中的可靠性和正确性。

🚀 入门

要求

  • 访问 Kubernetes 集群。

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 服务器扩展,点击以下链接:

在 VS Code 中安装 在 VS Code Insiders 中安装

或者,您可以通过运行以下命令手动安装扩展:

# 对于 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"]}'

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

🎥 演示

诊断并自动修复 OpenShift 部署

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

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

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

在这个演示中,我将带您了解如何使用 VS Code 进行 Vibe Coding 一个简单的游戏,并如何利用 Podman MCP 服务器 和 Kubernetes MCP 服务器将其部署到 OpenShift。

Vibe Coding: 在 Kubernetes 上构建和部署游戏

在 VS Code 中使用 Kubernetes MCP 服务器增强 GitHub Copilot - 一键设置!

在这个演示中,我将向您展示如何通过点击链接在 VS Code 中设置 Kubernetes MCP 服务器。

在 VS Code 中使用 Kubernetes MCP 服务器增强 GitHub Copilot - 一键设置!

⚙️ 配置

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

配置选项

选项 描述
--sse-port 以服务器发送事件 (SSE) 模式启动 MCP 服务器,并在指定端口上监听。
--log-level 设置日志级别(值 从 0-9)。类似于 kubectl 日志级别
--kubeconfig Kubernetes 配置文件的路径。如果未提供,将尝试解析配置(集群内、默认位置等)。
--read-only 如果设置,MCP 服务器将以只读模式运行,意味着它不允许在 Kubernetes 集群上执行任何写操作(创建、更新、删除)。这对于调试或检查集群而不进行更改非常有用。
--disable-destructive 如果设置,MCP 服务器将禁用所有破坏性操作(删除、更新等)在 Kubernetes 集群上。这对于调试或检查集群而不意外进行更改非常有用。此选项在使用 --read-only 时无效。

🛠️ 工具

configuration_view

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

参数:

  • minified (boolean, 可选, 默认: true)
    • 返回配置的简化版本
    • 如果为 true,仅保留当前上下文和相关配置部分
    • 如果为 false,返回所有上下文、集群、认证信息和用户

events_list

列出当前集群中所有命名空间中的所有 Kubernetes 事件

参数:

  • namespace (string, 可选)
    • 要从中检索事件的命名空间。如果未提供,将列出所有命名空间中的事件

helm_install

在当前或提供的命名空间中安装 Helm chart,并提供名称和 chart

参数:

  • chart (string, 必需)
    • 要安装的 Helm chart 名称
    • 可以是本地路径或远程 URL
    • 示例: ./my-chart.tgzhttps://example.com/my-chart.tgz
  • values (object, 可选)
    • 传递给 Helm chart 的值
    • 示例: {"key": "value"}
  • name (string, 可选)
    • Helm 发布的名称
    • 如果未提供,将生成随机名称
  • namespace (string, 可选)
    • 要安装 Helm chart 的命名空间
    • 如果未提供,将使用配置的命名空间

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

在当前或提供的命名空间中执行命令,并提供名称和命令

参数:

  • command (string[], 必需)
    • 在 Pod 容器中执行的命令
    • 第一个项目是命令,其余是参数
    • 示例: ["ls", "-l", "/tmp"]
  • name (string, 必需)
    • Pod 的名称
  • namespace (string, 必需)
    • 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 Service
  • v1 Node
  • apps/v1 Deployment
  • networking.k8s.io/v1 Ingress

resources_delete

删除当前集群中的 Kubernetes 资源

参数:

  • apiVersion (string, 必需)
    • 资源的 apiVersion(例如,v1apps/v1networking.k8s.io/v1
  • kind (string, 必需)
    • 资源的 kind(例如,PodServiceDeploymentIngress
  • name (string, 必需)
    • 资源的名称
  • namespace (string, 可选)
    • 要从中删除命名空间资源的命名空间
    • 对于集群范围的资源,忽略
    • 如果未提供,则使用配置的命名空间

resources_get

获取当前集群中的 Kubernetes 资源

参数:

  • apiVersion (string, 必需)
    • 资源的 apiVersion (例如,v1apps/v1networking.k8s.io/v1)
  • kind (string, 必需)
    • 资源的种类 (例如,PodServiceDeploymentIngress)
  • name (string, 必需)
    • 资源名称
  • namespace (string, 可选)
    • 获取命名空间资源的命名空间
    • 对于集群范围的资源,此参数将被忽略
    • 如果未提供,则使用已配置的命名空间

resources_list

列出当前集群中的 Kubernetes 资源和对象

参数:

  • apiVersion (string, 必需)
    • 资源的 apiVersion (例如,v1apps/v1networking.k8s.io/v1)
  • kind (string, 必需)
    • 资源的种类 (例如,PodServiceDeploymentIngress)
  • namespace (string, 可选)
    • 获取命名空间资源的命名空间
    • 对于集群范围的资源,此参数将被忽略
    • 如果未提供,则列出所有命名空间中的资源
  • labelSelector (string, 可选)
    • Kubernetes 标签选择器 (例如,'app=myapp,env=prod' 或 'app in (myapp,yourapp)')。 使用此选项按标签筛选 Pod。

🧑‍💻 开发

使用 mcp-inspector 运行

编译项目并使用 mcp-inspector 运行 Kubernetes MCP 服务器以检查 MCP 服务器。

# 编译项目
make build
# 使用 mcp-inspector 运行 Kubernetes MCP 服务器
npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档