项目简介
MCP K8S Go 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在弥合大型语言模型 (LLM) 与 Kubernetes 集群之间的鸿沟。它允许 LLM 客户端通过标准化的 MCP 协议,安全地访问 Kubernetes 集群的上下文信息和功能,从而实现更智能的 Kubernetes 管理和运维自动化。
主要功能点
- Kubernetes 上下文资源化: 将 Kubernetes 集群的上下文 (Context) 暴露为 MCP 资源,方便 LLM 客户端选择和管理目标集群。
- 丰富的 Kubernetes 工具集: 提供一系列预定义的工具 (Tools),允许 LLM 客户端执行常见的 Kubernetes 操作,例如:
- 'list-k8s-contexts': 列出可用的 Kubernetes 上下文。
- 'list-k8s-namespaces': 列出指定上下文中的命名空间。
- 'list-k8s-nodes': 列出指定上下文中的节点。
- 'list-k8s-resources': 列出指定上下文和命名空间中的 Kubernetes 资源 (支持 Deployment, Pod, Service 等常见资源)。
- 'get-k8s-resource': 获取指定上下文、命名空间和名称的 Kubernetes 资源详情。
- 'list-k8s-events': 列出指定上下文和命名空间中的事件。
- 'get-k8s-pod-logs': 获取指定上下文、命名空间和 Pod 的日志。
- 便捷的 Prompt 模板: 内置 Prompt 模板,简化 LLM 客户端与 Kubernetes 的交互,例如:
- 'list-k8s-namespaces': Prompt 形式的列出命名空间功能。
- 'list-k8s-pods': Prompt 形式的列出 Pod 功能。
安装步骤
MCP K8S Go 提供了多种安装方式,您可以根据自己的需求选择合适的方法:
推荐方式 (使用 Smithery 或 mcp-get 自动安装):
-
使用 Smithery: (需要 Node.js 环境)
npx -y @smithery/cli install @strowk/mcp-k8s --client claude -
使用 mcp-get: (需要 Node.js 环境)
npx @michaellatman/mcp-get@latest install @strowk/mcp-k8s这两种方式会自动下载并安装 MCP K8S Go,并可能自动配置您的 MCP 客户端 (如 Claude)。
手动安装 (预编译二进制文件):
-
从 npm 安装: (需要 Node.js 和 npm 环境)
npm install -g @strowk/mcp-k8s安装后,'mcp-k8s' 命令将添加到您的 PATH 环境变量中。
-
从 GitHub Releases 下载: 访问 GitHub releases 页面,下载适合您操作系统的最新版本压缩包。解压后,将 'mcp-k8s-go' (或 'mcp-k8s-go.exe' on Windows) 二进制文件放置到您的 PATH 环境变量包含的目录中。
从源码构建 (需要 Golang 环境):
- 从源码构建:
构建完成后,'mcp-k8s-go' 命令将添加到您的 '$GOPATH/bin' 目录中,请确保 '$GOPATH/bin' 在您的 PATH 环境变量中。go get github.com/strowk/mcp-k8s-go go install github.com/strowk/mcp-k8s-go
服务器配置
MCP 服务器需要配置到 MCP 客户端中才能使用。以 Claude Desktop 为例,您需要在 'claude_desktop_config.json' 文件中添加如下配置:
{ "mcpServers": { "mcp_k8s": { "command": "mcp-k8s", // 如果使用 npm 安装,或者使用 GitHub Release 或源码构建并将二进制文件命名为 mcp-k8s 并放置在 PATH 中,则使用此命令 "args": [] // 启动参数,本服务器默认不需要参数 } } }
注意:
- 如果您是从源码构建或者从 GitHub Releases 下载的二进制文件,且二进制文件名为 'mcp-k8s-go' (或 'mcp-k8s-go.exe'),并且您希望在配置中使用此名称,请将 'command' 字段设置为 '"mcp-k8s-go"' (或 '"mcp-k8s-go.exe"' on Windows)。
- 确保 'command' 配置的命令可以在您的 MCP 客户端环境中执行 (例如,已添加到 PATH 环境变量)。
基本使用方法
- 启动 MCP 服务器: 根据您的安装方式,在终端中运行 'mcp-k8s' 或 'mcp-k8s-go' 命令来启动服务器。通常情况下,直接运行命令即可,无需额外参数。
- 配置 MCP 客户端: 将上述服务器配置添加到您的 MCP 客户端配置文件中 (例如 Claude Desktop 的 'claude_desktop_config.json')。
- 在 MCP 客户端中使用: 启动您的 MCP 客户端 (例如 Claude Desktop)。您应该能够在客户端中看到 "MCP K8S Go" 服务器已连接。
- 连接 Kubernetes 集群: 在客户端中,您可以将 Kubernetes 上下文 (Context) 作为资源连接到会话。
- 与 LLM 交互: 您可以指示 LLM 使用提供的工具和 Prompt 来查询和操作 Kubernetes 集群。例如,您可以提问:
- "列出所有 Kubernetes 命名空间" (对应 'list-k8s-namespaces' Prompt 或 Tool)
- "获取 pod 'nginx-pod' 在命名空间 'default' 中的日志" (对应 'get-k8s-pod-logs' Tool)
环境变量
- 'KUBECONFIG': (可选) Kubernetes 配置文件路径。如果未设置,服务器将默认使用 '~/.kube/config'。您可以通过设置此环境变量来指定其他的 kubeconfig 文件路径。
信息
分类
开发者工具