README
🚀 基于 Golang 的 MCP 服务器连接到 Kubernetes
本项目实现了基于 Golang 的 MCP 服务器与 Kubernetes 的连接,支持列出和切换多个 Kubernetes 集群配置,还可通过指定允许的上下文增强安全性,同时提供了多种安装和使用方式,方便灵活配置。
✨ 主要特性
- 支持多集群配置:可以列出和切换多个 Kubernetes 集群配置。
- 上下文访问控制:支持指定允许访问的 Kubernetes 上下文,增强安全性。
- 环境变量灵活配置:通过设置
KUBECONFIG环境变量,可以灵活指定 Kubernetes 配置文件路径。 - 命令行选项限制:提供
--allowed-contexts选项,限制用户可访问的 Kubernetes 上下文范围。
📦 安装指南
使用预构建二进制文件
通过 npm 安装
npm install -g @strowk/mcp-k8s
然后检查版本是否正确输出:
mcp-k8s --version
在 claude_desktop_config.json 中添加以下配置:
{
"mcpServers": {
"mcp_k8s": {
"command": "mcp-k8s",
"args": []
}
}
}
通过 GitHub 发布版本
从 GitHub 发布页面 下载对应平台的最新版本,解压后将可执行文件添加到 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 系统中,可能需要将路径调整为类似 //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"
]
}
}
}
📚 详细文档
环境变量
| 属性 | 详情 |
|------|------|
| KUBECONFIG | 指定 Kubernetes 配置文件路径(可选,默认为 ~/.kube/config) |
命令行选项
| 属性 | 详情 |
|------|------|
| --allowed-contexts=<ctx1,ctx2,...> | 逗号分隔的允许访问的 Kubernetes 上下文列表。如果不指定,则所有上下文均可访问。 |
| --help | 显示帮助信息 |
| --version | 显示版本信息 |
扫码联系在线客服