[Bug] Plugin sync fails to extract scripts directory from bundle, breaking local MCP servers

Resolved 💬 3 comments Opened Apr 17, 2026 by courtland-dot Closed Apr 21, 2026

Bug Description
Cowork plugin sync wipes local MCP server scripts, causing crash loop
After any organizational plugin update/sync, local MCP servers stop working with MCP error -32000: Connection closed.
The .plugin bundle correctly includes the scripts/ directory, but after a sync ~/.claude/plugins/[plugin-id]/scripts/ is never populated from the bundle. Node MCP servers defined in .mcp.json with "command": "node" crash immediately with MODULE_NOT_FOUND.
Confirmed by:

~/.claude/plugins/plugin_01KNSPPM3nQVC8moKwdXyuDr/ is completely missing after reinstall
unzip -l ask-reggie.plugin shows scripts are present in the bundle
Manually copying scripts into ~/.claude/plugins/[plugin-id]/scripts/ resolves the issue immediately

Reproduce: install any org plugin with local node MCP servers → push a repo update → sync wipes the directory → all MCP tools enter crash loop.
Workaround: manually extract scripts from bundle to ~/.claude/plugins/[plugin-id]/scripts/ after every sync.

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.1.112
  • Feedback ID: 1ef43758-70ef-49eb-8c9f-3c7dd2d9eb0a

Errors

[{"error":"Error: Failed to delete keychain entry: security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.\n    at mAq (/$bunfs/root/src/entrypoints/cli.js:253:283569)\n    at async Nuq (/$bunfs/root/src/entrypoints/cli.js:406:898)\n    at async gS6 (/$bunfs/root/src/entrypoints/cli.js:406:796)\n    at async m8_ (/$bunfs/root/src/entrypoints/cli.js:2724:2084)\n    at async cjH (/$bunfs/root/src/entrypoints/cli.js:2749:5698)\n    at async <anonymous> (/$bunfs/root/src/entrypoints/cli.js:2773:3363)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-17T19:36:38.733Z"}]

View original on GitHub ↗

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