项目简介

MCP Kubernetes Server 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在为大型语言模型 (LLM) 提供与 Kubernetes 集群交互的能力。它通过标准化的 MCP 协议,将 Kubernetes 的操作能力封装成一系列工具 (Tools),使得 LLM 可以通过调用这些工具,以自然语言的方式管理和监控 Kubernetes 集群。

主要功能点

  • Kubernetes 资源管理: 提供多种工具,支持查询和管理 Kubernetes 核心资源,例如:
    • 查询 Pod、Service、Deployment、Namespace、Node 等资源信息
    • 获取 Pod 的日志和事件
    • 创建 Deployment
    • 更新 Deployment 的副本数量和镜像
  • 集群上下文管理: 支持获取和切换 Kubernetes 集群上下文,方便管理多个集群。
  • 工具化封装: 将常用的 'kubectl' 命令封装成易于 LLM 调用的工具,降低了 LLM 与 Kubernetes 交互的复杂性。
  • 自然语言交互: 配合 MCP 客户端和 LLM,用户可以使用自然语言指令操作 Kubernetes 集群,例如“创建3个副本的 Nginx Deployment”。

安装步骤

  1. 前提条件:

    • 确保已安装 Python 3.x 环境。
    • 确保已安装并配置 'kubectl' 命令行工具,可以访问您的 Kubernetes 集群。
    • 确保已安装 MCP 框架 (根据仓库 'kubernetes.py' 文件的 'from mcp.server.fastmcp import FastMCP' 导入语句,需要安装 'mcp' 库,具体安装方式请参考 MCP 官方文档)。
  2. 下载仓库代码: 将 'mcp-k8s-server' 仓库的代码克隆到本地。

  3. 配置 Kubernetes 访问:

    • 检查 'kubernetes.py' 文件中的 'KUBECONFIG' 环境变量设置:
      env["KUBECONFIG"] = "/Users/akamble/.kube/eks-devops" # 请替换为您的 kubeconfig 文件路径
      请根据您的 Kubernetes 配置文件路径修改 'KUBECONFIG' 环境变量,确保服务器可以访问您的 Kubernetes 集群。
  4. 运行 MCP 服务器:

    • 打开终端,进入仓库代码目录 'mcp-k8s-server'。
    • 运行以下命令启动 MCP 服务器:
      python kubernetes.py
      ./kubernetes.py
      (如果 'kubernetes.py' 文件有执行权限)

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 信息才能连接到 MCP Kubernetes Server。以下配置示例适用于 Claude Desktop 等 MCP 客户端:

{
    "mcpServers": {
        "Kubernetes": {
            "command": "python",  // 或 "python3" 或 "uv" (如果使用 uv 虚拟环境)
            "args": [
                "kubernetes.py" // kubernetes.py 脚本的路径,如果客户端工作目录与脚本在同一目录,则只需文件名
            ],
            "directory": "/path/to/mcp-k8s-server" // (可选) MCP Kubernetes Server 代码所在的目录,如果客户端工作目录就是代码目录,可以省略
        }
    }
}

配置参数说明:

  • 'server name': "Kubernetes" (服务器名称,客户端用于在界面上标识和选择服务器)
  • 'command': "python" 或 "python3" (用于启动 'kubernetes.py' 脚本的命令,确保是您的 Python 3 解释器路径,如果使用 'uv' 虚拟环境,则可以使用 "uv")
  • 'args': '["kubernetes.py"]' (传递给 'command' 的参数,这里是 'kubernetes.py' 脚本文件名)
  • 'directory': (可选) MCP Kubernetes Server 代码所在的目录。如果客户端启动时的工作目录与 'kubernetes.py' 脚本所在目录不同,则需要指定此参数,确保客户端能找到脚本。如果客户端工作目录就是代码目录,可以省略此参数。

注意: 请根据您的实际 Python 环境和脚本路径修改 'command' 和 'args' 参数。 如果您使用虚拟环境运行,请确保 'command' 指向虚拟环境中的 Python 解释器。

基本使用方法

  1. 启动 MCP 客户端: 例如 Claude Desktop 或其他 MCP 客户端。
  2. 配置 MCP 服务器: 在 MCP 客户端中配置上述提供的 JSON 信息,添加 "Kubernetes" MCP 服务器。
  3. 连接服务器: 在 MCP 客户端中选择并连接到 "Kubernetes" 服务器。
  4. 使用自然语言指令: 在 MCP 客户端中,可以使用自然语言指令,例如:
    • 'Get me all pods in the production namespace'
    • 'Scale the nginx-app deployment to 5 replicas'
    • 'What is the current Kubernetes context?' 客户端会将自然语言指令转换为对 MCP Kubernetes Server 工具的调用,并返回 Kubernetes 集群的响应结果。

信息

分类

开发者工具