项目简介
Kubernetes MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为 LLM 客户端提供与 Kubernetes 集群交互的能力。它通过标准化的 MCP 协议,将 Kubernetes 的各种操作封装成易于 LLM 调用的工具,使得 LLM 应用可以安全、可扩展地与 Kubernetes 集群进行集成。
主要功能点
- MCP 服务器实现: 遵循 MCP 协议,提供标准的上下文服务接口。
- Kubernetes 集群交互: 能够连接和操作 Kubernetes 集群,支持集群资源的CRUD操作和信息查询。
- 多种传输协议: 支持标准 I/O (stdio) 和 Server-Sent Events (SSE) 两种通信方式,方便不同场景下的客户端连接。
- 资源管理工具: 提供丰富的 Kubernetes 资源管理工具,目前已实现 Core API Group (v1) 的大部分常用资源操作,Apps API Group (apps/v1) 的部分资源操作,并预留了 Batch 和 Networking API Group 的扩展能力。
- Core API Group (v1): 支持命名空间资源的列表、获取YAML、创建、更新和删除,以及集群作用域的命名空间列表。
- Apps API Group (apps/v1): 支持命名空间资源的列表 (Deployment, StatefulSet 等)。
- Batch API Group (batch/v1) 和 Networking API Group (networking.k8s.io/v1): 预留了接口,但功能尚未完全实现。
- 可配置性: 通过命令行参数灵活配置服务器的传输协议、端口、Kubeconfig 路径、日志级别和格式。
- 结构化日志: 使用 Zap 库提供结构化日志输出,便于监控和问题排查。
- 命令行界面: 使用 Cobra 框架构建,提供友好的命令行操作体验。
安装步骤
- 安装 Go 环境: 确保已安装 Go 1.24 或更高版本。
- 克隆仓库: 使用 Git 克隆 GitHub 仓库到本地:
git clone https://github.com/HSn0918/kubernetes-mcp.git cd kubernetes-mcp - 编译程序: 在仓库根目录下,使用 'go build' 命令编译程序:
或者,您可以使用 Docker 构建镜像 (具体步骤请参考仓库 README)。go build -o kubernetes-mcp ./cmd/kubernetes-mcp
服务器配置
MCP 客户端需要配置以下信息以连接到 Kubernetes MCP Server。配置信息为 JSON 格式,示例如下:
{ "serverName": "kubernetes-mcp", "command": "./kubernetes-mcp", "args": [ "server", "--transport", "stdio", // 通信方式,可选 stdio 或 sse,默认为 stdio "--kubeconfig", "~/.kube/config" // Kubernetes 配置文件路径,默认为 ~/.kube/config,也可以使用集群内部配置 // "--port", "8080", // 当 transport 为 sse 时,指定端口,默认为 8080 // "--log-level", "info", // 日志级别,可选 debug, info, warn, error,默认为 info // "--log-format", "console" // 日志格式,可选 console, json,默认为 console ] }
参数说明:
- 'serverName': 服务器名称,客户端用于识别服务器。
- 'command': 启动 Kubernetes MCP Server 的命令。如果使用 Docker 镜像,则为 'docker run kubernetes-mcp:latest' 或类似命令。
- 'args': 传递给 'command' 的参数列表。
- 'server': 指定运行 server 子命令,启动 MCP 服务器。
- '--transport': 指定传输协议,'stdio' 为标准 I/O,'sse' 为 Server-Sent Events。默认为 'stdio'。
- '--port': 当 'transport' 为 'sse' 时,指定服务器监听的端口。默认为 '8080'。
- '--kubeconfig': Kubernetes 配置文件 ('kubeconfig') 的路径。如果留空,则尝试使用默认路径 ('~/.kube/config') 或集群内部配置。
- '--log-level': 设置日志级别,控制日志输出的详细程度。
- '--log-format': 设置日志输出格式,'console' 为控制台格式,'json' 为 JSON 格式。
注意: 请根据您的实际环境配置 '--kubeconfig' 参数,确保服务器能够正确连接到 Kubernetes 集群。
基本使用方法
-
启动服务器: 在编译后的仓库根目录下,运行以下命令启动 Kubernetes MCP Server (使用 stdio 传输协议):
./kubernetes-mcp server或者使用 SSE 传输协议,并指定端口:
./kubernetes-mcp server --transport sse --port 8080如果使用 Docker 镜像,请参考仓库 README 中的 Docker 运行命令。
-
配置 MCP 客户端: 在您的 MCP 客户端中,配置上面提供的服务器连接信息,确保客户端能够通过指定的传输协议和服务器建立连接。
-
调用工具: 客户端连接成功后,即可调用 Kubernetes MCP Server 提供的各种工具,例如列出 Pod、获取 Service YAML、创建 Deployment 等。具体的工具列表和参数请参考仓库 README 或服务器的 capabilities 声明。
-
查看版本: 可以使用 'version' 子命令查看服务器版本信息:
./kubernetes-mcp version
信息
分类
开发者工具