项目简介
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”。
安装步骤
-
前提条件:
- 确保已安装 Python 3.x 环境。
- 确保已安装并配置 'kubectl' 命令行工具,可以访问您的 Kubernetes 集群。
- 确保已安装 MCP 框架 (根据仓库 'kubernetes.py' 文件的 'from mcp.server.fastmcp import FastMCP' 导入语句,需要安装 'mcp' 库,具体安装方式请参考 MCP 官方文档)。
-
下载仓库代码: 将 'mcp-k8s-server' 仓库的代码克隆到本地。
-
配置 Kubernetes 访问:
- 检查 'kubernetes.py' 文件中的 'KUBECONFIG' 环境变量设置:
请根据您的 Kubernetes 配置文件路径修改 'KUBECONFIG' 环境变量,确保服务器可以访问您的 Kubernetes 集群。env["KUBECONFIG"] = "/Users/akamble/.kube/eks-devops" # 请替换为您的 kubeconfig 文件路径
- 检查 'kubernetes.py' 文件中的 'KUBECONFIG' 环境变量设置:
-
运行 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 解释器。
基本使用方法
- 启动 MCP 客户端: 例如 Claude Desktop 或其他 MCP 客户端。
- 配置 MCP 服务器: 在 MCP 客户端中配置上述提供的 JSON 信息,添加 "Kubernetes" MCP 服务器。
- 连接服务器: 在 MCP 客户端中选择并连接到 "Kubernetes" 服务器。
- 使用自然语言指令: 在 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 集群的响应结果。
信息
分类
开发者工具