redhat-developer / redhat-developer/rhdh-plugins

MCP Mirror Endpoint + RHOAI Version Normalization (issue 7 of 29)

Open
#4,045 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Labels: ready-to-code
Dependencies: None
RHIDP Stories: RHIDP-15317, RHIDP-15321
Feature: RHDHPLAN-1510 — Epics RHIDP-15313, RHIDP-15314

Implement the MCP Registry mirror endpoint configuration with zero-internet validation (no outbound traffic to public endpoint when mirror is configured), startup health check, and non-HTTPS security warnings. Also implement RHOAI version normalization utility for MCP server entity rhdh.io/ai-asset-version annotation population. RHIDP-15321 has no cross-connector dependencies and can start immediately.

Tasks

From openspec/changes/mcp-registry-connector/tasks.md group 1 (RHIDP-15317):

  • 1.1 Add ai-catalog.providers.mcpRegistry.endpoint config schema in config.d.ts
  • 1.2 Implement endpoint configuration loading from app-config
  • 1.3 Add environment variable override support (MCP_REGISTRY_ENDPOINT)
  • 1.4 Implement endpoint URL validation
  • 1.5 Add endpoint fallback logic (app-config > env var > default public endpoint)
  • 1.6 Implement startup endpoint validation health check
  • 1.7 Add endpoint configuration logging at connector startup
  • 1.8 Add security warning for non-HTTPS endpoints
  • 1.9 Implement HTTP client configuration with mirror endpoint URL
  • 1.10 Add Prometheus metrics for endpoint request count, latency, error rate
  • 1.11 Add Prometheus metric for public endpoint violation detection
  • 1.12–1.18 Integration tests: zero outbound traffic, mirror targeting, DNS resolution, retry backoff, invalid URL, non-HTTPS warning, override precedence
  • 1.19–1.20 Documentation: mirror endpoint examples, zero-internet validation

From openspec/changes/rhoai-connector/tasks.md group 7 (RHIDP-15321):

  • 7.1 Define version normalization rules
  • 7.2 Implement normalizeVersion(rawVersion) utility — semver normalization, strip v prefix, handle latest/nightly
  • 7.3 Populate rhdh.io/ai-asset-version annotation with normalized version
  • 7.4 Handle missing version metadata: set "unknown" with DEBUG log
  • 7.5 Handle invalid version strings: set "unknown" with WARNING log
  • 7.6 Unit tests for version normalization
  • 7.7 Integration test: emitted entities carry correct annotation
Specifications
  • openspec/changes/mcp-registry-connector/specs/mirror-endpoint/spec.md
  • 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

Start with openspec/changes/mcp-registry-connector/specs/mirror-endpoint/spec.md and openspec/changes/rhoai-connector/specs/mcp-catalog-source/spec.md, then use the task lists to locate config.d.ts and the connector entry points. Done means mirror configuration, validation, warnings, metrics, tests, and documentation are complete, while emitted RHOAI entities carry normalized version annotations with the specified fallback logging.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, documentation, observability, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.