Skip to content

Conversation

@chambridge
Copy link
Contributor

Description

Implements comprehensive MCP (Model Context Protocol) Catalog functionality with three major phases: UI Gallery View, Database-Backed YAML Sources, and Source Filtering & Merge System.

Phase 1: UI Gallery View with Catalog Service Integration

  • Frontend: React gallery view with server cards, details pages, and filters
  • BFF: Go handlers and repositories for MCP server API integration
  • Catalog Service: Database-backed YAML source provider with embedded loading
  • OpenAPI: Complete MCP server schema with transport types, tools, and security

Phase 2: Database-Backed YAML Source with Enhancements

  • Database: MCP server and tool models with ml_metadata patterns
  • YAML Loader: Multi-source loading with file watching and hot-reload
  • Remote Servers: Support for external MCP services via HTTP/SSE endpoints
  • Transport Array: Multiple transport types per server derived from endpoints
  • CustomProperties: Aligned with Model Registry patterns for tags and metadata
  • License Field: SPDX identifier transformation and Agreement links
  • Asset Type Detection: Unified sources API with assetType discrimination

Phase 3: Source Filtering & Merge System

  • Server Filtering: includedServers/excludedServers glob pattern matching
  • Multi-Source Merge: Field-level priority merging from multiple config paths
  • Tool Revocation: Immediate disabling via YAML with visual indicators
  • Named Queries: Pre-defined filter configurations for common scenarios
  • Server-Side Filtering: filterQuery parameter with 18 filterable properties

Data Model:

  • McpServer: Core server entity with customProperties for tags/metadata
  • McpTool: Tool definitions with revocation support
  • McpSource: Catalog source with labels for categorization
  • McpEndpoints: HTTP/SSE URLs for remote server access
  • McpDeploymentMode: local (Kubernetes) vs remote (external) discrimination=
image image image image image

How Has This Been Tested?

Tested with unit test and the tilt deployment.

Merge criteria:

  • All the commits have been signed-off (To pass the DCO check)
  • The commits have meaningful messages
  • Automated tests are provided as part of the PR for major new functionalities; testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work.
  • Code changes follow the kubeflow contribution guidelines.
  • For first time contributors: Please reach out to the Reviewers to ensure all tests are being run, ensuring the label ok-to-test has been added to the PR.

If you have UI changes

  • The developer has added tests or explained why testing cannot be added.
  • Included any necessary screenshots or gifs if it was a UI change.
  • Verify that UI/UX changes conform the UX guidelines for Kubeflow.

Implements comprehensive MCP (Model Context Protocol) Catalog functionality with
three major phases: UI Gallery View, Database-Backed YAML Sources, and Source
Filtering & Merge System.

**Phase 1: UI Gallery View with Catalog Service Integration**
- Frontend: React gallery view with server cards, details pages, and filters
- BFF: Go handlers and repositories for MCP server API integration
- Catalog Service: Database-backed YAML source provider with embedded loading
- OpenAPI: Complete MCP server schema with transport types, tools, and security

**Phase 2: Database-Backed YAML Source with Enhancements**
- Database: MCP server and tool models with ml_metadata patterns
- YAML Loader: Multi-source loading with file watching and hot-reload
- Remote Servers: Support for external MCP services via HTTP/SSE endpoints
- Transport Array: Multiple transport types per server derived from endpoints
- CustomProperties: Aligned with Model Registry patterns for tags and metadata
- License Field: SPDX identifier transformation and Agreement links
- Asset Type Detection: Unified sources API with assetType discrimination

**Phase 3: Source Filtering & Merge System**
- Server Filtering: includedServers/excludedServers glob pattern matching
- Multi-Source Merge: Field-level priority merging from multiple config paths
- Tool Revocation: Immediate disabling via YAML with visual indicators
- Named Queries: Pre-defined filter configurations for common scenarios
- Server-Side Filtering: filterQuery parameter with 18 filterable properties

**Data Model:**
- McpServer: Core server entity with customProperties for tags/metadata
- McpTool: Tool definitions with revocation support
- McpSource: Catalog source with labels for categorization
- McpEndpoints: HTTP/SSE URLs for remote server access
- McpDeploymentMode: local (Kubernetes) vs remote (external) discrimination

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign ederign for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Implement text search capability for MCP servers using the `q` query parameter
to enable filtering by name, description, and provider. This enhancement allows
users to quickly find MCP servers using natural language keywords across
multiple fields.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
chambridge and others added 2 commits December 18, 2025 19:27
Previously, MCP (Model Context Protocol) server schemas and endpoints were
only present in the merged api/openapi/catalog.yaml output file but missing
from the source specification in api/openapi/src/catalog.yaml. This caused
GitHub Action "prepare" check failures because the source and merged outputs
were out of sync.

This ensures the OpenAPI specification generation process works correctly
and CI checks pass.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
Regenerated catalog OpenAPI client SDK files with generator version 7.17.0
to align with updated OpenAPI specifications. This resolves the GitHub Action
"prepare" check failure caused by outdated generated code.

Changes:
- Updated OpenAPI generator version from 7.13.0 to 7.17.0
- Added query parameters (q, namedQuery) and FindMcpServersFilterOptions endpoint
- Fixed default parameter serialization in model catalog service
- Added assetType property to catalog source model
- Regenerated artifact models with updated generator

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
@chambridge
Copy link
Contributor Author

/retest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant