M

MCP-K8s-Go连接器

该项目旨在作为一个连接到Kubernetes的MCP服务器,同时也作为一个库,用于为Kubernetes中的任何自定义资源构建更多服务器。

cloud-platformsvirtualization

429 查看 · 2026-07-07 更新

简介

该项目旨在作为一个连接到Kubernetes的MCP服务器,同时也作为一个库,用于为Kubernetes中的任何自定义资源构建更多服务器。

简介

该项目旨在作为一个连接到Kubernetes的MCP服务器,同时也作为一个库,用于为Kubernetes中的任何自定义资源构建更多服务器。

基于 Golang 的 MCP 服务器连接到 Kubernetes


MCP K8S Go

功能使用 Inspector 浏览与 Claude 一起使用贡献 ↗

最新版本徽章 npm 下载徽章 许可证徽章

功能

MCP 💬 提示 🗂️ 资源 🤖 工具

  • 🗂️🤖 列出 Kubernetes 上下文
  • 💬🤖 列出 Kubernetes 命名空间
  • 🤖 列出并获取任何 Kubernetes 资源
    • 包括对 pod、服务、部署等资源的自定义映射,但任何资源都可以列出和检索
  • 🤖 列出 Kubernetes 节点
  • 💬 列出 Kubernetes pod
  • 🤖 获取 Kubernetes 事件
  • 🤖 获取 Kubernetes pod 日志
  • 🤖 在 Kubernetes pod 中运行命令

使用 Inspector 浏览

要使用最新发布的版本与 Inspector,请运行以下命令:

npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s

, 或者如果你想使用从源码构建的版本,则在本项目的根目录下执行:

tools/inspector/run.sh

与 Claude 一起使用

演示用法

以下与 Claude Desktop 的聊天展示了选择特定上下文作为资源后,然后要求检查 kube-system 命名空间中的 pod 日志时的样子:

Claude Desktop

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

你有多种选项:

Smitherymcp-getPre-built NPMPre-built in GithubFrom sourcesUsing Docker
Claude 设置自动自动手动手动手动手动
先决条件Node.jsNode.jsNode.jsGolangDocker

使用 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 用户可能需要在 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 上下文列表,以逗号分隔。如果不指定,则允许所有上下文。
  • --help: 显示帮助信息
  • --version: 显示版本信息

服务配置

[{'mcpServers': {'mcp_k8s': {'args': [], 'command': 'mcp-k8s'}}}, {'mcpServers': {'mcp_k8s': {'args': ['@strowk/mcp-k8s'], 'command': 'npx'}}}, {'mcpServers': {'mcp_k8s': {'args': [], 'command': 'mcp-k8s-go'}}}, {'mcpServers': {'mcp_k8s_go': {'args': [], 'command': 'mcp-k8s-go'}}}, {'mcpServers': {'mcp_k8s_go': {'args': ['run', '-i', '-v', '~/.kube/config:/home/nonroot/.kube/config', '--rm', 'mcpk8s/server:latest'], 'command': 'docker'}}}, {'mcpServers': {'mcp_k8s': {'args': ['--allowed-contexts=dev,prod', '--readonly'], 'command': 'mcp-k8s'}}}]

来源