-
项目简介 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密码)的预签名下载链接。
-
安装步骤
- 克隆仓库:
首先,将 Assisted Service MCP 服务器的 GitHub 仓库克隆到您的本地机器。
git clone [email protected]:openshift-assisted/assisted-service-mcp.git cd assisted-service-mcp - 获取OpenShift API令牌: 访问 'https://cloud.redhat.com/openshift/token' 页面,获取您的 Red Hat OpenShift Cluster Manager (OCM) 离线令牌。此令牌用于服务器与 OpenShift API 进行认证。
- 克隆仓库:
首先,将 Assisted Service MCP 服务器的 GitHub 仓库克隆到您的本地机器。
-
服务器配置 (供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。
-
启动服务器 (在终端中执行): 打开您的终端,导航到 'assisted-service-mcp' 仓库的根目录,然后执行以下命令来启动服务器:
OFFLINE_TOKEN=<您的OpenShift离线令牌> uv run server.py- 注意: 请将 '<您的OpenShift离线令牌>' 替换为您在安装步骤2中获取的真实离线令牌。
- 服务器通常会在 'http://localhost:8000/sse' 地址启动并监听请求。
- 作为替代方案,您也可以选择不在环境变量中设置 'OFFLINE_TOKEN',而是通过客户端的请求头提供令牌(参见下一步的 'headers' 配置)。
-
配置客户端: 您的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 公钥,以便我可以访问节点"
信息
分类
开发者工具