Token导航 LogoToken导航TokenDH.com
MCP Server Rhoai logo
AI代理未说明官方级别未说明来源级核验

MCP Server Rhoai

MCP Server

一个用于管理Red Hat OpenShift AI工作台的模型上下文协议(MCP)服务器,提供工作台、镜像、硬件配置和存储的创建、列表及管理功能,并监控资源消耗情况。

工具数

21

提示词数

0

GitHub Stars

2

资源数

0
Kubernetes管理GoClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ada333

提供方

ada333

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

用于Red Hat OpenShift AI的MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,用于管理Red Hat OpenShift AI(RHOAI)工作台。它提供了用于列出、创建和管理OpenShift集群中的工作台、映像、硬件配置文件和存储的工具,还提供了用于监控每个用户、工作台、命名空间或集群的工作台资源消耗的工具。 这个项目是学士学位论文的一部分。

先决条件

  • 转到1.24.0或更高版本
  • 访问安装了RHOAI的OpenShift集群
  • oc CLI已登录到集群
  • (可选)golangci lint用于代码linting

安装

  1. 克隆存储库:
git clone https://github.com/amaly/mcp-server-rhoai.git
cd mcp-server-rhoai
  1. 下载依赖关系:
go mod download
  1. 确保您已登录到OpenShift集群:
oc login 

建筑

该项目包括一个易于构建的Makefile:

用Make构建

# Build with linting and testing (recommended)
make build

# Build without running lint and tests (faster)
go build -o mcp-server-rhoai

构建过程将:

  1. 运行绒毛检查(golangci lint)
  2. 执行所有测试
  3. 将二进制文件编译为 mcp-server-rhoai

构建输出

  • 二进制位置: ./mcp-server-rhoai

测试

该项目有一个全面的单元测试套件(7个测试文件中的60个测试),涵盖了每个工具模块。测试使用Kubernetes假客户端(dynamicfake.NewSimpleDynamicClient)以及函数变量mocking,用于将逻辑与实时集群依赖关系隔离开来,因此不需要运行集群。

使用Make或直接使用Go运行测试:

# Run all tests with Make
make test

# Run tests directly with verbose output
go test -v ./tools/... ./resources/... ./prompts/...

测试覆盖范围包括:

  • 工作台工具 --CRUD操作、状态转换和辅助函数(图像标签解析、资源提取、PVC名称解析)
  • 存储工具 --PVC创建、删除和尺寸更新,包括拒绝尺寸减小
  • 图像工具 --自定义映像CRUD、默认映像和使用中的保护检查、映像列表
  • 硬件配置文件工具 --配置文件CRUD和资源标识符解析
  • 资源消耗工具 --值解析(毫核、Gi后缀、小数)、聚合和每个工作台/命名空间/用户/集群查询
  • 命名空间和pod工具 --按命名空间列出和筛选

每个工具模块都有一个专用的 *_test.go 包含成功和错误路径案例的文件。在需要验证多个输入变量的情况下,使用表驱动的子测试。

评估

用途 Promptfoo 的 用于测试工具选择精度。

运行评估

export GOOGLE_API_KEY=your-key-here
make eval        # run tests
make eval-view   # run and open results in browser

它测试了什么

  • 工具选择 -每个提示都需要正确的工具
  • 参数提取 -正确传递的参数(命名空间、工作台名称等)

主要学习内容

工具描述必须明确,以实现与模型无关的兼容性:

  • 用标记可选字段 omitempty 并在jsonschema描述中描述默认值
  • 在描述中包含有效值(例如,“状态:0表示运行,1表示停止”)
  • 更简单的模型(Gemini Flash)比Claude更严格——有利于测试鲁棒性

配置

MCP服务器可以在AI助手中配置,以通过自然语言实现工作台管理。

VSCode/光标设置

  1. 构建服务器:
make build
  1. 在光标中打开MCP设置:

- 按 Ctrl + Shift + P (Windows/Linux)或 Cmd + Shift + P (Mac) - 键入“打开MCP设置” - 点击“新建MCP服务器”

  1. 添加配置:

只读模式 (默认,更安全):

{
  "mcpServers": {
    "mcp-server-rhoai": {
      "command": "/home/amaly/mcp-server-rhoai/mcp-server-rhoai"
    }
  }
}

读写模式 (完全访问):

{
  "mcpServers": {
    "mcp-server-rhoai": {
      "command": "/home/amaly/mcp-server-rhoai/mcp-server-rhoai",
      "env": {
        "MCP_RHOAI_MODE": "write"
      }
    }
  }
}
  1. 验证安装:

- 检查服务器是否在Cursor MCP设置中启用 - 您应该看到列出的可用工具

  1. 开始使用:

- 询问AI助手:“列出命名空间mcp-test中的所有工作台” - 或者:“显示每个命名空间的资源消耗”

Claude桌面设置

  1. 构建服务器:
make build
  1. 找到Claude Desktop配置文件:

- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json

  1. 编辑配置文件 并添加MCP服务器:

只读模式 (默认):

{
  "mcpServers": {
    "mcp-server-rhoai": {
      "command": "/home/amaly/mcp-server-rhoai/mcp-server-rhoai"
    }
  }
}

读写模式 (完全访问):

{
  "mcpServers": {
    "mcp-server-rhoai": {
      "command": "/home/amaly/mcp-server-rhoai/mcp-server-rhoai",
      "env": {
        "MCP_RHOAI_MODE": "write"
      }
    }
  }
}
  1. 重新启动克劳德桌面 使更改生效
  1. 验证连接:

- 在Claude Desktop中查找MCP连接指示灯 - 问Claude:“我的集群中有哪些工作台?”

重要说明

权限: MCP服务器使用您当前的 oc 登录凭据。所有操作都是在您的用户权限下执行的。

安全: 从只读模式开始,安全探索。仅在需要创建或修改资源时启用写入模式。

工具模式

服务器支持两种操作模式,既安全又灵活:

只读模式(默认)

只有列表和查询工具可用。此模式为 更安全 并防止对集群的意外修改。

可用操作:

  • 列出工作台、图像、硬件配置文件、PVC
  • 查询资源消耗
  • 查看命名空间和pod信息

读写模式

所有工具都可用,包括创建、删除和修改操作。

附加操作:

  • 创建/删除工作台
  • 创建/删除自定义图像
  • 创建/删除硬件配置文件
  • 创建PVC
  • 启动/停止工作台

配置模式

可以通过命令行标志或环境变量设置模式:

命令行标志(建议用于promptfoo/scripts):

./mcp-server-rhoai -mode write

环境变量(用于MCP客户端配置):

export MCP_RHOAI_MODE=write
模式描述
未设置只读默认安全模式
write读写完全访问所有工具

-mode 标志优先于环境变量。

可用工具

只读工具(始终可用)

  • 列出Pod -在命名空间中列出Pod
  • 列出命名空间 -列出群集中的所有命名空间
  • 列出工作台 -列出特定命名空间中的工作台
  • 列出所有工作台 -列出所有命名空间中的工作台
  • 列出图片 -列出所有可用的笔记本图像
  • 列出硬件配置文件 -列出可用的硬件配置文件
  • 列出PVC -在命名空间中列出持久卷声明
  • 列出每个工作台的资源消耗 -获取特定工作台的资源使用情况
  • 列出每个命名空间的资源消耗 -获取命名空间中所有工作台的资源使用情况
  • 列出每个用户的资源消耗 -获取特定用户的资源使用情况
  • 列出每个群集的资源消耗 -获取集群范围内的资源使用情况

写入工具(仅在写入模式下)

  • 创建工作台 -使用指定配置创建新工作台
  • 删除工作台 -删除现有工作台
  • 更改工作台状态 -启动或停止工作台
  • 创建自定义图像 -创建自定义笔记本映像
  • 删除图像 -删除自定义图像
  • 创建硬件配置文件 -创建新的硬件配置文件
  • 删除硬件配置文件 -删除硬件配置文件
  • 创建PVC -创建持久卷声明

发展

项目结构

mcp-server-rhoai/
├── main.go                    # Entry point
├── core/                      # Shared types and utilities
│   ├── gvr.go                 # Kubernetes GroupVersionResource definitions
│   ├── common_types.go        # Shared output/namespace types
│   ├── workbench_types.go     # Workbench-related types
│   ├── image_types.go         # Image-related types
│   ├── hardware_profile_types.go  # Hardware profile types
│   ├── pvc_types.go           # PVC-related types
│   ├── resource_consumption_types.go  # Resource consumption types
│   └── logging.go             # Logging utilities
├── tools/                     # MCP tool implementations
│   ├── registry.go            # Tool registration (read-only & write modes)
│   ├── workbench_tools.go     # Workbench CRUD & status tools
│   ├── image_tools.go         # Image management tools
│   ├── hardware_profile_tools.go  # Hardware profile tools
│   ├── storage_tools.go       # PVC management tools
│   ├── namespace_tools.go     # Namespace listing tools
│   ├── pod_tools.go           # Pod listing tools
│   ├── resource_consumption_tools.go  # Resource monitoring tools
│   └── common.go              # Shared tool helpers
├── resources/                 # MCP resource definitions
├── prompts/                   # MCP prompts
└── Makefile                   # Build automation

添加新工具

  1. 在相应的文件中实现工具功能 tools/
  2. 在中注册 tools/registry.go:

- 只读:添加到 RegisterReadOnlyTools() - 写作:添加到 RegisterWriteTools()

  1. 在中添加测试 tools/*_test.go
  2. 更新此自述文件

代码检查

此存储库使用 戈朗茨皮棉 用于代码质量检查。

安装golangci棉绒

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

跑林婷

make lint

目录标签

目录标签

Kubernetes管理GoClaude本地部署AI工作台资源监控OpenShift工具模型上下文协议

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP