Kubernetes资源管理工具

一个基于Golang的MCP服务器,用于连接和管理Kubernetes资源,包括列出、获取、创建和修改Kubernetes资源,适用于开发者和运维人员。

  • by strowk
  • Go
  • 本地部署
  • 381 星标
  • 更新于
在 GitHub 查看 strowk/mcp-k8s-go

使用说明

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 将使用上下文,并禁用任何可以向集群写入更改的工具。