Skip to content

Instantly share code, notes, and snippets.

@clemensv
Last active November 14, 2025 21:04
Show Gist options
  • Select an option

  • Save clemensv/e853eb445565a3c5398f57f20a17d473 to your computer and use it in GitHub Desktop.

Select an option

Save clemensv/e853eb445565a3c5398f57f20a17d473 to your computer and use it in GitHub Desktop.

For a bit of CNCF xRegistry magic:

curl -o docker-compose-gh.yml https://raw.githubusercontent.com/xregistry/xrproxy/main/docker-compose-gh.yml
docker compose -f docker-compose-gh.yml up 

After a little while (give it a couple minutes to settle after the images have been pulled), you'll get a metadata viewer at http://localhost:8080/viewer and an xRegistry API endpoint at http://localhost:8080/registry

What are you looking at? The viewer shows our test registry at xregistry.soaphub.org with endpoints and messages and schemas, but it also shows other metadata that illustrates why we call the registry "extensible":

  • the complete, live PyPI registry
  • the complete, live NPM registry
  • the complete, live NuGet registry
  • the complete, live OCI registry of Microsoft
  • the complete, live Maven Central registry
  • the complete, live "modelcontextprotocol.io" MCP registry

All of those metadata resources, literally millions of items, with a unified API surface area and a consistent, descriptive metamodel at http://localhost:8080/registry/model that the viewer operates on. Mind that some of these do not have a top-level index and in those cases you need to construct the direct links or filter to get results.

The MCP model declaration adapts the "official" metamodel structure, but creates references into the other registries so that dependencies are consistently navigable.

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