[FEATURE] Persistent user-level MCP configurations (enable/disable)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
MCP servers installed at user level are enabled by default across all projects.
Proposed Solution
Add user level MCP config to the top of ~/.claude.json that allows user to configure persistent enable/disable MCP preferences via /mcp command.
Alternative Solutions
No response
Priority
Medium - Would be very helpful
Feature Category
MCP server integration
Use Case Example
No response
Additional Context
No response
Found 3 possible duplicate issues:
- https://github.com/anthropics/claude-code/issues/10447
- https://github.com/anthropics/claude-code/issues/6309
- https://github.com/anthropics/claude-code/issues/4256
This issue will be automatically closed as a duplicate in 3 days.
- If your issue is a duplicate, please close it and 👍 the existing issue instead
- To prevent auto-closure, add a comment or 👎 this comment
🤖 Generated with Claude Code
Hey, this should already be working. Did you add it to the user scope?
Hey, this should already be working. Did you add it to the user scope?
Thanks Ollie. Yes, most of my servers are user scope.
I don't see any fields for persistent enable/disable decisions that apply to ALL projects. Am I missing something embarrassingly obvious?
For clarity, I'm not saying there's a persistence issue for MCP settings on a single project (e.g., I'm aware that enable/disable decisions for user scope MCP servers are persistently captured in ~/.Claude.json for each PROJECT). I just haven't found a way to avoid having to disable MCP servers using @ command at the beginning of a NEW project, where all MCP servers are enabled by default.
If it doesn't already exist, I'm suggesting an additional layer of "template" settings at a user level that apply to any new project (e.g., project should have MCP enable/disable configs baked into it on first start), but which is overridden by any subsequent changes to MCP enable/disable settings made in the TUI.
I've built a modular plugin architecture with separate plugins for different concerns (general, web-dev, project-mgmt), and the inability to set global MCP defaults creates significant friction.
Measured Token Impact
Here's the actual token consumption from my setup:
With all MCP servers enabled:
- Total MCP tools: 62.8k tokens (31.4% of 200k context window)
- GitHub MCP: ~30k tokens (15%)
- Linear MCP: ~18k tokens (9%)
- Playwright MCP: ~13k tokens (6.5%)
- Context7 MCP: ~1.7k tokens (0.8%)
After disabling web-dev and project-mgmt plugins:
- Total MCP tools: 31.7k tokens (15.8%)
- Savings: 31k tokens (15.6% of context window)
Even with just Context7 and GitHub enabled (my "general" plugin), I'm still consuming 31.7k tokens - and this is per-project overhead.
Current Workflow Problem
What I have to do now (tedious):
# Every time I open a new project:
/mcp # Disable GitHub
/mcp # Disable Context7
# Repeat for every new project...
What I want to do (efficient):
# Once: Set global defaults
claude mcp set-default plugin:general:github disabled
claude mcp set-default plugin:general:context7 disabled
# Per-project: Enable only where needed
cd ~/my-github-project
claude mcp enable plugin:general:github
Plugin Architecture
I've organized MCP servers into domain-specific plugins:
- general@personal - Core tools (Context7, GitHub)
- web-dev@personal - Browser automation (Playwright)
- project-mgmt@personal - Issue tracking (Linear)
This modular approach only works well if I can:
- Have MCP servers disabled by default globally
- Enable specific plugins/servers per-project as needed
- Not have to repeat this configuration for every new project
Why This Matters
The current "enabled by default" behavior forces this choice:
- Option A: Accept 30%+ context overhead in every project (wasteful)
- Option B: Manually disable in every new project (tedious)
Neither is acceptable for a good developer experience.
Proposed Solution Alignment
The proposed solution in this issue (user-level MCP config in ~/.claude.json) would perfectly solve this:
{
"mcpServerDefaults": {
"plugin:general:github": "disabled",
"plugin:general:context7": "disabled"
}
}
Then new projects inherit these defaults, and I can selectively enable per-project with /mcp enable.
Use Case
I primarily work on dotfile management (chezmoi), data analysis (Python/Jupyter), and occasional web projects. I only need:
- GitHub MCP: When working on repositories that use GitHub (not all projects)
- Context7 MCP: When I need to look up documentation (sporadic)
- Playwright MCP: Only for web scraping/testing projects (~10% of my work)
- Linear MCP: Only when managing project tracking
Having all of these enabled by default in every project wastes ~30% of my context window on tools I'm not using.
+1 for this feature request! Happy to provide more data or help test if needed.
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
@ollie-anthropic any thoughts on this? Would allow a lot of user creativity around proxy mcp servers, which could free up context.
Bump on this since I am also seeing the same behavior on new projects. Disable them in new projects, then enable ones i want for that specific project using /mcp
+1 for this feature. Currently have 10 MCP servers configured globally and need to manually disable them in each new project. A mcpServerDefaults or similar global disable option would save significant context tokens and improve workflow.
Current workaround is tedious: /mcp disable for each server in every new project session.
You can write wrapper scripts and the use the --mcp-config flag to switch in different collections of MCPs
I'm moving to using their new skills feature to save on context but allow access to all capabilities now rather than juggling MCPs
On Thu, 25 Dec 2025 at 13:39, Nas&Nora @.***> wrote:
NasAndNora left a comment (anthropics/claude-code#11085) https://github.com/anthropics/claude-code/issues/11085#issuecomment-3691452477
+1 for this feature. Currently have 10 MCP servers configured globally and need to manually disable them in each new project. A mcpServerDefaults or similar global disable option would save significant context tokens and improve workflow.
Current workaround is tedious: /mcp disable for each server in every new project session.
— Reply to this email directly, view it on GitHub https://github.com/anthropics/claude-code/issues/11085#issuecomment-3691452477, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAU6PP2UQ5DZS374CKI7234DPSH3AVCNFSM6AAAAACLIOQJ36VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMOJRGQ2TENBXG4 . You are receiving this because you are subscribed to this thread.Message ID: @.***>