Uh oh!
There was an error while loading. Please reload this page.
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 |
Uh oh!
There was an error while loading. Please reload this page.
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.
waleedlatif1
commented
Jul 21, 2026
waleedlatif1
commented
Jul 21, 2026
@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.
Uh oh!
There was an error while loading. Please reload this page.
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