项目简介

mcp-server-kubernetes 是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当 LLM 客户端和 Kubernetes 集群之间的桥梁。通过此服务器,LLM 可以安全地与 Kubernetes 集群交互,执行诸如查询资源信息、创建和删除 Pod 等操作。

主要功能点

  • 连接 Kubernetes 集群: 自动连接到当前 'kubectl' 上下文配置的 Kubernetes 集群。
  • 资源查询: 支持列出 Kubernetes 集群中的 Pod、Service、Deployment 和 Namespace 等资源信息。
  • Pod 管理: 支持创建和删除 Kubernetes Pod。
  • 工具集成: 通过 MCP 协议向 LLM 客户端暴露 Kubernetes 管理工具,允许 LLM 通过工具调用执行集群操作。

安装步骤

  1. 克隆仓库

    git clone https://github.com/MCP-Mirror/Flux159_mcp-server-kubernetes.git
    cd Flux159_mcp-server-kubernetes
  2. 安装依赖

    确保你已安装 Bun,然后运行:

    bun install

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 mcp-server-kubernetes 服务器。例如,在 Claude Desktop 中配置:

{
  "mcpServers": {
    "kubernetes": {  // 服务器名称,可以自定义
      "command": "npx", // 启动命令,这里使用 npx 来执行本地安装的 npm 包
      "args": ["mcp-server-kubernetes"] // 启动参数,这里指定执行 mcp-server-kubernetes
    }
  }
}

配置说明:

  • 'server name': 'kubernetes' (用户可以自定义服务器名称)
  • 'command': 'npx' (Node Package Execute,用于执行本地 npm 包)
  • 'args': '["mcp-server-kubernetes"]' (执行 'mcp-server-kubernetes' 包,即启动 MCP 服务器)

前提条件:

  • 确保已安装 'kubectl' 并已添加到系统 PATH 环境变量中。
  • 确保已配置有效的 'kubeconfig' 文件,并且 'kubectl' 可以连接到 Kubernetes 集群 (例如 minikube, Rancher Desktop, GKE 等)。
  • 可以通过在终端执行 'kubectl get pods' 命令来验证 'kubectl' 是否能正常连接到集群。

基本使用方法

  1. 启动 MCP 服务器: 在安装步骤完成后,当 MCP 客户端(如 Claude Desktop)尝试连接配置的服务器时,服务器将自动启动。

  2. 通过 LLM 客户端与 Kubernetes 交互: 在 LLM 客户端中,你可以指示 LLM 使用 Kubernetes 服务器提供的工具来管理集群。例如,你可以询问:

    • "列出我 Kubernetes 集群中的所有 Pod"
    • "在 default namespace 中创建一个 Nginx Pod"
    • "删除名为 test-pod 的 Pod"
    • "列出所有 Kubernetes Namespace"

    LLM 客户端会根据你的指令调用相应的 MCP 工具,并返回 Kubernetes 集群的信息或执行操作结果。

注意: 该服务器目前仅支持通过当前 'kubectl' 上下文连接的 Kubernetes 集群,并且功能还在持续完善中。

信息

分类

开发者工具