[BUG] Account connector sync overwrites claude_desktop_config.json, wiping manually-added MCP servers and re-adding removed ones
What's Wrong?
On macOS Claude Desktop with account-synced MCP connectors enabled (the tengu_claudeai_mcp_connectors flag is true), the app periodically rewrites the entire mcpServers block in ~/Library/Application Support/Claude/claude_desktop_config.json to match the account's connector set. As a result it:
- Silently deletes stdio MCP servers that were added by hand to that file.
- Re-adds a connector entry that the user had removed (it reappears on the next sync).
This happens both on a short timescale (within minutes, with no restart) and across app restarts. The same file also stores local-only preferences (preferences.epitaxyPrefs, e.g. sidebar/session groupings), so a full-block rewrite also risks clobbering unrelated local state.
The only reliable workaround I found was making the file immutable (chflags uchg), after which the sync's write fails with EPERM and the local file stays correct — but that also blocks the app from making any legitimate updates to the file.
What Should Happen?
Manually-added stdio MCP servers in claude_desktop_config.json should be preserved across connector syncs (merge rather than overwrite), and a connector the user removed should not be re-added. Account-synced connectors and user-managed local config/preferences should not overwrite each other.
Error Messages/Logs
(no in-app error; observed by the mcpServers block repeatedly reverting to the account-managed set)
Steps to Reproduce
- macOS Claude Desktop with account MCP connectors enabled.
- Open
~/Library/Application Support/Claude/claude_desktop_config.jsonand, undermcpServers, add a custom stdio server (e.g. annpx mcp-remote …bridge) and delete an existing connector's entry. Save. - Wait a few minutes, or quit and reopen the app.
- Observe that
mcpServershas been rewritten back to the account's connector set: the manually-added server is gone and the removed entry has returned.
Regression?
I don't know
Claude Code Version
~2.1.156 (Claude Desktop, integrated Claude Code)
Platform
Anthropic API
Operating System
macOS (Apple Silicon)
Terminal/Shell
Other (Claude Desktop integrated environment)
Additional Information
Likely related to the closed issue anthropics/claude-ai-mcp#73 ("No way to remove custom MCP connectors from claude.ai UI") — an un-removable connector is what keeps getting re-synced into the local file. Co-locating account-synced connectors and local epitaxyPrefs in the same file makes the overwrite higher-impact.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗