K

Kubernetes语控服务器

一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。

cloud-platformsvirtualizationdeveloper-tools

1.3k 查看 · 2026-07-07 更新

简介

一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。

简介

一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。

MCP Server Kubernetes

CI Language Bun Kubernetes Docker Stars Issues PRs Welcome Last Commit smithery badge

可以连接到 Kubernetes 集群并管理它的 MCP 服务器。

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 列出您的 pods 或创建一个测试部署来验证连接。

如果出现错误,请打开标准终端并运行 kubectl get pods 以检查您是否可以在没有凭证问题的情况下连接到集群。

使用 mcp-chat

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

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

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

Mac:

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

Windows:

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

功能

  • 连接到 Kubernetes 集群
  • 列出所有 pod、服务、部署、节点
  • 创建、描述、删除一个 pod
  • 列出所有命名空间,创建一个命名空间
  • 创建自定义的 pod 和部署配置,更新部署副本数
  • 从 pod 获取日志以进行调试(支持 pod、部署、作业和标签选择器)
  • 支持 Helm v3 安装图表
    • 使用自定义值安装图表
    • 卸载发布
    • 升级现有发布
    • 支持命名空间
    • 支持版本指定
    • 支持自定义仓库
  • kubectl explain 和 kubectl api-resources 支持
  • 从集群获取 Kubernetes 事件
  • 端口转发到 pod 或服务
  • 创建、列出和描述定时任务

本地开发

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 进行本地测试
npm run chat

贡献

请参阅 CONTRIBUTING.md 文件以获取详细信息。

高级

有关更高级的信息,如使用 SSE 传输,请参阅 ADVANCED_README.md

架构

本节描述了 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

发布新版本

转到 releases 页面,点击 "Draft New Release",点击 "Choose a tag" 并通过键入新的版本号(使用 "v{major}.{minor}.{patch}" semver 格式)来创建一个新的标签。然后,写一个发布标题 "Release v{major}.{minor}.{patch}" 和描述/变更日志(如果需要),并点击 "Publish Release"。

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

不计划

身份验证 / 将集群添加到 kubectx。

服务配置

[{'mcpServers': {'kubernetes': {'args': ['mcp-server-kubernetes'], 'command': 'npx'}}}, {'mcpServers': {'mcp-server-kubernetes': {'args': ['/path/to/your/mcp-server-kubernetes/dist/index.js'], 'command': 'node'}}}]

来源

Kubernetes语控服务器 - MCP - HelloWorld