redhat-developer / redhat-developer/rhdh-plugins

RHOAI — MCP Catalog Source and Module Scaffold (issue 15 of 29)

Open
#4,053 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked workspace/boost
Dominant language
TypeScript
Stars
48
Forks
120
Avg merge
2d 6h
Merged PRs (30d)
337

Description

Labels: ready-to-code
Depends on: Issue 8 (#4046 SDK annotation scheme)
RHIDP Stories: RHIDP-15322
Feature: RHDHPLAN-1510 — Epic RHIDP-15314

Implement RhoaiMcpCatalogProvider with graceful 404 handling for developer-preview MCP catalog API, entity mapping (MCP catalog entry → API with spec.type: mcp-server), API response schema validation with Zod, and retry logic for unavailable API. Scaffold catalog-backend-module-rhoai backend module package.

Tasks

From openspec/changes/rhoai-connector/tasks.md group 1 (RHIDP-15322):

  • 1.1 Define RHOAI MCP catalog API response types with Zod schemas
  • 1.2 Implement McpCatalogApiClient with typed fetch
  • 1.3 Implement RhoaiMcpCatalogProvider extending EntityProvider
  • 1.4 Implement entity mapper: MCP catalog entry → API with spec.type: mcp-server
  • 1.5 Add MCP-specific annotations
  • 1.6 Implement connect() method with graceful 404 handling and mcpApiAvailable flag
  • 1.7 Implement read() method returning empty array when API unavailable
  • 1.8 Implement retry logic: every 10th refresh cycle
  • 1.9 Implement API response schema validation with Zod
  • 1.10 Add rhdh.io/api-version-mismatch annotation when API version differs
  • 1.11 Add standard RHDH annotations
  • 1.12 Implement logging for API availability transitions

From openspec/changes/rhoai-connector/tasks.md group 3:

  • 3.1 Create plugins/catalog-backend-module-rhoai/ package directory
  • 3.2 Create package.json with Backstage backend module role
  • 3.3 Create module entry point with createBackendModule
  • 3.4 Register RhoaiMcpCatalogProvider when enabled
  • 3.5 Add module to backend/src/index.ts
  • 3.6 Configure TypeScript build
  • 3.7 Add ESLint and Prettier configuration
Specifications
  • openspec/changes/rhoai-connector/specs/mcp-catalog-source/spec.md

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read openspec/changes/rhoai-connector/specs/mcp-catalog-source/spec.md and openspec/changes/rhoai-connector/tasks.md, then inspect the existing backend module structure and backend/src/index.ts. Implement the provider and API client behavior described in tasks 1.1–1.12, scaffold plugins/catalog-backend-module-rhoai, and register it as specified in tasks 3.1–3.7. Done means the module builds and handles unavailable or version-mismatched APIs as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.