"Server disconnected" banner shown for routine idle/sleep MCP disconnects even when reconnection succeeds

Status Open
Reported on v2.1.222
Maintainer reply None cached
Activity 0 comments · opened Aug 10, 2026

Environment

  • Claude Desktop app (claude-code engine 2.1.222, agent-sdk/0.3.222)
  • macOS (Darwin 25.3.0, Apple Silicon)
  • MCP servers affected: a local stdio server, a local streamable-HTTP server (http://localhost:8799/mcp), and the remote Atlassian MCP (https://mcp.atlassian.com/v1/mcp) — i.e. all transports

Issue

Whenever the Mac sleeps or a session goes idle, the app tears down MCP connections (SIGINT for stdio children, aborting the SSE stream for HTTP). This is presumably intentional resource cleanup — the disconnects are logged as clean/AbortError, and the next tool call always reconnects successfully in 0.1–0.7s.

However, every one of these routine disconnects surfaces the warning banner:

⚠️ MCP databricks: Server disconnected. For troubleshooting guidance, please visit our debugging documentation

For a daily-driver setup this means the user sees a scary "Server disconnected" banner several times a day (every morning after wake, after lunch, etc.) even though nothing is actually broken. It's indistinguishable from a real failure (bad credentials, server crash), which trains users to ignore the banner — or, worse, to spend time debugging a healthy setup.

Log evidence (~/Library/Caches/claude-cli-nodejs/<project>/mcp-logs-*)

Idle teardown of an HTTP MCP connection, logged as a connection error:

{"debug":"HTTP connection closed after 420s (cleanly)","timestamp":"2026-08-10T10:14:52.706Z"}
{"debug":"Cleared connection cache for reconnection","timestamp":"2026-08-10T10:14:52.708Z"}
{"debug":"HTTP connection dropped after 420s uptime","timestamp":"2026-08-10T10:14:52.722Z"}
{"debug":"Connection error: SSE stream disconnected: AbortError: The operation was aborted.","timestamp":"2026-08-10T10:14:52.722Z"}
{"debug":"Terminal connection error 1/3","timestamp":"2026-08-10T10:14:52.722Z"}

The identical pattern occurs at the same second for the remote Atlassian MCP (so it is not specific to local servers):

{"debug":"Connection error: SSE stream disconnected: AbortError: The operation was aborted.","timestamp":"2026-08-10T10:14:52.721Z"}
{"debug":"Terminal connection error 1/3","timestamp":"2026-08-10T10:14:52.722Z"}

And the subsequent reconnect always succeeds immediately:

{"debug":"Successfully connected (transport: http) in 652ms","timestamp":"2026-08-10T21:25:14.518Z"}

Expected behavior

  • Don't show the "Server disconnected" banner for app-initiated idle/sleep teardowns (clean close / AbortError), or
  • Only show it after reconnection has actually been attempted and failed (e.g. after the 3/3 terminal errors, not 1/3), and
  • Ideally distinguish "idle — will reconnect on demand" from "server unreachable" in the UI.

Steps to reproduce

  1. Configure any MCP server (stdio or HTTP) in the desktop app.
  2. Use it once, then let the Mac sleep or leave the session idle for a while.
  3. Wake/return: the "Server disconnected" banner is shown, yet the next tool call reconnects and works fine.

View original on GitHub ↗