feat(desktop): present MCP catalog as connectors - #59872
Conversation
Duplicate of #59692 (same author, earlier open) — the connector-presentation core (the 9 |
teknium1
left a comment
There was a problem hiding this comment.
Thanks for the connector presentation and catalog work. One compatibility issue needs resolution before this can be safely salvaged.
Problems
apps/desktop/src/app/skills/mcp-tab.tsx:1417directly readsentry.setup_steps.length(with equivalent reads at:1429and:1441). Current main's catalog API response athermes_cli/web_server.py:11263-11293does not return any of the new connector metadata fields. Because Desktop and its runtime update independently (apps/desktop/AGENTS.md:137-141), a newer Desktop against that runtime will throw onundefined.lengthwhile rendering MCP Catalog.
Suggested changes
- Normalize the new metadata to empty strings/arrays at the catalog response boundary, or make it optional in the renderer and use
?? []; add a Desktop regression test for the older response shape. - The MEMBER discussion identifies the presentation core as duplicated in open #59692. Please coordinate salvage so that core is taken once; review the large manifest import separately.
This is an automated hermes-sweeper review.
| <span>{setupSummary}</span> | ||
| </div> | ||
| )} | ||
| {entry.setup_steps.length > 0 && ( |
There was a problem hiding this comment.
Desktop can update ahead of its runtime, but the existing catalog API does not return setup_steps (or the other new metadata arrays). This throws on an older backend. Normalize the response to empty arrays or use entry.setup_steps ?? [] here and add a regression test for the legacy response shape.
Summary\n- Presents the desktop MCP catalog as user-facing Connectors with display metadata, richer cards, setup summaries, and Connect/Install actions.\n- Adds optional connector UI metadata to MCP manifests and exposes it through the catalog API.\n- Imports installable remote MCP endpoints from the Claude Connectors directory where the page exposes a
claude mcp addcommand; includes Streamable HTTP and SSE entries.\n\n## Validation\n- env -u PYTHONPATH uv run python -m pytest tests/hermes_cli/test_mcp_catalog.py tests/hermes_cli/test_dashboard_admin_endpoints.py::TestMcpEndpoints::test_catalog_lists_entries -q\n- cd apps/desktop && npm run test:ui -- src/lib/mcp-catalog.test.ts && npm run typecheck && npx eslint src/lib/mcp-catalog.ts src/lib/mcp-catalog.test.ts\n- cd apps/desktop && npm run build\n\n## Notes\n- The Claude directory currently exposes 400 connector cards. This PR adds the 262 new installable endpoints whose detail pages expose concrete MCP add commands, plus the existing curated entries already in Hermes. Directory cards with no endpoint command or placeholder URLs were not converted into manifests because Hermes requires a concrete transport target.