[BUG] Connector tool permissions (Always Allow) reset to default after every Claude Desktop upgrade
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Every time Claude Desktop auto-updates, the per-tool permission settings for all MCP connectors (set via the Connector UI → individual tool toggles → "Always Allow") are silently reset back to the default "Ask" state.
This forces users to manually re-open every connector, expand every tool, and re-set each tool to "Always Allow" after each update — which is particularly painful for users with many connectors and many tools.
The settings stored in ~/.claude/settings.json (the permissions.allow array) survive upgrades correctly. However, the per-tool permission state stored in the Electron app's IndexedDB (AppData\Roaming\Claude\IndexedDB\...) appears to be wiped or not migrated during upgrades.
What Should Happen?
Per-tool connector permissions set through the UI should persist across upgrades, matching the same persistence guarantee as ~/.claude/settings.json.
Error Messages/Logs
No error is shown. Tools silently revert to "Ask" permission state after upgrade.
Steps to Reproduce
- Add a local MCP server via
claude_desktop_config.json - Open Claude Desktop → Settings → Connectors → expand the connector → set each tool to "Always Allow"
- Allow Claude Desktop to auto-update to a newer version
- Re-open Settings → Connectors — all per-tool permissions have reset to "Ask"
- Repeat after every subsequent upgrade
Additional Impact: "This tool has been disabled in your connector settings"
A related and more severe regression occurs when the IndexedDB connector state becomes corrupted after repeated delete/re-add cycles (which users are forced to do as a workaround for other bugs). After the corruption, all tools from the affected connector return:
This tool has been disabled in your connector settings.
This error persists even when the UI shows the tools as "Always Allow", and survives:
- Deleting and re-adding the connector
- Restoring IndexedDB from backup
- Using
permissions.allow: ["mcp__<server>__*"]insettings.json
Workaround discovered: Renaming the connector key in claude_desktop_config.json to a new name forces creation of a fresh IndexedDB record, bypassing the corrupted state entirely.
Environment
- Claude Desktop: 2.1.128
- Claude Code CLI: 2.1.132
- OS: Windows 11
- Platform: Windows
Related Issues
- #39523 — [META] Bypass permissions mode is fundamentally broken (permissions not persisting)
- #42453 — Custom local MCP server tools disabled in Cowork and Claude Code
- #35436 — MCP tools blocked by PreToolUse:Callback hook
- #19731 — MCP Tool Permissions Not Persisting Between Chats
Suggested Fix
Persist per-tool connector permissions in ~/.claude/settings.json (or equivalent user-owned file) rather than solely in Electron's IndexedDB, so they survive upgrades and can be version-controlled or backed up by users.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗