Skip to main content
Glama
Flux159
by Flux159

MCP 服务器 Kubernetes

CI 语言 包子 Kubernetes Docker 星星 问题 欢迎 PR 最后提交 铁匠徽章

MCP 服务器可以连接到 Kubernetes 集群并对其进行管理。

https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed

与 Claude Desktop 一起使用

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

服务器将自动连接到您当前的 kubectl 上下文。请确保您已:

  1. kubectl 已安装并位于您的 PATH 中

  2. 已配置上下文的有效 kubeconfig 文件

  3. 访问为 kubectl 配置的 Kubernetes 集群(例如 minikube、Rancher Desktop、GKE 等)

  4. 已安装 Helm v3 并将其添加到您的 PATH 中(无需 Tiller)。如果您不打算使用 Helm,则此步骤可选。

您可以通过要求 Claude 列出您的 pod 或创建测试部署来验证您的连接。

如果出现错误,请打开标准终端并运行kubectl get pods以查看是否可以连接到集群而没有凭据问题。

Related MCP server: k8m

与 mcp-chat 一起使用

mcp-chat是 MCP 服务器的 CLI 聊天客户端。您可以使用它与 Kubernetes 服务器进行交互。

npx mcp-chat --server "npx mcp-server-kubernetes"

或者,将您现有的 Claude Desktop 配置文件从上面传递给它(Linux 应该将正确的路径传递给配置):

苹果:

npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"

视窗:

npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"

特征

  • [x] 连接到 Kubernetes 集群

  • [x] 列出所有 pod、服务、部署

  • [x] 列出、描述节点

  • [x] 创建、描述、删除 Pod

  • [x] 列出所有命名空间,创建命名空间

  • [x] 创建自定义 pod 和部署配置,更新部署副本

  • [x] 创建、描述、删除、更新服务

  • [x] 创建、获取、更新、删除 ConfigMap

  • [x] 从 pod 获取日志以进行调试(支持 pod、部署、作业和标签选择器)

  • [x] 支持 Helm v3 安装图表

    • 安装具有自定义值的图表

    • 卸载版本

    • 升级现有版本

    • 支持命名空间

    • 支持版本规范

    • 支持自定义存储库

  • [x] kubectl explain 和 kubectl api-resources 支持

  • [x] 从集群获取 Kubernetes 事件

  • [x] 端口转发到 Pod 或服务

  • [x] 创建、列出和描述 cronjobs

  • [x] 用于读取和仅创建/更新集群访问的非破坏性模式

本地开发

确保已安装 bun 。克隆 repo 并安装依赖项:

git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun install

开发工作流程

  1. 以开发模式启动服务器(监视文件更改):

bun run dev
  1. 运行单元测试:

bun run test
  1. 构建项目:

bun run build
  1. 使用Inspector进行本地测试

npx @modelcontextprotocol/inspector node dist/index.js
# Follow further instructions on terminal for Inspector link
  1. 使用 Claude Desktop 进行本地测试

{
  "mcpServers": {
    "mcp-server-kubernetes": {
      "command": "node",
      "args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
    }
  }
}
  1. 使用mcp-chat进行本地测试

bun run chat

贡献

有关详细信息,请参阅CONTRIBUTING.md文件。

先进的

其他高级功能

有关更多高级信息,例如使用 SSE 传输、带有ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS的非破坏性模式,请参阅ADVANCED_README.md

建筑学

请参阅此DeepWiki 链接,了解 Devin 创建的更深入的架构概述。

本节介绍 MCP Kubernetes 服务器的高层架构。

请求流程

下面的序列图说明了请求如何流经系统:

sequenceDiagram
    participant Client
    participant Transport as StdioTransport
    participant Server as MCP Server
    participant Handler as Request Handler
    participant K8sManager as KubernetesManager
    participant K8s as Kubernetes API

    Client->>Transport: Send Request via STDIO
    Transport->>Server: Forward Request

    alt Tools Request
        Server->>Handler: Route to tools handler
        Handler->>K8sManager: Execute tool operation
        K8sManager->>K8s: Make API call
        K8s-->>K8sManager: Return result
        K8sManager-->>Handler: Process response
        Handler-->>Server: Return tool result
    else Resource Request
        Server->>Handler: Route to resource handler
        Handler->>K8sManager: Get resource data
        K8sManager->>K8s: Query API
        K8s-->>K8sManager: Return data
        K8sManager-->>Handler: Format response
        Handler-->>Server: Return resource data
    end

    Server-->>Transport: Send Response
    Transport-->>Client: Return Final Response

发布新版本

前往发布页面,点击“草稿新版本”,点击“选择标签”,并使用“v{major}.{minor}.{patch}”语义版本格式输入新版本号,创建一个新标签。然后,输入发布标题“Release v{major}.{minor}.{patch}”,并根据需要添加描述/更新日志,然后点击“发布版本”。

这将创建一个新标签,并通过 cd.yml 工作流触发新的版本构建。成功后,新版本将发布到npm 。请注意,无需手动更新 package.json 版本,因为工作流会自动更新 package.json 文件中的版本号并将提交推送到主分支。

未计划

身份验证/向 kubectx 添加集群。

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/Flux159/mcp-server-kubernetes'

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