• 项目简介 Assisted Service MCP 服务器是一个功能强大的后端应用,它通过 Model Context Protocol (MCP) 标准,使大型语言模型 (LLM) 客户端能够与Red Hat OpenShift辅助安装器API进行交互。它将复杂的API操作封装成易于LLM调用的工具,从而实现OpenShift集群的自动化管理、诊断和故障排除。

  • 主要功能点 该服务器提供了一系列核心工具,赋能LLM客户端执行以下任务:

    • 集群管理: 列出、获取详细信息、创建、安装、更新API/Ingress VIP、设置SSH密钥。
    • 事件与监控: 获取集群和主机相关的安装、配置和状态更新事件。
    • ISO下载: 获取集群安装ISO的下载链接。
    • 主机管理: 为集群中的主机分配角色。
    • OpenShift版本与Operator: 列出可用的OpenShift版本和Operator捆绑包,并将其添加到集群。
    • 凭据下载: 获取集群凭据文件(如kubeconfig、kubeadmin密码)的预签名下载链接。
  • 安装步骤

    1. 克隆仓库: 首先,将 Assisted Service MCP 服务器的 GitHub 仓库克隆到您的本地机器。
      git clone [email protected]:openshift-assisted/assisted-service-mcp.git
      cd assisted-service-mcp
    2. 获取OpenShift API令牌: 访问 'https://cloud.redhat.com/openshift/token' 页面,获取您的 Red Hat OpenShift Cluster Manager (OCM) 离线令牌。此令牌用于服务器与 OpenShift API 进行认证。
  • 服务器配置 (供MCP客户端使用) MCP服务器支持多种传输协议。以下是两种推荐的配置方式,您可以根据您的MCP客户端(例如,一个支持MCP的IDE插件或自定义LLM应用)的类型进行选择:

    方式一:使用STDIO传输协议 (例如,在VSCode客户端中配置) 您的MCP客户端需要通过启动命令来运行MCP服务器。通常,这涉及指定服务器的执行程序、脚本路径和环境变量。以下是一个典型的JSON格式配置示例,您需要将其添加到您的MCP客户端配置文件中(例如,VSCode的 'settings.json'):

    {
      "mcp": {
        "servers": {
          "AssistedService": {
            "command": "uv", // 启动服务器的执行程序,请确保 'uv' 已安装并可在您的系统路径中找到。
            "args": [
              "--directory", "/path/to/assisted-service-mcp", // **重要:** 请将此路径替换为您本地克隆 'assisted-service-mcp' 仓库的实际路径。
              "run", "mcp", "run",
              "/path/to/assisted-service-mcp/server.py" // **重要:** 请将此路径替换为服务器主脚本 'server.py' 的实际路径。
            ],
            "env": {
              "OFFLINE_TOKEN": "<您的OpenShift离线令牌>" // **重要:** 请将此占位符替换为您在安装步骤2中获取的真实离线令牌。
            }
          }
        }
      }
    }

    方式二:使用SSE (Server-Sent Events) 传输协议 (推荐) 这种方式下,您需要首先在终端中手动启动MCP服务器,然后配置您的MCP客户端连接到运行中的服务器URL。

    1. 启动服务器 (在终端中执行): 打开您的终端,导航到 'assisted-service-mcp' 仓库的根目录,然后执行以下命令来启动服务器:

      OFFLINE_TOKEN=<您的OpenShift离线令牌> uv run server.py
      • 注意: 请将 '<您的OpenShift离线令牌>' 替换为您在安装步骤2中获取的真实离线令牌。
      • 服务器通常会在 'http://localhost:8000/sse' 地址启动并监听请求。
      • 作为替代方案,您也可以选择不在环境变量中设置 'OFFLINE_TOKEN',而是通过客户端的请求头提供令牌(参见下一步的 'headers' 配置)。
    2. 配置客户端: 您的MCP客户端需要以下JSON格式的配置信息来连接到运行中的SSE服务器:

      {
        "assisted-sse": {
          "transport": "sse", // 指定传输协议为 Server-Sent Events。
          "url": "http://localhost:8000/sse", // MCP服务器的访问 URL。
          "headers": {
            "OCM-Offline-Token": "<您的OpenShift离线令牌>" // **可选:** 如果您未通过环境变量启动服务器时提供令牌,可以在此处提供。
          }
        }
      }
      • 注意: 如果您选择通过 'headers' 提供令牌,请将 '<您的OpenShift离线令牌>' 替换为您的真实令牌。
  • 基本使用方法 一旦MCP服务器成功启动并且您的MCP客户端配置完成,您就可以通过您的客户端应用程序(例如,一个支持LLM的IDE插件或自定义前端应用)向LLM提问。LLM将利用服务器提供的工具来获取信息或执行集群管理操作。

    • 列出所有集群: "显示我所有的OpenShift集群"
    • 获取集群详细信息: "给我关于集群 'abc123' 的详细信息"
    • 创建新集群: "创建一个名为 'my-cluster' 的新集群,使用 OpenShift 4.14,基本域为 'example.com'"
    • 检查集群事件: "集群 'abc123' 上发生了哪些事件?"
    • 安装集群: "开始安装集群 'abc123'"
    • 获取集群凭据: "获取集群 'abc123' 的 kubeconfig 下载链接"
    • 更新SSH密钥: "为集群 'abc123' 设置 SSH 公钥,以便我可以访问节点"

信息

分类

开发者工具