关于 Mcp K8s Go
MCP K8s Go 是一个基于 Golang 编写的 MCP 服务,用于连接 Kubernetes 集群。它可以列出上下文、命名空间、节点和 Pod,并对任意资源进行读写操作。支持通过 --readonly 和 --allowed-contexts 限制可访问的集群范围。
主要功能
- 01列出 Kubernetes 上下文、命名空间、节点与 Pod
- 02对任意 Kubernetes 资源进行查询、创建与修改
- 03获取事件与 Pod 日志
- 04在 Pod 中运行命令
- 05--readonly 模式禁用写入类工具
- 06--allowed-contexts 限制可用上下文
适用场景
- 01排查 kube-system 等命名空间中的 Pod 日志错误
- 02在 AI 助手中查看集群节点与事件状态
- 03在受限的只读模式下检查生产集群
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 Kubernetes 相关的资源(resource)、提示词(prompt)和工具(tool)。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
基于 Golang、连接 Kubernetes 的 MCP 服务
MCP K8S Go
功能 ⚙ 使用 Inspector 浏览 ⚙ 与 Claude 搭配使用 ⚙ 参与贡献 ↗ ⚙ 关于 MCP ↗
功能
MCP 💬 提示词 🗂️ 资源 🤖 工具
- 🗂️🤖 列出 Kubernetes 上下文
- 💬🤖 列出 Kubernetes 命名空间
- 🤖 列出、获取、创建和修改任意 Kubernetes 资源
- 包含针对 pod、service、deployment 等资源的自定义映射
- 🤖 列出 Kubernetes 节点
- 💬 列出 Kubernetes pod
- 🤖 获取 Kubernetes 事件
- 🤖 获取 Kubernetes pod 日志
- 🤖 在 Kubernetes pod 中运行命令
使用 Inspector 浏览
如需通过 Inspector 使用最新发布版本,可以运行以下命令:
npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s
与 Claude 搭配使用
演示用法
以下与 Claude Desktop 的对话展示了选择特定上下文作为资源后,询问如何检查 kube-system 命名空间中的 pod 日志是否存在错误:

如需将此 MCP 服务与 Claude Desktop(或任何其他客户端)搭配使用,你可能需要选择安装方式。
你有多个选项:
| Smithery | mcp-get | 预构建 NPM 包 | GitHub 预构建版本 | 从源代码构建 | 使用 Docker | |
|---|---|---|---|---|---|---|
| Claude 设置 | 自动 | 自动 | 手动 | 手动 | 手动 | 手动 |
| 前置条件 | Node.js | Node.js | Node.js | 无 | Golang | Docker |
使用 Smithery
如需通过 Smithery 自动为 Claude Desktop 安装 MCP K8S Go:
npx -y @smithery/cli install @strowk/mcp-k8s --client claude
使用 mcp-get
通过 mcp-get 自动为 Claude Desktop 安装 MCP K8S Go:
npx @michaellatman/mcp-get@latest install @strowk/mcp-k8s
使用预构建二进制文件手动安装
从 npm 获取预构建版本
如果已安装 npm,并希望使用预构建二进制文件,请使用此方法:
npm install -g @strowk/mcp-k8s
然后运行 mcp-k8s --version 检查版本。如果显示已安装的版本,就可以继续将配置添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"mcp_k8s": {
"command": "mcp-k8s",
"args": []
}
}
}
也可以使用 npx 搭配任意客户端:
npx @strowk/mcp-k8s
例如,搭配 Claude:
{
"mcpServers": {
"mcp_k8s": {
"command": "npx",
"args": [
"@strowk/mcp-k8s"
]
}
}
}
从 GitHub releases 获取
前往 GitHub releases,下载适用于你平台的最新版本。
解压归档文件,其中包含名为 mcp-k8s-go 的二进制文件。将该二进制文件放到 PATH 中的某个位置,然后将以下配置添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"mcp_k8s": {
"command": "mcp-k8s-go",
"args": []
}
}
}
从源代码构建
构建此项目需要安装 Golang:
go get github.com/strowk/mcp-k8s-go
go install github.com/strowk/mcp-k8s-go
然后将以下配置添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"mcp_k8s_go": {
"command": "mcp-k8s-go",
"args": []
}
}
}
使用 Docker
自 0.3.1-beta.2 版本发布以来,此服务已构建并发布到 Docker Hub,并提供适用于 linux/amd64 和 linux/arm64 架构的多架构映像。
例如,可以使用 latest 标签:
docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest
Windows 用户可能需要至少在 Git Bash 中将 ~/.kube/config 替换为 //c/Users/<username>/.kube/config。
搭配 Claude:
{
"mcpServers": {
"mcp_k8s_go": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"~/.kube/config:/home/nonroot/.kube/config",
"--rm",
"mcpk8s/server:latest"
]
}
}
}
环境变量和命令行选项
MCP 服务使用以下环境变量:
KUBECONFIG:Kubernetes 配置文件的路径(可选,默认为 ~/.kube/config)
支持以下命令行选项:
--allowed-contexts=<ctx1,ctx2,...>:用户可以访问的 Kubernetes context 名称列表,以逗号分隔。未指定时,允许使用所有 context。--readonly:禁用所有可能向集群写入更改的工具--help:显示帮助信息--version:显示版本信息--mask-secrets:遮盖输出中的密钥(默认值:true)。使用--mask-secrets=false可禁用遮盖
例如,配置 Claude Desktop 时,可以将以下配置添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"mcp_k8s": {
"command": "mcp-k8s",
"args": [
"--allowed-contexts=dev,prod",
"--readonly"
]
}
}
}
这样只允许使用 dev 和 prod context,并会禁用所有可能向集群写入更改的工具。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。