使用说明
项目简介
kube-mcp-server 是一个基于 Model Context Protocol (MCP) 实现的服务器端应用程序,旨在将大型语言模型(LLM)客户端与 Kubernetes 集群连接起来。它通过 MCP 协议向 LLM 提供 Kubernetes 集群的上下文信息(作为 资源)和执行集群操作的能力(作为 工具)。这使得 LLM 能够理解和管理 Kubernetes 环境。
主要功能点
- 提供 Kubernetes 集群状态资源: LLM 可以通过标准 MCP 请求读取集群中的重要信息,例如 Pod、Deployment、Service、StatefulSet 的列表和摘要信息。这些信息被格式化为 JSON 格式的 MCP 资源。
- 执行 Kubernetes 操作工具: LLM 可以调用预定义的工具来执行常见的 Kubernetes 任务。当前支持的功能包括:
- 统计指定命名空间下的 Pod 数量。
- 执行 'kubectl get' 命令获取各类资源信息,支持过滤、输出格式控制等高级选项。
- 执行 'kubectl describe' 命令获取资源的详细描述信息。
- 执行 'kubectl logs' 命令获取 Pod 的日志。
- 支持多种传输协议: 支持通过标准输入/输出 (Stdio) 或 Server-Sent Events (SSE) 协议与 MCP 客户端通信。
- 灵活的配置: 支持通过命令行参数或配置文件 ('.kube-mcp-server.yaml') 配置日志级别、Kubernetes 连接(kubeconfig)、运行模式和 SSE 端口等。
安装步骤
- 安装 Go 语言环境: 确保您的系统安装了 Go 1.18 或更高版本。请参考 Go 官方安装指南。
- 安装 kubectl 工具: 确保您的系统安装了 'kubectl' 并已配置好访问 Kubernetes 集群的权限(通过设置 KUBECONFIG 环境变量或在默认位置放置配置文件)。某些工具功能依赖于 'kubectl' 可执行文件。
- 获取源代码:
git clone https://github.com/idebeijer/kube-mcp-server.git cd kube-mcp-server - 构建项目:
这将生成一个名为 'kube-mcp-server' 的可执行文件。go build -o kube-mcp-server ./main.go
服务器配置(供 MCP 客户端参考)
kube-mcp-server 是一个独立的后端进程。MCP 客户端(通常是 LLM 应用程序的一部分)需要启动这个进程并与其通过 StdIO 或 SSE 建立连接。以下是 MCP 客户端配置此服务器时需要的信息:
- 服务器名称 (server name): 'kube-mcp-server'
- 命令 (command): 指向您构建的 'kube-mcp-server' 可执行文件的完整路径,例如 '/path/to/your/kube-mcp-server'。
- 参数 (args): 启动 'kube-mcp-server' 进程时需要传递的命令行参数列表。常用的参数包括:
- '--mode <模式>': 指定 MCP 服务器的运行模式,可以是 'stdio' (默认) 或 'sse'。
- '--sse-port <端口>': 如果模式为 'sse',指定服务器监听的端口,例如 '8080' (默认)。
- '--kubeconfig <文件路径>': 指定 Kubernetes 配置文件 ('kubeconfig') 的路径。如果未指定,将尝试使用默认位置或集群内配置。
- '--disable-kubectl': 如果设置此标志 ('--disable-kubectl=true'),将禁用依赖于外部 'kubectl' 命令的工具。
- '--log-level <级别>': 设置日志输出级别 (如 'info', 'debug', 'error')。
例如,一个 MCP 客户端可能需要如下配置来启动并在 SSE 模式下连接到该服务器:
{ "name": "Kubernetes", "serverName": "kube-mcp-server", "command": "/path/to/your/kube-mcp-server", "args": [ "--mode", "sse", "--sse-port", "8080", "--kubeconfig", "/path/to/your/.kube/config" ] }
注意:上面的 JSON 示例仅用于说明客户端配置所需的参数和格式,请勿直接复制作为 Go 代码执行。您需要根据您的实际安装路径和需求修改命令和参数。
基本使用方法
- 确保 Kubernetes 集群可访问: 您的环境需要能够访问目标 Kubernetes 集群。
- 启动 kube-mcp-server: 根据您的 MCP 客户端的配置,由客户端程序启动 'kube-mcp-server' 可执行文件,并传递必要的参数。
- 通过 LLM 客户端交互: 使用支持 MCP 协议的 LLM 客户端。LLM 可以识别并使用服务器声明的资源和工具。例如,LLM 可能会通过读取 'k8s://pods' 资源获取 Pod 列表,或者调用 'kubectl_logs' 工具来查看特定 Pod 的日志。
信息
分类
AI与计算