Plugin-bundled MCP servers should be opt-in, not fail-loudly on every startup
Problem
Installing Anthropic's official plugins (financial-analysis, operations, legal, productivity, etc.) bundles MCP server declarations for third-party services (Slack, Gmail, FactSet, Morningstar, Notion, etc.) via .mcp.json files in the plugin cache. These connectors attempt to connect on every session startup and produce errors for every service the user hasn't authenticated with.
In practice, no user has subscriptions to every bundled service. Installing the financial-analysis plugin for its skills gets you 11 MCP connectors (Daloopa, Morningstar, S&P Global, FactSet, Moody's, MT Newswires, Aiera, LSEG, PitchBook, Chronograph, Egnyte). Installing operations gets you 8 more (Slack, Google Calendar, Gmail, Notion, Atlassian, Asana, ServiceNow, MS365). Across 9 installed plugins, I have 28 MCP server declarations — none of which I've set up — producing errors on every single terminal startup.
Reproduction
- Install any Anthropic plugin that bundles MCP servers:
````
/plugin marketplace add anthropics/knowledge-work-plugins
/plugin install operations@knowledge-work-plugins
- Open a new Claude Code session
- Observe:
X MCP servers failedandY MCP servers need autherrors on every startup
claude mcp list output shows all 28 plugin-bundled servers failing:
plugin:financial-analysis:daloopa: https://mcp.daloopa.com/server/mcp (HTTP) - ! Needs authentication
plugin:financial-analysis:pitchbook: https://premium.mcp.pitchbook.com/mcp (HTTP) - ✗ Failed to connect
plugin:operations:slack: https://mcp.slack.com/mcp (HTTP) - ✗ Failed to connect
plugin:operations:gmail: https://gmail.mcp.claude.com/mcp (HTTP) - ! Needs authentication
... (28 total)
What doesn't work
disabledMcpjsonServersin~/.claude.json— Populated the array with all 28 server names in the project-scoped config. Servers still connect at startup. (Related: #13311, closed "not planned")- Plugin disable in
settings.json— Setting a plugin tofalseis syntactically recognized but does not prevent its MCP servers from launching (#20873) - Editing
.mcp.jsonin plugin cache — Works temporarily but overwritten on every plugin update. Not sustainable. claude mcp remove— Only works for user-added servers, not plugin-bundled ones.
Why this is different from prior issues
#17921, #20873, and #30595 address user-configured MCP servers. This is about plugin-bundled MCP servers the user never asked for. The user installed a skill plugin; the MCP connectors came as unwanted baggage. There is no way to get the skills without the connectors, and no way to suppress the connectors without removing the plugin entirely.
Proposed solution
Plugin-bundled MCP servers should be opt-in, not opt-out. Suggested approaches (any would work):
- Don't attempt connection until authentication is configured. If a plugin MCP server has never been authenticated, skip it at startup silently. Only attempt connection after the user explicitly runs the authenticate command (e.g.,
/financial-analysis:factset:authenticate).
claude mcp disable <name>— A persistent, CLI-accessible disable that survives session restarts and plugin updates. Writes to user config, not plugin cache.
- Plugin-level MCP opt-in — When installing a plugin, don't auto-enable its MCP servers. Let users enable specific connectors via
/mcporclaude mcp enable.
Environment
- Claude Code v2.1.90
- Windows 11 Pro
- 9 Anthropic plugins installed (financial-analysis, investment-banking, private-equity, operations, finance, productivity, enterprise-search, legal, human-resources)
- 28 plugin-bundled MCP servers, 0 authenticated
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗