[BUG] Account connector sync overwrites claude_desktop_config.json, wiping manually-added MCP servers and re-adding removed ones

Resolved 💬 2 comments Opened May 29, 2026 by BKF-Gitty Closed Jun 1, 2026

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

  1. macOS Claude Desktop with account MCP connectors enabled.
  2. Open ~/Library/Application Support/Claude/claude_desktop_config.json and, under mcpServers, add a custom stdio server (e.g. an npx mcp-remote … bridge) and delete an existing connector's entry. Save.
  3. Wait a few minutes, or quit and reopen the app.
  4. Observe that mcpServers has 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.

View original on GitHub ↗

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