Add provider catalog with curated entries and live registry probing#27
Merged
Merged
Conversation
Wizard mode cards now carry a plain-language "Best for…" sentence with concrete examples so it's clear which mode fits which kind of service (remote MCP vs package vs repository vs REST vs code). Add a "🗂 Browse" catalog to the web UI: a searchable list of known MCP servers and REST/OpenAPI APIs that deep-links into the New Provider wizard with the URL or OpenAPI spec pre-filled, then runs the existing introspection flow. The catalog is hybrid — a curated list bundled at frontend/catalog.json (offline-safe default) plus optional live probing of the MCP registry, Smithery, and APIs.guru behind a flag. Live sources are fetched concurrently with per-source error isolation and a short cache; the endpoint only ever contacts a fixed allowlist of registry hosts and never fetches an entry's own URL. - catalog.py: curated loader, live source adapters, TTL cache, build_catalog - frontend/app.py: navbar button, catalog modal + JS, GET /api/catalog, "Best for…" card copy; wzSelectType gains an optional prefill callback - frontend/catalog.json: curated entries - Dockerfile: ship catalog.py - tests: test_catalog.py + catalog UI/endpoint coverage in test_frontend.py - README: document the catalog and MCPPROXY_CATALOG_* knobs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a browseable provider catalog feature that lets users discover and configure known MCP servers and REST/OpenAPI APIs with one click. The catalog combines a curated offline list with optional live probing of external registries (MCP registry, Smithery, APIs.guru).
Key Changes
New
catalog.pymodule: Framework-free catalog implementation with:frontend/catalog.jsonMCPPROXY_CATALOG_LIVE,MCPPROXY_CATALOG_TTL,MCPPROXY_CATALOG_TIMEOUT, andMCPPROXY_CATALOG_MAX_PER_SOURCEenvironment variablesNew
/api/catalogendpoint: Returns merged catalog with optional live probing?live=trueenables external registry queries?source=mcp_registry,apis_gurunarrows which registries to probeerrorsmap rather than raisingCurated catalog JSON (
frontend/catalog.json): 10 hand-picked entries including:UI enhancements:
Test coverage:
Implementation Details
httpx.AsyncClientwith concurrent fetching viaasyncio.gather()for per-source error isolationwzSelectType()with prefill callbackshttps://claude.ai/code/session_01QT1BPZBCsSJCsZU465nQdj