项目简介

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 下载

  1. 访问 GitHub releases 页面,下载适用于您操作系统的最新版本压缩包。
  2. 解压下载的压缩包。
  3. 将解压后的 '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: '[]' (启动参数,此服务器默认不需要额外的启动参数)

基本使用方法

  1. 确保已安装 MCP 客户端(例如 Claude Desktop)并已正确配置 'claude_desktop_config.json' 文件。
  2. 启动 MCP 客户端。客户端会自动连接到配置的 MCP 服务器。
  3. 在 MCP 客户端中,您应该能够看到 Kubernetes 上下文作为资源被列出。
  4. 您可以指示 LLM 客户端使用提供的工具来查询 Kubernetes 集群信息,例如询问 "列出所有 Kubernetes 命名空间" 或 "获取 pod nginx-pod 的日志"。

环境变量:

  • 'KUBECONFIG' (可选): Kubernetes 配置文件路径。默认为 '~/.kube/config'。如果您的 kubeconfig 文件不在默认路径,请设置此环境变量。

信息

分类

开发者工具