Plugin-bundled MCP servers (.mcp.json) silently ignored when allowedMcpServers is configured in managed-settings.json

Resolved 💬 4 comments Opened Mar 10, 2026 by ryan-niemes-helix Closed Apr 8, 2026

Summary

When allowedMcpServers is configured in managed-settings.json, plugin-bundled MCP servers defined in a plugin's .mcp.json are completely silently ignored — they are never started, and there is no log message indicating they were blocked.

Steps to Reproduce

  1. Configure allowedMcpServers in /Library/Application Support/ClaudeCode/managed-settings.json
  2. Install a plugin that bundles an MCP server via .mcp.json (e.g., context7 from claude-plugins-official)
  3. Start Claude Code with --debug

Expected Behavior

The plugin's MCP server should either:

  • Start successfully if it matches an entry in allowedMcpServers
  • Log a clear message that it was blocked by the allowlist

Actual Behavior

The plugin is recognized as enabled, but its .mcp.json is never processed. No MCP server is started. No log message indicates it was blocked. The debug log shows:

[DEBUG] Loading plugin context7 from source: "./external_plugins/context7"
[DEBUG] Found 1 plugins (1 enabled, 0 disabled)
[DEBUG] Checking plugin context7: skillsPath=none, skillsPaths=0 paths
[DEBUG] Total plugin skills loaded: 0
[DEBUG] Total plugin commands loaded: 0

Notice: no attempt to start or register the MCP server from .mcp.json.

Without allowedMcpServers, the server starts correctly:

[DEBUG] MCP server "plugin:context7:context7": Starting connection with timeout of 30000ms
[DEBUG] MCP server "plugin:context7:context7": Successfully connected...

Environment

  • Claude Code version: 2.1.58
  • macOS Darwin 25.3.0
  • Plugin: context7@claude-plugins-official

Workaround

Remove allowedMcpServers from managed-settings.json entirely (not acceptable for enterprise/managed environments).

Related

See also: companion issue — plugin MCP server names use colons which cannot be used in serverName allowlist entries.

View original on GitHub ↗

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