Skip to content

feat(oci): add support for Quay.io registry#1150

Open
mikelolasagasti wants to merge 1 commit intomodelcontextprotocol:mainfrom
mikelolasagasti:andrea-request
Open

feat(oci): add support for Quay.io registry#1150
mikelolasagasti wants to merge 1 commit intomodelcontextprotocol:mainfrom
mikelolasagasti:andrea-request

Conversation

@mikelolasagasti
Copy link
Copy Markdown

Adds support for the Quay.io container registry to the OCI validator. This allows MCP servers hosted on Quay.io to be registered and validated by the official registry.

Motivation and Context

Quay.io is a major, trusted public OCI registry widely used by the cloud-native and open-source communities. Currently, attempting to publish a server using a Quay image results in an unsupported OCI registry error. This change enables developers to use Quay.io as a first-class hosting option for their MCP server images.

How Has This Been Tested?

  • Unit Tests: Updated internal/validators/registries/oci_test.go to transition Quay.io from a rejected test case to an allowed one.
  • Pattern Matching: Verified that the allowlist correctly handles both specific image identifiers and general pattern matching for the quay.io host.
  • Local Validation: Ran make check to ensure no regressions in the existing OCI validation logic.

Breaking Changes

No. This is an additive change that expands the allowlist of supported registries. Existing configurations are unaffected.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

The implementation follows the existing pattern for OCI registries:

  1. Added a RegistryURLQuay constant to pkg/model for consistency.
  2. Hardcoded quay.io into the allowedOCIRegistries map in the validator to minimize architectural complexity.
  3. Updated all relevant documentation files (package-types.mdx, generic-server-json.md, and official-registry-requirements.md) to ensure the source of truth is updated across the project.
  4. Validation remains scoped to public images; no private registry authentication was added for this host.

- Add `RegistryURLQuay` in `pkg/model/constants.go`.
- Allow `quay.io` in OCI validator allowlist.
- Adjust oci tests so Quay is allowed (real image + pattern case).
- Document Quay in requirements, package-types, and generic-server-json.

Only the quay.io hostname is allowlisted; validation remains
public-image only.

Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant