项目简介
KubeSphere MCP 服务器是基于 Model Context Protocol (MCP) 标准实现的后端服务,旨在将大型语言模型 (LLM) 客户端与 KubeSphere 容器平台集成。它通过将 KubeSphere 的 API 功能封装为 MCP 工具,使 LLM 能够理解和访问 KubeSphere 中的各种资源和状态信息。
主要功能点
该服务器通过实现多个工具模块,使 LLM 客户端能够:
- 工作空间管理: 获取工作空间列表、工作空间详情、工作空间成员、工作空间配额、应用仓库列表、应用列表及应用版本信息。
- 集群管理: 获取集群列表、集群详情、集群标签、集群成员、节点列表以及集群内的各种工作负载和服务资源信息(如 Deployments, StatefulSets, DaemonSets, Pods, Services, Ingresses, Secrets, ConfigMaps, Service Accounts, CRDs, PVCs, PVs, StorageClasses 等)。
- 用户与角色: 获取用户列表、用户详情、角色列表及权限列表。
- 扩展中心: 获取扩展列表及其状态信息。
安装步骤
要运行 KubeSphere MCP 服务器并与 MCP 客户端连接,您需要:
- 具备 KubeSphere 集群环境:确保您可以访问一个 KubeSphere 集群,并拥有其访问地址、用户名和密码。
- 获取 'ks-mcp-server' 可执行文件:
- 您可以从项目的 GitHub Releases 页面下载预编译的二进制文件。
- 或者,如果您有 Go 开发环境,可以在项目根目录运行 'go build -o ks-mcp-server cmd/main.go' 自行构建。
- 将生成(或下载)的 'ks-mcp-server' 二进制文件移动到系统的 '$PATH' 环境变量指定的目录中,以便终端能够直接找到并运行它。
- 生成 KubeSphere 访问配置 ('KSConfig'):创建一个 YAML 文件,格式类似于 Kubernetes 的 'kubeconfig'。该文件包含连接 KubeSphere API 的地址、用户名和密码信息。
请替换上述文件中的占位符信息,并将文件保存在一个安全的位置,例如 '~/.kube/ksconfig' 或项目的某个目录。apiVersion: v1 clusters: - cluster: certificate-authority-data: # CA证书数据 (可选,取决于您的KubeSphere设置) server: https://your-kubesphere-api # KubeSphere API 服务器地址 (通常是 HTTPS) name: kubesphere # 集群名称 contexts: - context: cluster: kubesphere user: admin-user # 用户认证信息名称 name: admin-context # 上下文名称 current-context: admin-context # 当前使用的上下文 kind: Config preferences: {} users: - name: admin-user # 用户认证信息名称 user: username: your-username # 登录KubeSphere的用户名 password: your-password # 登录KubeSphere的密码 - 准备 MCP 客户端:例如 Claude Desktop 或 Cursor 等支持 MCP 协议的 LLM 客户端。
服务器配置(供 MCP 客户端使用)
您需要在 MCP 客户端的配置中添加一个 MCP 服务器条目,指向 'ks-mcp-server' 可执行文件。配置信息通常是一个 JSON 对象,包含服务器的名称、启动命令和参数。
以下是配置示例中关键参数的说明,您需要根据您的环境修改路径和地址:
{ "mcpServers": { "KS-MCP-Server": { // 您为这个服务器定义的名称 "command": "ks-mcp-server", // 指向已添加到PATH的可执行文件名称 "args": [ // 启动服务器时传递的参数列表 "stdio", // 启动Stdio传输模式的服务器 "--ksconfig", "[to-be-replace]/kubeconfig", // 指定您创建的KSConfig文件的路径 "--ks-apiserver", "http://[to-be-replace]:30880" // 可选:覆盖KSConfig中的KubeSphere API地址,如果您的API是HTTP或其他端口 ] } } }
- '"command"': 指定如何启动 'ks-mcp-server' 程序。由于您已将其添加到 '$PATH',这里通常只需要写程序名。
- '"args"': 指定启动 'ks-mcp-server' 时需要传递的参数。
- '"stdio"': 告诉服务器使用标准输入/输出来与客户端通信(这是许多桌面客户端支持的方式)。
- '"--ksconfig", "[to-be-replace]/kubeconfig"': 指定您在步骤 3 中创建的 KubeSphere 配置文件的完整路径。请务必替换 '[to-be-replace]/kubeconfig' 为实际路径。
- '"--ks-apiserver", "http://[to-be-replace]:30880"': (可选) 如果需要覆盖 'KSConfig' 文件中指定的 KubeSphere API 地址,使用此参数。例如,如果您的 KubeSphere API 通过 NodePort 在 HTTP 端口暴露,可以使用这个参数。请替换 'http://[to-be-replace]:30880' 为实际地址和端口。
请将这些信息添加到您的 MCP 客户端的 MCP 服务器配置中。具体操作方法请参考您使用的 MCP 客户端(如 Claude Desktop, Cursor)的文档。
基本使用方法
在 MCP 客户端中配置并启用 KubeSphere MCP 服务器后,您就可以在与 LLM 的聊天交互中直接提及 KubeSphere 的相关概念。LLM 客户端会识别您的请求,并自动调用 'ks-mcp-server' 提供的工具来获取您需要的 KubeSphere 信息,例如:
- "列出我所有工作空间的信息"
- "获取集群 'kubernetes' 中的所有节点"
- "查看工作空间 'devops' 的配额使用情况"
- "列出项目 'my-project' 中的所有 Pod"
服务器会返回 KubeSphere API 提供的 JSON 格式的原始数据,LLM 客户端会解析这些数据并以自然语言的方式呈现给您。
信息
分类
开发者工具