使用说明
Golang-based MCP server connecting to Kubernetes
MCP K8S Go
Features ⚙ Browse With Inspector ⚙ Use With Claude ⚙ Contributing ↗ ⚙ About MCP ↗
特性
主控程序💬 提示🗂️ 资源🤖 工具
- 🗂️🤖 列出Kubernetes上下文
- 💬🤖 Kubernetes 命名空间列表
- 🤖 列出、获取、创建和修改任何Kubernetes资源
- 包括Pod、服务、部署等资源的自定义映射
- 🤖 列出Kubernetes节点
- 💬 列出Kubernetes Pod
- 🤖 获取Kubernetes事件
- 🤖 获取Kubernetes pod日志
- 🤖 在Kubernetes pod中运行命令
使用检查器浏览
要使用Inspector的最新发布版本,可以运行以下命令:
npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s
与Claude一起使用
Demo Usage
以下与Claude Desktop的聊天演示了当选择特定上下文作为资源,然后要求检查pod日志中kube-system命名空间中的错误时的样子:
要将此MCP服务器与Claude Desktop(或任何其他客户端)一起使用,您可能需要选择使用哪种安装方式。
您有多个选择:
| 史密瑟里 | mcp获取 | 预建NPM | 内置于Github | 来源 | 使用Docker | |
|---|---|---|---|---|---|---|
| Claude设置 | 自动 | 自动 | 手动 | 手动 | 手册 | 手动 |
| 先决条件 | Node.js | Node.js | 无 | Golang | Docker |
使用Smithery
通过以下方式自动安装MCP K8S Go for Claude Desktop 史密瑟里:
npx -y @smithery/cli install @strowk/mcp-k8s --client claude
使用mcp get
通过以下方式自动安装MCP K8S Go for Claude Desktop mcp获取:
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
以克劳德为例:
{
"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架构的多拱形映像。
您可以使用最新标签f.e,如下所示:
docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest
Windows用户可能需要更换 ~/.kube/config 随着 //c/Users/<username>/.kube/config 至少在Git Bash中是这样。
对于克劳德:
{
"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:显示版本信息--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 将使用上下文,并禁用任何可以向集群写入更改的工具。
