Kubernetes MCP 服务器
使用说明
项目简介
'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 传输协议,简化了部署和集成过程。
安装步骤
- 环境准备: 确保您的运行环境中已安装 Python 和 'kubectl' 命令行工具,并已配置好 'kubectl' 以连接到您的 Kubernetes 集群。
- 安装 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',则不需要此参数。
基本使用方法
- 启动 MCP 服务器: 根据上述配置,使用 MCP 客户端启动 'Kubernetes MCP 服务器'。
- 客户端调用: 在 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 响应返回给客户端。