基于Golang的MCP服务器,连接到Kubernetes
MCP K8S Go
功能 ⚙ 使用Inspector浏览 ⚙ 与Claude一起使用 ⚙ 贡献 ↗ ⚙ 关于MCP ↗
功能
MCP 💬 提示 🗂️ 资源 🤖 工具
- 🗂️🤖 列出Kubernetes上下文
- 💬🤖 列出Kubernetes命名空间
- 🤖 列出和获取任何Kubernetes资源
- 包括对pods、services、deployments等资源的自定义映射,但任何资源都可以被列出和获取
- 🤖 列出Kubernetes节点
- 💬 列出Kubernetes pods
- 🤖 获取Kubernetes事件
- 🤖 获取Kubernetes pod日志
- 🤖 在Kubernetes pod中运行命令
使用Inspector浏览
要使用最新发布的版本与Inspector一起使用,可以运行以下命令:
npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s
与Claude一起使用
演示用法
以下与Claude Desktop的聊天演示了如何选择特定上下文作为资源,然后询问在kube-system命名空间中检查pod日志以查找错误时的效果:

要使用此MCP服务器与Claude Desktop(或任何其他客户端)一起使用,您可能需要选择使用哪种安装方式。
您有多个选项:
使用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发布
前往 GitHub发布 并下载适用于您平台的最新版本。
解压缩存档,其中将包含名为 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架构的多架构镜像。
您可以使用最新标签,例如:
docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest
Windows用户可能需要将 ~/.kube/config 替换为 //c/Users/<username>/.kube/config 至少在Git Bash中。
对于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上下文列表,以逗号分隔。如果未指定,则允许所有上下文。--readonly: 禁用任何可以写入集群更改的工具--help: 显示帮助信息--version: 显示版本信息
例如,如果您正在配置Claude Desktop,可以将以下配置添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"mcp_k8s": {
"command": "mcp-k8s",
"args": [
"--allowed-contexts=dev,prod",
"--readonly"
]
}
}
}
, 这将允许仅使用 dev 和 prod 上下文,并禁用任何可以写入集群更改的工具。