Skip to main content
Glama

Kubernetes MCP 服务器

GitHub 许可证 npm PyPI - 版本 GitHub 版本(最新 SemVer) 建造

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

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 版本。

    • 在当前或提供的命名空间中卸载Helm 版本。

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

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

  • ✅ 轻量级:该服务器作为 Linux、macOS 和 Windows 的单个本机二进制文件分发。

  • ✅ 高性能/低延迟:直接与 Kubernetes API 服务器交互,无需调用和等待外部命令的开销。

  • ✅ 跨平台:可作为 Linux、macOS 和 Windows 的本机二进制文件,以及 npm 包、Python 包和容器/Docker 映像使用。

  • ✅ 可配置:支持命令行参数来配置服务器行为。

  • ✅ 经过充分测试:该服务器具有广泛的测试套件,以确保其在不同的 Kubernetes 环境中的可靠性和正确性。

Related MCP server: k8s-interactive-mcp

🚀 入门

要求

  • 访问 Kubernetes 集群。

克劳德桌面

使用 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 内部人士

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

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

# For VS Code
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'

Goose 命令行界面

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

使用 npm

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

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

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

🎥 演示

诊断并自动修复 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 服务器。

您可以使用npxuvx或下载最新版本的二进制文件来运行 CLI 可执行文件。

# Run the Kubernetes MCP server using npx (in case you have npm and node installed)
npx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using uvx (in case you have uv and python installed)
uvx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using the latest release binary
./kubernetes-mcp-server --help

配置选项

选项

描述

--sse-port

以服务器发送事件 (SSE) 模式启动 MCP 服务器并监听指定端口。

--log-level

设置日志级别(值从 0 到 9 )。类似于kubectl logging levels

--kubeconfig

Kubernetes 配置文件的路径。如果未提供,它将尝试解析配置(集群内、默认位置等)。

--read-only

如果设置了此选项,MCP 服务器将以只读模式运行,这意味着它不允许在 Kubernetes 集群上执行任何写入操作(创建、更新、删除)。这对于在不进行任何更改的情况下调试或检查集群非常有用。

--disable-destructive

如果设置,MCP 服务器将禁用 Kubernetes 集群上的所有破坏性操作(删除、更新等)。这对于调试或检查集群非常有用,避免意外更改。使用--read-only选项时,此选项无效。

🛠️ 工具

configuration_view

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

参数:

  • minifiedboolean ,可选,默认值: true

    • 返回配置的最小化版本

    • 如果为true ,则仅保留当前上下文和相关配置部分

    • 如果为false ,则返回所有上下文、集群、授权信息和用户

events_list

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

参数:

  • namespacestring ,可选)

    • 用于检索事件的命名空间。如果未提供,则列出所有命名空间中的事件

helm_install

使用提供的名称和图表在当前或提供的命名空间中安装 Helm 图表

参数:

  • chartstring ,必需)

    • 要安装的 Helm 图表的名称

    • 可以是本地路径或远程 URL

    • 例如: ./my-chart.tgzhttps://example.com/my-chart.tgz

  • valuesobject ,可选)

    • 传递给 Helm 图表的值

    • 例如: {"key": "value"}

  • namestring ,可选)

    • Helm 版本的名称

    • 如果未提供,则随机名称

  • namespacestring ,可选)

    • 安装 Helm 图表的命名空间

    • 如果未提供,将使用配置的命名空间

helm_list

列出当前或提供的命名空间(或指定的所有命名空间)中的所有 Helm 版本

参数:

  • namespacestring ,可选)

    • 列出 Helm 版本的命名空间

    • 如果未提供,将使用配置的命名空间

  • all_namespacesboolean ,可选)

    • 如果为true ,将列出所有命名空间中的 Helm 版本

    • 如果为false ,将列出来自指定命名空间的 Helm 版本

helm_uninstall

使用提供的名称卸载当前或提供的命名空间中的 Helm 版本

参数:

  • namestring ,必需)

    • 要卸载的 Helm 版本的名称

  • namespacestring ,可选)

    • 用于卸载 Helm 版本的命名空间

    • 如果未提供,将使用配置的命名空间

namespaces_list

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

**参数:**

pods_delete

删除当前命名空间或指定命名空间中具有指定名称的 Kubernetes Pod

参数:

  • namestring ,必需)

    • 要删除的 Pod 的名称

  • namespacestring ,必需)

    • 要从中删除 Pod 的命名空间

pods_exec

使用提供的名称和命令在当前或提供的命名空间中的 Kubernetes Pod 中执行命令

参数:

  • commandstring[] ,必需)

    • 在 Pod 容器中执行的命令

    • 第一项是命令,其余的是参数

    • 例如: ["ls", "-l", "/tmp"]

  • name (字符串,必需)

    • Pod 的名称

  • namespace (字符串,必需)

    • Pod 的命名空间

  • containerstring ,可选)

    • 获取日志的 Pod 容器的名称

pods_get

获取当前命名空间或指定命名空间中具有指定名称的 Kubernetes Pod

参数:

  • namestring ,必需)

    • Pod 的名称

  • namespacestring ,必需)

    • 获取 Pod 的命名空间

pods_list

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

参数:

  • labelSelectorstring ,可选)

    • Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。

pods_list_in_namespace

列出当前集群中指定命名空间内的所有 Kubernetes pod

参数:

  • namespacestring ,必需)

    • 列出 Pod 的命名空间

  • labelSelectorstring ,可选)

    • Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。

pods_log

获取当前命名空间或指定名称的 Kubernetes Pod 的日志

参数:

  • namestring ,必需)

    • 获取日志的 Pod 名称

  • namespacestring ,必需)

    • 获取 Pod 日志的命名空间

  • containerstring ,可选)

    • 获取日志的 Pod 容器的名称

pods_run

使用提供的容器镜像和可选名称在当前或提供的命名空间中运行 Kubernetes Pod

参数:

  • imagestring ,必需)

    • 要在 Pod 中运行的容器镜像

  • namespacestring ,必需)

    • 运行 Pod 的命名空间

  • namestring ,可选)

    • Pod 的名称(如果未提供则为随机名称)

  • portnumber ,可选)

    • 从 Pod 容器公开的 TCP/IP 端口

    • 如果未提供,则不公开端口

projects_list

列出当前集群中的所有 OpenShift 项目

resources_create_or_update

通过提供资源的 YAML 或 JSON 表示形式来创建或更新当前集群中的 Kubernetes 资源

参数:

  • resourcestring ,必需)

    • 包含 Kubernetes 资源表示的 JSON 或 YAML

    • 应包含顶级字段,例如 apiVersion、kind、metadata 和 spec

常见的apiVersion和kind包括:

  • v1 Pod

  • v1 服务

  • v1 节点

  • apps/v1 部署

  • networking.k8s.io/v1 入口

resources_delete

删除当前集群中的 Kubernetes 资源

参数:

  • apiVersionstring ,必需)

    • 资源的 apiVersion(例如, v1apps/v1networking.k8s.io/v1

  • kindstring ,必需)

    • 资源类型(例如PodServiceDeploymentIngress

  • namestring ,必需)

    • 资源名称

  • namespacestring ,可选)

    • 要从中删除命名空间资源的命名空间

    • 忽略集群范围的资源

    • 如果未提供,则使用已配置的命名空间

resources_get

获取当前集群中的 Kubernetes 资源

参数:

  • apiVersionstring ,必需)

    • 资源的 apiVersion(例如, v1apps/v1networking.k8s.io/v1

  • kindstring ,必需)

    • 资源类型(例如PodServiceDeploymentIngress

  • namestring ,必需)

    • 资源名称

  • namespacestring ,可选)

    • 用于检索命名空间资源的命名空间

    • 忽略集群范围的资源

    • 如果未提供,则使用已配置的命名空间

resources_list

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

参数:

  • apiVersionstring ,必需)

    • 资源的 apiVersion(例如, v1apps/v1networking.k8s.io/v1

  • kindstring ,必需)

    • 资源种类(例如PodServiceDeploymentIngress

  • namespacestring ,可选)

    • 用于检索命名空间资源的命名空间

    • 忽略集群范围的资源

    • 如果未提供,则列出所有命名空间的资源

  • labelSelectorstring ,可选)

    • Kubernetes 标签选择器(例如,“app=myapp,env=prod”或“app in (myapp,yourapp)”)。使用此选项可按标签筛选 Pod。

🧑‍💻开发

使用 mcp-inspector 运行

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

# Compile the project
make build
# Run the Kubernetes MCP server with mcp-inspector
npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server
A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
13hResponse time
3wRelease cycle
17Releases (12mo)
Commit activity
Issues opened vs closed

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • The official MCP Server from Mia-Platform to interact with Mia-Platform Console

  • MCP server for Klever blockchain smart contract development.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/containers/kubernetes-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server