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 文件、环境变量、默认路径) 和日志级别设置。

安装步骤

  1. 安装 Go: 确保已安装 Go 1.23 或更高版本。
  2. 下载代码: 使用 Git 克隆仓库到本地:
    git clone https://github.com/starbops/harvester-mcp-server.git
    cd harvester-mcp-server
  3. 编译: 在仓库根目录下执行 'make build' 命令编译服务器。编译后的可执行文件 'harvester-mcp-server' 将位于 'bin' 目录中。
  4. 或使用 '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' 中的路径。

基本使用方法

  1. 启动服务器: 根据安装步骤编译或安装完成后,在终端运行 'harvester-mcp-server' 命令启动服务器。您可以使用 '--kubeconfig' 和 '--log-level' 等命令行参数进行配置。
  2. 配置 MCP 客户端: 打开 MCP 客户端 (如 Claude Desktop) 的配置文件,将上面提供的 JSON 配置添加到 'mcpServers' 部分,并确保配置参数正确。
  3. 在 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与计算