mcpField
M
Mcp K8s Go

Mcp K8s Go

本地服务
npmjs.com云与基础设施38145 周前更新

关于 Mcp K8s Go

MCP K8s Go 是一个基于 Golang 编写的 MCP 服务,用于连接 Kubernetes 集群。它可以列出上下文、命名空间、节点和 Pod,并对任意资源进行读写操作。支持通过 --readonly 和 --allowed-contexts 限制可访问的集群范围。

主要功能

  1. 01列出 Kubernetes 上下文、命名空间、节点与 Pod
  2. 02对任意 Kubernetes 资源进行查询、创建与修改
  3. 03获取事件与 Pod 日志
  4. 04在 Pod 中运行命令
  5. 05--readonly 模式禁用写入类工具
  6. 06--allowed-contexts 限制可用上下文

适用场景

  1. 01排查 kube-system 等命名空间中的 Pod 日志错误
  2. 02在 AI 助手中查看集群节点与事件状态
  3. 03在受限的只读模式下检查生产集群

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Kubernetes 相关的资源(resource)、提示词(prompt)和工具(tool)。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"k8s-go": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
启动命令npx -y @modelcontextprotocol/inspector

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

基于 Golang、连接 Kubernetes 的 MCP 服务

README 配图
MCP K8S Go

功能 ⚙ 使用 Inspector 浏览 ⚙ 与 Claude 搭配使用 ⚙ 参与贡献 ↗ ⚙ 关于 MCP ↗

README 配图 README 配图 README 配图
最新版本徽章 Go 参考 许可证徽章

功能

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 日志是否存在错误:

Claude Desktop

如需将此 MCP 服务与 Claude Desktop(或任何其他客户端)搭配使用,你可能需要选择安装方式。

你有多个选项:

Smitherymcp-get预构建 NPM 包GitHub 预构建版本从源代码构建使用 Docker
Claude 设置自动自动手动手动手动手动
前置条件Node.jsNode.jsNode.js无GolangDocker
使用 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,并会禁用所有可能向集群写入更改的工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。