fix(mcp): don't blank the MCP tools page when tool discovery fails#5816
Conversation
A tool-discovery error (one slow/failing server, e.g. a stalled transport) replaced the entire server list with an error banner. Gate the full-list replacement on serversError (the list genuinely failing to load) only; when the servers loaded, always render the list — each row already surfaces its own discovery state via toolsStateByServer, with a non-blocking notice above the list. Restores graceful degradation so one bad server can't hide the others.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview When the list still loads, users see a non-blocking notice if any discovery failed, and each Reviewed by Cursor Bugbot for commit 8ad1c31. Configure here. |
Greptile SummaryThis PR keeps the MCP server list usable when tool discovery fails. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix(mcp): surface partial discovery fail..." | Re-trigger Greptile |
When one server succeeds and another fails, the aggregate toolsError is suppressed (data exists), so the failure was hidden. Now: the notice renders on ANY per-server discovery error (not just all-fail), and each failed row surfaces its live discovery error instead of reading as '0 tools' before its stored status catches up.
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 8ad1c31. Configure here.
Summary
const error = toolsError || serversErrorgated the whole list, conflating a tool-discovery failure with a server-list-load failure. Either one blanked the page.serversErroronly (the list genuinely failing to load). When the servers loaded, always render the list — each row already surfaces its own discovery state viatoolsStateByServer(per-row status), with a small non-blocking notice above the list when discovery had issues.Type of Change
Testing
useMcpToolsQueryper-serveruseQueriesisolation, the discover route, the service single/all-server paths, and every render state): page never blanks on a tool-discovery failure in any of loading / no-servers / servers+toolsError / serversError / detail-view; per-server isolation intact; no other code hides the list; no unused vars or regressions.Checklist