Harvester MCP Server 使用说明
项目简介
Harvester MCP Server 是一个用 Go 语言实现的 Model Context Protocol (MCP) 服务器,专为 Harvester HCI (超融合基础设施) 设计。它允许 AI 助手 (如 Claude Desktop 和 Cursor) 通过 MCP 协议与 Harvester 集群交互,从而实现对 Kubernetes 核心资源和 Harvester 特定资源 (如虚拟机、镜像、卷等) 的查询和管理。
主要功能点
- 资源浏览与查询: 支持列出和获取 Kubernetes 核心资源 (Pods, Deployments, Services, Namespaces, Nodes, CRDs) 和 Harvester 定制资源 (Virtual Machines, Images, Volumes, Networks)。
- 人性化输出: 以易于理解的格式 (而非原始 JSON) 返回资源信息,包括按命名空间或状态分组、简洁摘要和详细视图。
- 工具扩展: 易于扩展,可以添加新的工具来支持更多 Harvester 资源和操作。
- 标准协议: 基于 Model Context Protocol (MCP) 构建,确保与支持 MCP 协议的客户端 (如 Claude Desktop, Cursor) 的兼容性。
- 灵活配置: 支持多种 Kubernetes 配置方式 (集群内配置、kubeconfig 文件、环境变量、默认路径) 和日志级别设置。
安装步骤
- 安装 Go: 确保已安装 Go 1.23 或更高版本。
- 下载代码: 使用 Git 克隆仓库到本地:
git clone https://github.com/starbops/harvester-mcp-server.git cd harvester-mcp-server - 编译: 在仓库根目录下执行 'make build' 命令编译服务器。编译后的可执行文件 'harvester-mcp-server' 将位于 'bin' 目录中。
- 或使用 'go install' 安装: 您也可以使用 'go install github.com/starbops/harvester-mcp-server/cmd/harvester-mcp-server@latest' 命令直接安装到 '$GOPATH/bin' 目录。
服务器配置
MCP 客户端 (例如 Claude Desktop) 需要配置 MCP 服务器的启动命令和参数才能连接。以下是 Harvester MCP Server 的客户端配置示例 (JSON 格式):
{ "mcpServers": { "harvester": { "command": "/path/to/harvester-mcp-server", "args": [ "--kubeconfig", "/path/to/kubeconfig.yaml", "--log-level", "info" ] } } }
配置参数说明:
- command: Harvester MCP Server 的可执行文件路径 ('/path/to/harvester-mcp-server' 需要替换为实际路径)。
- args: 启动参数列表,包括:
- '--kubeconfig': (可选) Kubernetes 配置文件 kubeconfig 的路径 ('/path/to/kubeconfig.yaml' 需要替换为实际路径)。如果省略,服务器将按顺序尝试使用集群内配置、'KUBECONFIG' 环境变量或默认路径 '~/.kube/config'。
- '--log-level': (可选) 日志级别,默认为 'info'。可选值包括 'debug', 'info', 'warn', 'error', 'fatal', 'panic'。
注意: 请根据您的 Harvester 集群配置和服务器部署位置,修改 'command' 和 'args' 中的路径。
基本使用方法
- 启动服务器: 根据安装步骤编译或安装完成后,在终端运行 'harvester-mcp-server' 命令启动服务器。您可以使用 '--kubeconfig' 和 '--log-level' 等命令行参数进行配置。
- 配置 MCP 客户端: 打开 MCP 客户端 (如 Claude Desktop) 的配置文件,将上面提供的 JSON 配置添加到 'mcpServers' 部分,并确保配置参数正确。
- 在 MCP 客户端中使用: 重启 MCP 客户端后,您就可以在客户端中使用预定义的工具与 Harvester 集群交互了。例如,在 Claude Desktop 中,您可以提问类似 "How many nodes are in my Harvester cluster?" 或 "List all virtual machines in the default namespace" 的问题,AI 助手将调用 Harvester MCP Server 提供的工具来获取 Harvester 集群的上下文信息并返回结果。
示例问题:
- "列出我 Harvester 集群中的所有节点"
- "显示 cattle-system 命名空间下的所有 Pod"
- "获取命名空间 default 中名为 vm-example 的虚拟机的详细信息"
- "在 harvester-system 命名空间中运行哪些服务?"
信息
分类
AI与计算