[Feature Request] Bulk MCP server reconnection for multi-server disconnect scenarios

Resolved 💬 1 comment Opened Apr 21, 2026 by Abhishek-Padghan Closed May 28, 2026

Bug Description
When multiple MCP servers disconnect mid-session (auth expiry, network blip, server restart), the only recovery path is opening /mcp
and reconnecting each server one at a time. With 5–10 MCP servers configured, this is N manual steps per incident.

Request: A single action to retry all disconnected MCP servers. Either of these would solve it:

  1. claude mcp reconnect-all CLI subcommand — reconnects every configured server whose status is failed or disconnected.
  2. /mcp reconnect-all slash command variant — same behavior from inside a session, no restart needed.
  3. Optional: a SessionStart hook event exposing disconnected servers so users can script their own retry.

Why it matters: The current auto-reconnect (5 attempts with backoff) gives up permanently after failure. Once servers are in the
failed state, only manual /mcp clicks recover them — and that scales linearly with server count. For users with many MCPs (Atlassian,
GitHub, Gerrit, Snowflake, Redash, Figma, Rootly, etc.), a single transient network issue means a dozen manual reconnects.

Workaround today: Restart the whole Claude Code session, which loses conversation state.

Environment Info

  • Platform: darwin
  • Terminal: androidstudio
  • Version: 2.1.114
  • Feedback ID: ccc42caa-2499-48af-842b-d9bd3808d9db

Errors

[{"error":"Error: Was there a typo in the url or port?\n    at from (/$bunfs/root/src/entrypoints/cli.js:107:7862)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:115:12925)\n    at emitError (node:events:43:23)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:114:1149)\n    at emitError (node:events:43:23)\n    at <anonymous> (node:_http_client:253:22)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:117:2467)\n    at async MlH (/$bunfs/root/src/entrypoints/cli.js:253:275865)\n    at async xE6 (/$bunfs/root/src/entrypoints/cli.js:406:3883)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-20T21:59:22.005Z"},{"error":"Error: ECONNREFUSED\n    at from (/$bunfs/root/src/entrypoints/cli.js:107:7862)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:115:12925)\n    at emitError (node:events:43:23)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:114:1149)\n    at emitError (node:events:43:23)\n    at <anonymous> (node:_http_client:253:22)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:117:2467)\n    at async MlH (/$bunfs/root/src/entrypoints/cli.js:253:275865)\n    at async xE6 (/$bunfs/root/src/entrypoints/cli.js:406:3883)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-20T21:59:23.310Z"},{"error":"Error: Was there a typo in the url or port?\n    at from (/$bunfs/root/src/entrypoints/cli.js:107:7862)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:115:12925)\n    at emitError (node:events:43:23)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:114:1149)\n    at emitError (node:events:43:23)\n    at <anonymous> (node:_http_client:253:22)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:117:2467)\n    at async MlH (/$bunfs/root/src/entrypoints/cli.js:253:275865)\n    at async xE6 (/$bunfs/root/src/entrypoints/cli.js:406:3883)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-20T21:59:25.538Z"},{"error":"Error: ECONNREFUSED\n    at from (/$bunfs/root/src/entrypoints/cli.js:107:7862)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:115:12925)\n    at emitError (node:events:43:23)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:114:1149)\n    at emitError (node:events:43:23)\n    at <anonymous> (node:_http_client:253:22)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:117:2467)\n   …

Note: Content was truncated.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗