Appearance
SEC400 / CLAUDE-ENABLED-MCPJSON-SERVERS
SEC400 flags shared Claude settings when enabledMcpjsonServers is pre-populated.
Why It Matters
enabledMcpjsonServers moves MCP server enablement into shared committed config. That shifts a trust and approval decision into team defaults, making external server activation easier to cargo-cult without local review.
Trigger Shape
The rule triggers only when all of these are true:
- the file is a detected Claude settings surface
- the path is not fixture-like
enabledMcpjsonServersis a non-empty array- or
enabledMcpjsonServersis a non-empty string
Clean Cases
These stay clean:
enabledMcpjsonServers: []- settings files that omit
enabledMcpjsonServers - fixture-like examples under test or fixture paths
Example Trigger
json
{
"enabledMcpjsonServers": ["claude-flow", "ruv-swarm"]
}Safer Example
json
{
"enabledMcpjsonServers": []
}How To Fix
Remove shared enabledMcpjsonServers defaults, or keep MCP server enablement as a locally reviewed opt-in step.