Not in enabled_plugins
Plugin must be listed in org/team enabled_plugins or additional_plugins.
# Audit all installed pluginsscc audit plugins
# Check for blocked pluginsscc config explain --field blocked_items
# Check governance statusscc config explainThe scc audit plugins command checks plugin manifests and reports issues.
Symptom: Audit shows “malformed” with line/column number.
⚠ my-plugin@marketplace .mcp.json: malformed (line 15, col 8: Expected ',' but found '}')Cause: Invalid JSON syntax in manifest file.
Fix:
Locate the plugin directory
# Plugins are installed at:ls ~/.claude/plugins/Find and fix the syntax error
# Check the manifest filecat ~/.claude/plugins/my-plugin/.mcp.json
# Use a JSON validatorcat ~/.claude/plugins/my-plugin/.mcp.json | python -m json.toolCommon JSON errors:
Symptom: Audit shows “unreadable” with permission error.
⚠ my-plugin@marketplace hooks/hooks.json: unreadable (Permission denied)Cause: File permissions prevent reading the manifest.
Fix:
# Check permissionsls -la ~/.claude/plugins/my-plugin/
# Fix permissionschmod -R u+r ~/.claude/plugins/my-plugin/Symptom: scc audit plugins shows empty list.
Cause: No plugins installed or registry file missing.
Check:
# Check plugin registrycat ~/.claude/plugins/installed_plugins.json
# Check if plugins directory existsls -la ~/.claude/plugins/Fix: Install plugins through your organization config or Claude Code.
Symptom: scc audit plugins exits with code 1 in CI.
Cause: One or more plugins have malformed or unreadable manifests.
Exit codes:
0 — All plugins OK (or no plugins installed)1 — One or more plugins have problemsFix for CI:
# Run audit with JSON output for parsingscc audit plugins --json
# In CI script, check specific plugins:scc audit plugins --json | jq '.plugins[] | select(.status_summary == "malformed")'Each plugin can have two manifest files:
| File | Purpose |
|---|---|
.mcp.json | MCP server declarations |
hooks/hooks.json | Hook definitions |
{ "mcpServers": { "my-server": { "command": "node", "args": ["server.js"], "description": "My MCP server" } }}{ "hooks": { "PreToolUse": [ { "type": "command", "command": "./scripts/check.sh" } ] }}Symptom: Plugin doesn’t appear in effective config despite being installed.
Diagnose:
# Check blocked patternsscc config explain --field blocked_items
# See which plugins are blockedscc config explain | grep -A5 "blocked_plugins"Common causes:
| Pattern | What it blocks |
|---|---|
*experimental* | Any plugin with “experimental” in name |
*beta* | Any plugin with “beta” in name |
*@untrusted | All plugins from “untrusted” marketplace |
Fix options:
scc unblock my-plugin@marketplace --reason "Approved use case"Symptom: Plugin installed but not available in Claude Code session.
Check effective config:
scc start --dry-run --json | jq '.plugins'Common causes:
Not in enabled_plugins
Plugin must be listed in org/team enabled_plugins or additional_plugins.
Blocked by pattern
Plugin matches a blocked_plugins pattern in security config.
Delegation denied
Team config doesn’t allow project to add this plugin.
Wrong marketplace
Plugin marketplace not defined in org config.
Debug with dry-run:
# See full effective configscc start --dry-run --json --pretty
# Check specific fieldsscc config explain --field pluginsscc config explain --field denied_additionsClaude Code stores plugin information at:
~/.claude/├── plugins/│ ├── installed_plugins.json # Registry of installed plugins│ ├── my-plugin/ # Plugin directory│ │ ├── .mcp.json # MCP server declarations│ │ └── hooks/│ │ └── hooks.json # Hook definitions│ └── another-plugin/│ └── ...