Skip to content

Setup wizard: MCP server registration #673

Description

@R-Lawton

Implement the "Setup MCP server" wizard as shown in the Figma designs. This is a 3-step wizard for creating an HTTPRoute and MCPServerRegistration to connect an upstream MCP server to the gateway.

Overall layout:

  • Wizard (vertical nav variant with numbered steps)
  • Tabs (Form / YAML) on each step
  • Button (primary: Next/Add MCP server, secondary: Cancel)

Step 1 — Create route for MCP server:

  • Form with FormGroup rows:
    • TextInput — Route name (required, with Popover help)
    • Select — Namespace (required) + TextInput fallback for new namespace
    • TextInput — Internal hostname (required)
    • Select — Listener name
  • Match rules section:
    • TextInput — Path match (required)
    • Select — Target Kubernetes service
    • TextInput — Port (required)

Step 2 — Register MCP server:

  • Form with FormGroup rows:
    • TextInput — Registration name (required)
    • Select — Namespace (required)
    • Select — Target HTTPRoute name (with Popover help)
    • TextInput — Tool prefix (required)

Resource creation strategy:

Steps 1–2 are form-only — no K8s resources are created until step 3. All resources are created in sequence at the verify step using the OpenShift Console SDK (k8sCreate), then watched (k8sWatch) for status conditions. If the user cancels before step 3, nothing is created.

Resources created at step 3:

  • HTTPRoute (gateway.networking.k8s.io/v1) — from step 1 form data
  • MCPServerRegistration (mcp.kuadrant.io/v1) — from step 2 form data

Step 3 — Verify MCP server:

  • Creates all resources, then watches MCPServerRegistration .status.conditions[?(@.type=='Ready')] for the controller to reconcile
  • Spinner (inline) — for in-progress checks
  • Icon (success/check) — for completed checks
  • Progress: Waiting for MCP server → Ready → Initializing → Initialized → Running health checks → Passed health checks
  • Alert (inline, success) — "MCP server is running and healthy"
  • Alert (inline, success) — "MCP server tools are available"
  • Escape hatch: user can click "View in overview" or "Done" at any point during verification without waiting for all checks to pass — resources are already created
  • Button (primary): "Add MCP server"

Designs: https://www.figma.com/proto/oizjCN6EVed31dW71YXS3K/RHCL-MCP?node-id=59-16632

Definition of done

  • Unit tests (Jest)
  • E2e tests (Playwright)
  • Documentation updated

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage/acceptedReviewed, prioritised, and ready for work

    Type

    No type

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions