disableSideloadFlags: true in managed settings does not reject --mcp-config (v2.1.228 / v2.1.231, macOS)
Environment: macOS, Claude Code v2.1.228 and v2.1.231 (reproduced on both), managed settings at /Library/Application Support/ClaudeCode/managed-settings.json.
Expected: Per the settings schema, disableSideloadFlags: true "rejects the --plugin-dir, --plugin-url, --agents, and non-sdk --mcp-config CLI flags at startup" (requires v2.1.193+).
Actual: With "disableSideloadFlags": true in managed settings, --mcp-config is accepted and the session starts normally:
$ claude -p "ok" --mcp-config /tmp/mcp-test.json
Ready — what would you like to work on?
$ claude --mcp-config /tmp/mcp-test.json
(interactive session opens normally after folder-trust prompt)
/tmp/mcp-test.json is a valid {"mcpServers":{}} file.
Managed settings are definitely loaded: in the same terminal and session, other keys from the same file are enforced — permissions.defaultMode (session starts in manual mode), disableSkillShellExecution (inline ` !... shows "blocked by policy"), strictKnownMarketplaces (non-listed marketplace add rejected before download), extraKnownMarketplaces` (auto-registration works).
Two ordering observations that may help locate the check: with a nonexistent path, "MCP config file not found" is returned before any flag-policy rejection; when logged out, "Not logged in" is returned first. So file validation and auth run before the sideload-flag gate — and the gate then never fires.
Impact: marketplace allowlisting (strictKnownMarketplaces) and plugin-only customization can be bypassed with a single CLI flag, which is exactly what this key is documented to close.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗