一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。
1.3k 查看 · 2026-07-07 更新
简介
一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。
简介
一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。
MCP Server Kubernetes
可以连接到 Kubernetes 集群并管理它的 MCP 服务器。
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
使用 Claude Desktop
{ "mcpServers": { "kubernetes": { "command": "npx", "args": ["mcp-server-kubernetes"] } } }
服务器将自动连接到您当前的 kubectl 上下文。请确保您已:
- 安装了 kubectl 并将其添加到 PATH 中
- 配置了一个有效的 kubeconfig 文件和上下文
- 配置了 kubectl 可以访问的 Kubernetes 集群(例如 minikube、Rancher Desktop、GKE 等)
- 安装了 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
开发工作流
- 在开发模式下启动服务器(监视文件更改):
bun run dev
- 运行单元测试:
bun run test
- 构建项目:
bun run build
- 使用 Inspector 进行本地测试
npx @modelcontextprotocol/inspector node dist/index.js # Follow further instructions on terminal for Inspector link
- 使用 Claude Desktop 进行本地测试
{ "mcpServers": { "mcp-server-kubernetes": { "command": "node", "args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"] } } }
- 使用 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'}}}]
来源
- 来源:github
- 链接:https://github.com/flux159/mcp-server-kubernetes