使用说明

项目简介

'Kubernetes MCP 服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供管理 Kubernetes 集群的能力。它通过封装 'kubectl' 命令行工具,将 Kubernetes 集群操作以标准化的 MCP 工具形式暴露给 LLM 客户端,使得 LLM 能够安全、可控地与 Kubernetes 集群进行交互。

主要功能点

  • kubectl 命令执行: 允许 LLM 客户端通过调用 'kubectl' 工具执行各种 Kubernetes 命令,例如查看 Pod 状态、部署应用、管理资源等。
  • MCP 工具集成: 将 'kubectl' 功能注册为 MCP 工具,方便 LLM 客户端以统一的方式进行调用和管理。
  • 标准 JSON-RPC 接口: 遵循 MCP 协议,使用 JSON-RPC 与客户端通信,保证了良好的兼容性和可扩展性。
  • Stdio 传输协议: 支持 Stdio 传输协议,简化了部署和集成过程。

安装步骤

  1. 环境准备: 确保您的运行环境中已安装 Python 和 'kubectl' 命令行工具,并已配置好 'kubectl' 以连接到您的 Kubernetes 集群。
  2. 安装 MCP 服务器: 根据仓库 'README.md' 提供的配置,您通常需要使用 'uvx' 运行此 MCP 服务器。 请确保您的环境中已安装 'uvx' (如果需要,请参考 https://github.com/uvx-io/uvx 进行安装)。

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 'Kubernetes MCP 服务器':

{
  "mcpServers": {
    "kubernetes": {
      "command": "uvx",  // 启动服务器的命令,这里使用 uvx
      "args": [
        "mcp-kubernetes-server" // uvx 的参数,指定要运行的 mcp-kubernetes-server
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'kubernetes',服务器的名称,客户端用此名称来引用该服务器。
  • 'command': 'uvx',启动 MCP 服务器的命令。 如果您不使用 'uvx',并且希望直接运行 'main.py' 文件,则可以将 'command' 修改为 'python',并移除 'args' 字段或将其设置为空列表。 但是,请注意,仓库 'README.md' 推荐使用 'uvx' 启动。
  • 'args': '["mcp-kubernetes-server"]',传递给 'uvx' 命令的参数,这里指定运行 'mcp-kubernetes-server'。 如果您修改了 'command' 为 'python' 并直接运行 'main.py',则不需要此参数。

基本使用方法

  1. 启动 MCP 服务器: 根据上述配置,使用 MCP 客户端启动 'Kubernetes MCP 服务器'。
  2. 客户端调用: 在 LLM 应用中,通过 MCP 客户端调用名为 'kubectl' 的工具,并传递 Kubernetes 命令作为参数。例如,要获取 Pod 列表,可以调用 'kubectl' 工具并传入参数 '"get pods"'。 服务器会将 'kubectl get pods' 命令发送到 Kubernetes 集群执行,并将结果返回给客户端。

示例 (LLM 客户端请求 - 假设使用 JSON-RPC over Stdio):

{
  "jsonrpc": "2.0",
  "method": "tool/kubectl",
  "params": {
    "command": "get pods -n kube-system"
  },
  "id": "1"
}

服务器会执行 'kubectl get pods -n kube-system' 命令,并将执行结果通过 JSON-RPC 响应返回给客户端。

信息

分类

开发者工具