claude-code - 💡(How to fix) Fix [BUG] Cowork tab overwrites entire claude_desktop_config.json instead of merging, breaking MCP server configurations [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#56296Fetched 2026-05-06 06:31:53
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Author
Timeline (top)
labeled ×5commented ×1

Error Message

Error Messages/Logs

Fix Action

Fix / Workaround

On Windows (MSIX install of Claude Desktop), opening the Cowork tab overwrites the entire claude_desktop_config.json with only a preferences block. Any user-configured mcpServers entries — for example, the Docker MCP Toolkit MCP_DOCKER server with its required Windows env variables (ProgramData, LOCALAPPDATA, APPDATA, USERPROFILE, SystemRoot) — are deleted on every Cowork tab open. This makes Cowork incompatible with any user-maintained MCP server configuration unless an external workaround is in place. The issue compounds with an existing MSIX path-isolation problem: external tools like Docker MCP Toolkit look at %APPDATA%\Claude\claude_desktop_config.json, but the actual file lives in %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ due to Windows VFS redirection. Users have to set up symlinks/junctions to bridge these two paths, and the Cowork overwrite then destroys those carefully maintained configs every time the tab is opened.

Cowork should perform a partial update (merge) of claude_desktop_config.json, preserving mcpServers and any other top-level keys not owned by Cowork itself. Actual behavior: The entire file is replaced with { "preferences": { ... } }. Workaround currently in use:

Cowork should merge into the existing config rather than replace it. Document or solve the MSIX sandbox path issue for MCP integrations on Windows — either write config to a non-sandboxed location, or document the actual sandbox path so tools like Docker MCP Toolkit can find it without manual symlinks.

RAW_BUFFERClick to expand / collapse

Preflight Checklist

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

What's Wrong?

On Windows (MSIX install of Claude Desktop), opening the Cowork tab overwrites the entire claude_desktop_config.json with only a preferences block. Any user-configured mcpServers entries — for example, the Docker MCP Toolkit MCP_DOCKER server with its required Windows env variables (ProgramData, LOCALAPPDATA, APPDATA, USERPROFILE, SystemRoot) — are deleted on every Cowork tab open. This makes Cowork incompatible with any user-maintained MCP server configuration unless an external workaround is in place. The issue compounds with an existing MSIX path-isolation problem: external tools like Docker MCP Toolkit look at %APPDATA%\Claude\claude_desktop_config.json, but the actual file lives in %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ due to Windows VFS redirection. Users have to set up symlinks/junctions to bridge these two paths, and the Cowork overwrite then destroys those carefully maintained configs every time the tab is opened.

What Should Happen?

Cowork should perform a partial update (merge) of claude_desktop_config.json, preserving mcpServers and any other top-level keys not owned by Cowork itself. Actual behavior: The entire file is replaced with { "preferences": { ... } }. Workaround currently in use:

Real config maintained at %APPDATA%\Claude\claude_desktop_config.json File-level symlink from sandbox path → real path, so Cowork's overwrite hits the real file Real file restored manually after each overwrite (fragile, unsustainable)

Suggested fixes:

Cowork should merge into the existing config rather than replace it. Document or solve the MSIX sandbox path issue for MCP integrations on Windows — either write config to a non-sandboxed location, or document the actual sandbox path so tools like Docker MCP Toolkit can find it without manual symlinks.

Error Messages/Logs

Steps to Reproduce

Install Claude Desktop on Windows via the MSIX installer from claude.ai/download. Manually populate claude_desktop_config.json (in either the sandbox path or via symlink at %APPDATA%\Claude) with a valid Docker MCP Toolkit config:

json { "mcpServers": { "MCP_DOCKER": { "command": "C:\Program Files\Docker\cli-plugins\docker-mcp.exe", "args": ["gateway", "run"], "env": { "ProgramData": "C:\ProgramData", "LOCALAPPDATA": "C:\Users\USERNAME\AppData\Local", "APPDATA": "C:\Users\USERNAME\AppData\Roaming", "USERPROFILE": "C:\Users\USERNAME", "SystemRoot": "C:\Windows" } } } }

Restart Claude Desktop and confirm the MCP server loads correctly. Open the Cowork tab. Inspect claude_desktop_config.json — mcpServers is gone; only a preferences block remains.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.116

Platform

Other

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Environment

Platform: Claude Desktop (Windows MSIX) OS: Windows 11 Claude Desktop Version: Claude 1.5354.0 (9a9e3d) 2026-04-29T01:14:34.000Z Subscription: Pro Related context: Docker Desktop with MCP Toolkit enabled

Related Issues

#51143 — Persistent blank/white screen on Windows #28353 — Permanent launch failure after blank screen crash #49551 — Claude Desktop blank, requires Task Manager #54011 — Cowork sandbox issues docker/mcp-gateway#424 — Windows env var requirements for Docker MCP Toolkit

extent analysis

TL;DR

The issue can be fixed by modifying the Cowork tab to perform a partial update (merge) of the claude_desktop_config.json file, preserving existing mcpServers and other top-level keys.

Guidance

  • Verify that the claude_desktop_config.json file is being overwritten by the Cowork tab by checking the file's contents before and after opening the tab.
  • To mitigate the issue, create a file-level symlink from the sandbox path to a non-sandboxed location, such as %APPDATA%\Claude\claude_desktop_config.json, to preserve the original configuration.
  • Consider documenting the actual sandbox path used by the MSIX installer so that tools like Docker MCP Toolkit can find the configuration file without manual symlinks.
  • Test the suggested fix by modifying the Cowork tab to merge into the existing config rather than replacing it, and verify that the mcpServers and other top-level keys are preserved.

Example

No code snippet is provided as the issue is related to the behavior of the Cowork tab and the MSIX installer, rather than a specific code snippet.

Notes

The issue is specific to the Windows MSIX installer and the Cowork tab, and may not apply to other platforms or configurations. The suggested fix may require modifications to the Cowork tab's behavior or the MSIX installer's configuration.

Recommendation

Apply a workaround by creating a file-level symlink from the sandbox path to a non-sandboxed location, such as %APPDATA%\Claude\claude_desktop_config.json, to preserve the original configuration. This will allow users to maintain their custom mcpServers configurations until a permanent fix is implemented.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING