项目简介
strowk_mcp-k8s-go 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供与 Kubernetes 集群交互的能力。通过此 MCP 服务器,LLM 客户端可以获取 Kubernetes 集群的上下文信息,并使用预定义的工具来查询和操作 Kubernetes 资源。
主要功能点
- 资源 (Resources): 将 Kubernetes 上下文 (Contexts) 作为资源进行管理,允许 LLM 客户端选择和访问特定的 Kubernetes 集群。
- 工具 (Tools): 提供了一系列工具,使 LLM 能够查询 Kubernetes 集群的各种信息,包括:
- 列出 Kubernetes 上下文 (list-k8s-contexts)
- 列出指定上下文中的命名空间 (list-k8s-namespaces)
- 列出指定上下文中的节点 (list-k8s-nodes)
- 列出指定上下文和命名空间中的 Pod (list-k8s-pods)
- 列出指定上下文和命名空间中的事件 (list-k8s-events)
- 列出指定上下文和命名空间中的服务 (list-k8s-services)
- 获取指定上下文、命名空间和 Pod 的日志 (get-k8s-pod-logs)
- 列出指定上下文和命名空间中的 Deployment (list-k8s-deployments)
- 获取指定上下文和命名空间中特定 Deployment 的详细信息 (get-k8s-deployment)
- Prompt 模板 (Prompts): 预定义了 Prompt 模板,方便用户通过自然语言与 Kubernetes 集群进行交互,例如:
- 列出指定上下文中的命名空间 (list-k8s-namespaces)
- 列出当前上下文和指定命名空间中的 Pod (list-k8s-pods)
安装步骤
使用 npm (推荐)
如果您的环境已安装 Node.js 和 npm,可以使用以下命令全局安装预编译的二进制文件:
npm install -g @strowk/mcp-k8s
安装完成后,可以通过运行 'mcp-k8s --version' 验证是否安装成功。
从 GitHub Releases 下载
- 访问 GitHub releases 页面,下载适用于您操作系统的最新版本压缩包。
- 解压下载的压缩包。
- 将解压后的 'mcp-k8s-go' (或 'mcp-k8s-go.exe' 在 Windows 系统上) 二进制文件移动到您的 PATH 环境变量包含的目录中,以便在任何位置都能直接运行。
其他安装方式
您还可以选择使用 Smithery, mcp-get 或从源码构建,详细步骤请参考仓库 README 文档。
服务器配置
对于 MCP 客户端(例如 Claude Desktop),您需要配置 MCP 服务器的启动信息。以下是使用 npm 安装时 'claude_desktop_config.json' 文件的配置示例:
{ "mcpServers": { "mcp_k8s": { "command": "mcp-k8s", "args": [] } } }
- server name: 'mcp_k8s' (服务器名称,可以自定义)
- command: 'mcp-k8s' (启动服务器的命令,如果您使用 npm 安装,命令为 'mcp-k8s';如果从 GitHub Releases 下载,命令为 'mcp-k8s-go', 请根据实际安装方式进行调整)
- args: '[]' (启动参数,此服务器默认不需要额外的启动参数)
基本使用方法
- 确保已安装 MCP 客户端(例如 Claude Desktop)并已正确配置 'claude_desktop_config.json' 文件。
- 启动 MCP 客户端。客户端会自动连接到配置的 MCP 服务器。
- 在 MCP 客户端中,您应该能够看到 Kubernetes 上下文作为资源被列出。
- 您可以指示 LLM 客户端使用提供的工具来查询 Kubernetes 集群信息,例如询问 "列出所有 Kubernetes 命名空间" 或 "获取 pod nginx-pod 的日志"。
环境变量:
- 'KUBECONFIG' (可选): Kubernetes 配置文件路径。默认为 '~/.kube/config'。如果您的 kubeconfig 文件不在默认路径,请设置此环境变量。
信息
分类
开发者工具