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

Rhoai MCP Prototype

MCP Server

RHOAI MCP服务器是一个用于与Red Hat OpenShift AI环境交互的协议服务器,提供项目管理、工作台操作、模型部署等功能,支持AI代理通过编程工具操作RHOAI资源。

工具数

30

提示词数

0

GitHub Stars

3

资源数

0
AI代理PythonClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

opendatahub-io

提供方

opendatahub-io

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

uv run rhoai-mcp

详细介绍

RHOAI MCP服务器

![CI](https://github.com/opendatahub-io/rhoai-mcp/actions/workflows/ci.yml) ![Container Build](https://github.com/opendatahub-io/rhoai-mcp/actions/workflows/container-build.yml) ](https://github.com/opendatahub-io/rhoai-mcp) ![Status](https://github.com/opendatahub-io/rhoai-mcp) ![Python](https://www.python.org/) ![License](LICENSE)

MCP(模型上下文协议)服务器,使AI代理能够与Red Hat OpenShift AI(RHOAI)环境进行交互。此服务器通过编程工具复制OpenShift AI仪表板的功能。

特性

  • 项目管理:创建、列出和管理数据科学项目
  • 工作台操作:创建、启动、停止和删除Jupyter工作台
  • 模特服务:使用KServe部署和管理InferenceServices
  • 数据连接:管理数据访问的S3凭据
  • 管道:配置数据科学管道基础设施
  • 存储:创建和管理持久数量声明
  • 训练:使用Kubeflow Training Operator对模型进行微调
  • MCP提示:多步骤操作的工作流程指南(18个提示)

技术栈

组件技术目的
运行时Python 3.10+核心语言
MCP框架FastMCP 1.0+模型上下文协议服务器
Kubernetes客户端kubernetes-python 28.1+集群API交互
数据验证Pydantic 2.0+类型安全模型和设置
HTTP客户端httpx 0.27+异步HTTP请求
集装箱基地红帽UBI 9生产容器图片
包管理器uv快速Python依赖管理

安装

使用紫外线(推荐)

# Clone the repository
git clone https://github.com/admiller/rhoai-mcp-prototype.git
cd rhoai-mcp-prototype

# Install dependencies
uv sync

# Run the server
uv run rhoai-mcp

使用pip

pip install -e .
rhoai-mcp

使用容器(Podman/Docker)

# Build the image
make build

# Run with HTTP transport
make run-http

# Run with STDIO transport (interactive)
make run-stdio

# Run with debug logging
make run-dev

或者直接运行而不使用Make:

# Build
podman build -f Containerfile -t rhoai-mcp:latest .

# Run with HTTP transport
podman run -p 8000:8000 \
  -v ~/.kube/config:/opt/app-root/src/kubeconfig/config:ro \
  -e RHOAI_MCP_AUTH_MODE=kubeconfig \
  -e RHOAI_MCP_KUBECONFIG_PATH=/opt/app-root/src/kubeconfig/config \
  rhoai-mcp:latest --transport sse

# Run with STDIO transport
podman run -it \
  -v ~/.kube/config:/opt/app-root/src/kubeconfig/config:ro \
  -e RHOAI_MCP_AUTH_MODE=kubeconfig \
  -e RHOAI_MCP_KUBECONFIG_PATH=/opt/app-root/src/kubeconfig/config \
  rhoai-mcp:latest --transport stdio

可用目标:

目标描述
make build构建容器映像
make run-http在8000端口上使用SSE传输运行
make run-streamable使用流式http传输运行
make run-stdio使用STDIO传输(交互式)运行
make run-dev运行调试日志
make run-token使用令牌身份验证运行(需要token和API_SERVER)
make stop停止正在运行的容器
make logs查看容器日志
make clean删除容器和图像

Kubernetes部署

对于集群内部署,应用Kubernetes清单:

kubectl apply -f deploy/kubernetes/deployment.yaml

这将创建:

  • 命名空间 rhoai-mcp
  • RHOAI资源的RBAC服务帐户
  • 使用SSE传输运行MCP服务器的部署
  • 服务暴露端口8000
  • 带TLS终止的路由(仅限OpenShift)

配置

服务器可以通过环境变量进行配置( RHOAI_MCP_ 前缀)或a .env 文件。

认证

服务器支持三种身份验证模式:

  1. 自动(默认):首先尝试集群身份验证,然后回退到kubeconfig
  2. Kubeconfig:使用kubeconfig文件
  3. 代币:使用明确的API服务器URL和令牌
# Auto mode (default)
export RHOAI_MCP_AUTH_MODE=auto

# Kubeconfig mode
export RHOAI_MCP_AUTH_MODE=kubeconfig
export RHOAI_MCP_KUBECONFIG_PATH=/path/to/kubeconfig
export RHOAI_MCP_KUBECONFIG_CONTEXT=my-context

# Token mode
export RHOAI_MCP_AUTH_MODE=token
export RHOAI_MCP_API_SERVER=https://api.cluster.example.com:6443
export RHOAI_MCP_API_TOKEN=sha256~xxxxx

运输

# stdio (default) - for Claude Desktop and similar tools
export RHOAI_MCP_TRANSPORT=stdio

# HTTP transports
export RHOAI_MCP_TRANSPORT=sse
export RHOAI_MCP_HOST=127.0.0.1
export RHOAI_MCP_PORT=8000

安全设置

# Enable delete operations (disabled by default)
export RHOAI_MCP_ENABLE_DANGEROUS_OPERATIONS=true

# Read-only mode (disable all write operations)
export RHOAI_MCP_READ_ONLY_MODE=true

安全特性概述

功能描述默认值
只读模式禁用所有创建/更新/删除操作关闭
危险操作门删除操作需要明确启用已禁用
确认模式需要删除工具 confirm=True 参数必填
凭证屏蔽S3密钥在所有响应中都被屏蔽始终
RBAC感知使用OpenShift Projects API尊重用户权限始终
身份验证启动时验证身份验证配置始终

模型注册表

MCP服务器与RHOAI模型注册表集成,以列出和查询已注册的模型。默认情况下,它会自动发现群集中的模型注册表服务。

发现模式

# Auto-discovery (default) - finds Model Registry in the cluster
export RHOAI_MCP_MODEL_REGISTRY_DISCOVERY_MODE=auto

# Manual - use a specific URL
export RHOAI_MCP_MODEL_REGISTRY_DISCOVERY_MODE=manual
export RHOAI_MCP_MODEL_REGISTRY_URL=https://model-registry.example.com

认证

当通过外部路由(集群外)访问模型注册表时,通常需要进行身份验证(OAuth用于OAuth代理路由;还支持显式令牌身份验证):

# No authentication (default) - for in-cluster access
export RHOAI_MCP_MODEL_REGISTRY_AUTH_MODE=none

# OAuth authentication - uses your oc login token
export RHOAI_MCP_MODEL_REGISTRY_AUTH_MODE=oauth

# Explicit token authentication
export RHOAI_MCP_MODEL_REGISTRY_AUTH_MODE=token
export RHOAI_MCP_MODEL_REGISTRY_TOKEN=sha256~xxxxx
身份验证模式描述用例
none无身份验证标头通过端口8080进行群集中访问
oauth使用kubeconfig中的OAuth令牌使用OAuth代理的外部路由
token使用显式承载令牌服务帐户,CI/CD

外部路由访问

要通过OpenShift路由从集群外部访问模型注册表,请执行以下操作:

# 1. Log in to OpenShift (this stores the OAuth token in kubeconfig)
oc login --server=https://api.cluster.example.com:6443

# 2. Configure the MCP server to use the external route with OAuth
export RHOAI_MCP_MODEL_REGISTRY_URL=https://model-catalog.apps.cluster.example.com
export RHOAI_MCP_MODEL_REGISTRY_DISCOVERY_MODE=manual
export RHOAI_MCP_MODEL_REGISTRY_AUTH_MODE=oauth

# 3. Optional: Skip TLS verification for self-signed certificates (not recommended)
# export RHOAI_MCP_MODEL_REGISTRY_SKIP_TLS_VERIFY=true

端口转发替代方案

如果没有可用的外部路由,您可以使用端口转发:

# Set up port-forwarding to the Model Registry service
kubectl port-forward -n rhoai-model-registries svc/model-catalog 8080:8443

# Configure the MCP server to use localhost
export RHOAI_MCP_MODEL_REGISTRY_URL=http://localhost:8080
export RHOAI_MCP_MODEL_REGISTRY_DISCOVERY_MODE=manual

所有模型注册表设置

变量描述默认值
RHOAI_MCP_MODEL_REGISTRY_ENABLED启用模型注册表集成true
RHOAI_MCP_MODEL_REGISTRY_URL模型注册表服务URL自动发现
RHOAI_MCP_MODEL_REGISTRY_DISCOVERY_MODEautomanualauto
RHOAI_MCP_MODEL_REGISTRY_AUTH_MODEnone, oauth,或 tokennone
RHOAI_MCP_MODEL_REGISTRY_TOKEN显式承载令牌(当auth_mode=令牌时)
RHOAI_MCP_MODEL_REGISTRY_TIMEOUT请求超时(秒)30
RHOAI_MCP_MODEL_REGISTRY_SKIP_TLS_VERIFY跳过TLS证书验证false

使用Claude代码

添加到您的项目 .mcp.json 文件:

{
  "mcpServers": {
    "rhoai": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/opendatahub-io/rhoai-mcp", "rhoai-mcp"],
      "env": {
        "RHOAI_MCP_KUBECONFIG_PATH": "/home/user/.kube/config"
      }
    }
  }
}

使用Claude Desktop

添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "rhoai": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/opendatahub-io/rhoai-mcp", "rhoai-mcp"],
      "env": {
        "RHOAI_MCP_KUBECONFIG_PATH": "/home/user/.kube/config"
      }
    }
  }
}

本地开发

对于使用本地克隆的贡献者:

{
  "mcpServers": {
    "rhoai": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/rhoai-mcp", "rhoai-mcp"],
      "env": {
        "RHOAI_MCP_KUBECONFIG_PATH": "/home/user/.kube/config"
      }
    }
  }
}

使用容器镜像(Podman/Docker)

首先,构建容器映像:

make build

然后使用容器配置Claude Desktop:

子程序 :

{
  "mcpServers": {
    "rhoai": {
      "command": "podman",
      "args": [
        "run", "-i", "--rm",
        "--userns=keep-id",
        "-v", "${HOME}/.kube/config:/opt/app-root/src/kubeconfig/config:ro",
        "-e", "RHOAI_MCP_AUTH_MODE=kubeconfig",
        "-e", "RHOAI_MCP_KUBECONFIG_PATH=/opt/app-root/src/kubeconfig/config",
        "rhoai-mcp:latest"
      ]
    }
  }
}

Docker:

{
  "mcpServers": {
    "rhoai": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "${HOME}/.kube/config:/opt/app-root/src/kubeconfig/config:ro",
        "-e", "RHOAI_MCP_AUTH_MODE=kubeconfig",
        "-e", "RHOAI_MCP_KUBECONFIG_PATH=/opt/app-root/src/kubeconfig/config",
        "rhoai-mcp:latest"
      ]
    }
  }
}

注:容器使用 stdio 默认情况下,这是Claude Desktop集成所必需的。

可用工具

项目管理(6个工具)

工具说明
list_data_science_projects列出所有RHOAI项目
get_project_details获取包含资源摘要的项目
create_data_science_project创建新项目
delete_data_science_project删除项目(需要确认)
get_project_status获取全面的项目状态
set_model_serving_mode设置单模式与多模式服务

工作台管理(8个工具)

工具说明
list_workbenches列出项目中的工作台
get_workbench获取工作台详细信息
create_workbench创建新工作台
start_workbench启动已停止的工作台
stop_workbench停止正在运行的工作台
delete_workbench删除工作台
list_notebook_images列出可用图像
get_workbench_url获取受OAuth保护的URL

模型服务(6个工具)

工具说明
list_inference_services列出已部署的模型
get_inference_service获取模型详细信息
deploy_model创建推理服务
delete_inference_service删除已部署的模型
list_serving_runtimes列出可用运行时
get_model_endpoint获取推理端点URL

数据连接(4个工具)

工具说明
list_data_connections列出项目中的连接
get_data_connection获取连接详细信息(屏蔽)
create_s3_data_connection创建S3连接
delete_data_connection删除连接

管道(3个工具)

工具说明
get_pipeline_server获取DSPA状态
create_pipeline_server创建DSPA
delete_pipeline_server删除DSPA

存储(3个工具)

工具说明
list_storage列出项目中的PVC
create_storage创建PVC
delete_storage删除PVC(需要确认)

MCP资源

服务器还公开只读资源:

资源URI描述
rhoai://cluster/status集群健康和RHOAI状态
rhoai://cluster/componentsDataSciencesCluster组件状态
rhoai://cluster/accelerators可用GPU配置文件
rhoai://projects/{name}/status项目资源汇总
rhoai://projects/{name}/workbenches工作台状态列表
rhoai://projects/{name}/models已部署的具有状态的模型

MCP提示

该服务器提供18个提示,指导AI代理完成多步工作流程。提示是提供分步说明的模板,并参考每个工作流阶段的适当工具。

培训工作流程(3个提示)

提示描述
train-model使用LoRA/QLoRA指导对模型进行微调
monitor-training监控正在进行的培训工作并诊断问题
resume-training从检查点恢复暂停或失败的培训作业

集群探索(4个提示)

提示描述
explore-cluster了解RHOAI集群中可用的内容
explore-project探索特定数据科学项目中的资源
find-gpus查找用于训练或推理的可用GPU资源
whats-running快速检查所有活动工作负载的状态

故障排除(4个提示)

提示描述
troubleshoot-training诊断并解决培训工作中的问题
troubleshoot-workbench使用工作台诊断和修复问题
troubleshoot-model诊断并修复已部署模型的问题
analyze-oom分析并解决培训中的内存不足问题

项目设置(3个提示)

提示描述
setup-training-project建立一个新的模型训练项目
setup-inference-project建立新的模型服务项目
add-data-connection向现有项目添加S3数据连接

模型部署(4个提示)

提示描述
deploy-model部署推理服务模型
deploy-llm使用vLLM或TGIS部署大型语言模型
test-endpoint测试已部署的模型端点
scale-model向上或向下扩展模型部署

交互示例

创建数据科学项目

User: Create a new data science project called "fraud-detection" for my ML experiments
Agent: I'll create that project for you with a descriptive display name.
[Calls create_data_science_project with name="fraud-detection", 
 display_name="Fraud Detection ML", description="Machine learning experiments for fraud detection"]

Result: Project 'fraud-detection' created successfully

部署模型

User: Deploy my trained fraud model from S3 to the fraud-detection project

Agent: I'll deploy your model. First, let me check available serving runtimes.
[Calls list_serving_runtimes with namespace="fraud-detection"]
[Calls deploy_model with name="fraud-model", namespace="fraud-detection",
 runtime="ovms", model_format="onnx", 
 storage_uri="s3://models/fraud-detection/model.onnx"]

Result: Model 'fraud-model' deployment initiated. It may take a few minutes to become ready.

检查项目状态

User: What's the status of my fraud-detection project?

Agent: [Calls get_project_status with namespace="fraud-detection"]

Result:
- Project: fraud-detection (Fraud Detection ML)
- Workbenches: 2 total, 1 running
- Models: 1 deployed, 1 ready
- Pipeline Server: Ready
- Data Connections: 1
- Storage: 3 PVCs

发展

运行测试

# Install dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=rhoai_mcp

代码质量

# Format code
uv run ruff format

# Lint
uv run ruff check

# Type check
uv run mypy src/rhoai_mcp

建筑

┌─────────────────────────────────────────────────────────────────┐
│                MCP Transport Layer (stdio/SSE/HTTP)             │
├─────────────────────────────────────────────────────────────────┤
│  FastMCP Server (server.py)                                     │
│  - Tool registration     - Resource registration                │
│  - Prompt registration   - Lifecycle management                 │
├───────────────────┬─────────────────────┬───────────────────────┤
│  Tools Layer      │  Resources Layer    │  Prompts Layer        │
│  - projects       │  - cluster.py       │  - training (3)       │
│  - notebooks      │  - projects.py      │  - exploration (4)    │
│  - inference      │                     │  - troubleshooting (4)│
│  - connections    │                     │  - project setup (3)  │
│  - storage        │                     │  - deployment (4)     │
│  - pipelines      │                     │                       │
│  - training       │                     │                       │
├───────────────────┴─────────────────────┴───────────────────────┤
│  Clients Layer (clients/) - Business Logic                      │
│  - base.py (K8sClient)   - projects.py    - notebooks.py        │
│  - inference.py          - connections.py - storage.py          │
│  - pipelines.py          - training.py                          │
├─────────────────────────────────────────────────────────────────┤
│  Models Layer (models/) - Pydantic Data Structures              │
│  - common.py (shared)    - Domain-specific models per resource  │
├─────────────────────────────────────────────────────────────────┤
│  Infrastructure Layer                                           │
│  - K8sClient: Kubernetes API abstraction (Core + CRDs)          │
│  - Configuration: Environment-based settings                    │
│  - Plugin Manager: Pluggy-based plugin system                   │
└─────────────────────────────────────────────────────────────────┘

目录结构

目录目的
客户/每种资源类型的Kubernetes客户端抽象
模型/类型安全资源处理的Pydantic模型
工具/包装客户端操作的MCP工具定义
资源/只读数据访问的MCP资源定义
utils/注释、标签和错误的辅助函数

请求流

AI Agent Request → MCP Transport → Tool Handler → Domain Client
                                                       ↓
AI Agent Response ← Pydantic Model ← K8s Response ← K8sClient → Kubernetes API

支持的关键CRD

资源API组用途
命名空间core/v1数据科学项目
笔记本kubeflow.org/v1工作台
InferenceServiceserving.kserve.io/v1beta1模型服务
ServingRuntimeserving.kserve.io/v1alpha1模型服务器配置
DataScience管道应用程序数据科学管道应用程序.opendatahub.io/v1alph1管道基础设施
加速器配置文件仪表板.opendatahub.io/v1GPU配置文件

许可证

MIT许可证-请参阅 许可证 了解详情。

目录标签

目录标签

AI代理PythonClaude本地部署OpenShiftAI模型部署Kubernetes数据科学平台

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

30

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP