[BUG] Claude Desktop on Windows: Quit takes 10+ seconds with multiple MCP servers configured

Resolved 💬 3 comments Opened Mar 3, 2026 by kimseokho1226 Closed Mar 6, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When quitting Claude Desktop via System Tray → Right-click → Quit, the application takes 10+ seconds to fully terminate. During this delay, the system tray icon remains visible and the process continues running in Task Manager.

This issue appears to be caused by the sequential MCP server shutdown process (onQuitCleanup: mcp-shutdown), where each configured MCP server is shut down one at a time. With 5 MCP servers configured (web-search, law-info, nh-coop, ssh-synology, desktop-commander), the cumulative shutdown time becomes noticeably long.

Environment:

  • Platform: Windows 11
  • Claude Desktop version: 1.1.4498 (24f768)
  • MCP servers configured: 5 servers

Based on related issues (#14951, #15368, #15423, #16088), the quit lifecycle follows this path:
beforeQuit → onQuitCleanup (mcp-shutdown, quick-entry-cleanup, prototype-cleanup) → readyForQuit → willQuit

The mcp-shutdown phase sequentially terminates each MCP server process. With multiple servers (especially those using stdio transport spawning child processes like Node.js or Python), this becomes a bottleneck.

What Should Happen?

  • Quit should complete within 1-2 seconds
  • MCP servers should be shut down in parallel (Promise.all()), not sequentially
  • If an MCP server fails to respond, a short timeout (e.g., 2-3 seconds) should force-kill it rather than waiting indefinitely
  • A brief "Shutting down..." notification should be shown so users know the app is closing
  • If MCP shutdown exceeds 5 seconds total, force-terminate all child processes and exit

Error Messages/Logs

No error messages displayed. The quit process simply takes 10+ seconds to complete. No crash or hang - just abnormally slow termination.

Steps to Reproduce

  1. Configure multiple MCP servers in claude_desktop_config.json (5+ servers)
  2. Launch Claude Desktop
  3. Wait for all MCP servers to connect successfully
  4. Right-click system tray icon → Quit
  5. Observe that it takes 10+ seconds before the app fully terminates
  6. During the delay, the system tray icon remains visible and Claude processes remain in Task Manager

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

Claude Desktop 1.1.4498 (24f768) — Not Claude Code CLI

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Note: This is a Claude Desktop app issue, not Claude Code CLI. Filed here as Claude Desktop bugs are tracked in this repository.

Suggested Improvements

  1. Parallel MCP shutdown: Shut down all MCP servers concurrently using Promise.all() instead of sequential awaits
  2. Aggressive timeout: Apply a 2-3 second hard timeout per server, then SIGKILL / taskkill /F any remaining processes
  3. Progress indication: Show a brief "Shutting down..." notification so users know the app is closing
  4. Graceful degradation: If MCP shutdown exceeds 5 seconds total, force-terminate all child processes and exit

Workaround

After quitting, force-kill remaining processes via PowerShell:

Get-Process -Name "Claude" -ErrorAction SilentlyContinue | Stop-Process -Force

Related Issues

  • #14951 — Claude Desktop macOS requires quitting twice
  • #15368 — Claude Desktop not exiting (Windows)
  • #15423 — Orphaned renderer processes after quit (Windows)
  • #16088 — Claude Desktop hangs on quit (macOS, MCP-related)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗