Disabled SDK MCP servers still injected into every session's --mcp-config
Disabled SDK MCP servers still injected into every session's --mcp-config
Description
Claude.app injects SDK-type MCP servers (Claude in Chrome, Claude Preview, mcp-registry, scheduled-tasks, PDF Tools) into every Claude Code session's --mcp-config argument, even when the server is disabled in Desktop preferences. This causes hundreds of unnecessary child processes.
Steps to reproduce
- Open Claude Desktop preferences
- Disable "Claude in Chrome" (or any SDK-type MCP server)
- Open a Claude Code session
- Inspect the process command line:
ps aux | grep 'disclaimer.*--resume' | head -1 | sed 's/.*--mcp-config //' | sed 's/ --setting.*//'
Output shows the disabled server is still present:
{
"mcpServers": {
"Claude in Chrome": {"type": "sdk", "name": "Claude in Chrome"},
"mcp-registry": {"type": "sdk", "name": "mcp-registry"},
"Claude Preview": {"type": "sdk", "name": "Claude Preview"},
"PDF Tools - Fill, Analyze, Extract, View": {"type": "sdk", "name": "PDF Tools - Fill, Analyze, Extract, View"},
"scheduled-tasks": {"type": "sdk", "name": "scheduled-tasks"}
}
}
Impact
Each SDK server spawns child processes per session. With 8 active sessions:
| SDK Server | Process count |
|---|---|
| Claude in Chrome | 127 |
| Claude Preview | 127 |
| mcp-registry | 127 |
| scheduled-tasks | 127 |
| PDF Tools | 15 |
That's 523 unnecessary processes from SDK servers alone, many of which were explicitly disabled by the user. Combined with user-configured MCP servers (serena, context-lens, etc.) that also spawn per-session rather than shared, a typical workstation with several active sessions can easily reach 2,000-3,000 processes.
Expected behavior
- Disabled SDK servers should not appear in
--mcp-config - Ideally, SDK servers that don't need per-session state should be shared across sessions rather than spawned per-session
Environment
- Claude.app with Claude Code 2.1.78
- macOS 15.4 (Darwin 25.3.0)
- 8 concurrent sessions in Claude Desktop
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗