Built-in design MCP (claude_design) auto-injected and 401s even when frontend-design plugin is disabled
Open 💬 2 comments Opened Jun 18, 2026 by paulforster1000
Summary
Claude Code injects a dynamic-scope MCP server claude_design (https://api.anthropic.com/v1/design/mcp) at launch. On my account it fails its connection handshake with HTTP 401, surfacing a "Failed to connect" dialog every session. It is injected even though the frontend-design plugin is explicitly disabled in my settings, and because its scope is dynamic it cannot be removed via config.
Environment
- Claude Code: 2.1.181
- Platform: macOS (Darwin 25.5.0)
Steps to reproduce
- Run
claude mcp list. - Observe
claude_design: https://api.anthropic.com/v1/design/mcp (HTTP) - ✘ Failed to connect.
Diagnosis
claude mcp get claude_design→Scope: Dynamic config (from command line).- The endpoint is reachable, not a network issue:
curl https://api.anthropic.com/v1/design/mcpreturns HTTP 401 in ~17ms. - The server is in no settings file; it is injected by the harness itself.
claude mcp remove "claude_design" -s dynamic→Cannot remove MCP server from scope: dynamic.- In
settings.json,"frontend-design@claude-plugins-official": false— the related plugin is already disabled, yet the design server is still injected.
Expected
Either:
- The design MCP server is not injected when the account lacks the entitlement / when
frontend-designis disabled, or - The 401 is handled silently instead of raising a "Failed to connect" dialog, or
- There is a documented setting to opt out.
Actual
A 401-ing dynamic server is injected unconditionally and reported as a failed connection with no config-level way to suppress it.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗