reconcileServers drops [plugins] MCP servers when SkillsPlugin triggers config write on window focus

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 8, 2026

Description

When Claude Desktop is idle for an extended period and then receives window focus, the SkillsPlugin polling triggers a config file write (when delta > 0). This causes reconcileServers to rebuild the active MCP server list — but the rebuilt list drops the [plugins] category entirely, disconnecting all user-installed plugin MCP servers.

Steps to reproduce

  1. Install a plugin with an MCP server (e.g. a marketplace plugin via /plugin install)
  2. Leave Claude Desktop idle for several hours (16+ h confirmed; shorter idle may also trigger)
  3. Focus the Claude Desktop window
  4. Observe: plugin MCP server disconnects

Expected behavior

reconcileServers should preserve the [plugins] category when rebuilding the active server list, or SkillsPlugin sync should not trigger a full server list rebuild.

Actual behavior

Log sequence (from %APPDATA%\Claude\logs\main.log):

[SkillsPlugin] Window focused — polling now (last poll 59845470ms ago)
[SkillsPlugin] Delta: 2 to download
← config file written
[CCD] Passing 3 plugin(s) to SDK (skills: 1, remote: 0, local: 2)  ✓
replaceEnabledMcpTools: toolCount=105  ✓  (plugin present)
[reconcileServers] deleted=[plugins] created=[9 internal servers only]  ✗
replaceEnabledMcpTools: Calling SDK with 9 total servers  ✗  (plugin gone)

The plugin MCP server is passed to the SDK correctly at [CCD] Passing 3 plugin(s), but reconcileServers immediately overwrites this with a list that excludes [plugins].

Impact

  • Plugin MCP server is silently disconnected mid-session
  • UI shows "manage" instead of "add" (plugin registered but not active)
  • Neither opening a new conversation nor restarting the app reliably restores the connection
  • Only reproducible trigger: window focus after long idle + skills delta > 0

Environment

  • Claude Desktop (Windows 11)
  • Plugin installed via /plugin install from a private marketplace
  • Confirmed via log timestamp correlation: 2026-08-08

View original on GitHub ↗