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

  1. Run claude mcp list.
  2. Observe claude_design: https://api.anthropic.com/v1/design/mcp (HTTP) - ✘ Failed to connect.

Diagnosis

  • claude mcp get claude_designScope: Dynamic config (from command line).
  • The endpoint is reachable, not a network issue: curl https://api.anthropic.com/v1/design/mcp returns HTTP 401 in ~17ms.
  • The server is in no settings file; it is injected by the harness itself.
  • claude mcp remove "claude_design" -s dynamicCannot 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-design is 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗