Overview

Zenable - Clean Up Sloppy AI Code and Prevent AI-Created Security Vulnerabilities

Global Options

These options are available for all commands:
OptionDescription
--verboseEnable verbose output
--debugEnable debug output
-h, --helpShow help message

Commands

install

Install the Zenable integrations.
uvx zenable-mcp install [OPTIONS] COMMAND [ARGS]...
Note: The install command requires a subcommand (either mcp or hook).

Options

OptionDescription
--dry-runPreview what would be done without actually performing the installation
--recursiveInstall in all git repositories found below the current directory
-g, --globalInstall globally in user’s home directory instead of project directory
--include TEXTInclude only directories matching these glob patterns (e.g., '**/microservice-*')
--exclude TEXTExclude directories matching these glob patterns
--allInstall for all supported IDEs, even if not currently installed
-h, --helpShow help message

Subcommands

install mcp
Install Zenable MCP server configuration. Uses OAuth for secure authentication.
uvx zenable-mcp install mcp [OPTIONS] COMMAND [ARGS]...
Supported IDE commands:
  • all - Install MCP for all detected IDEs (default)
  • amazonq - Install MCP for Amazon Q Developer
  • claude - Install MCP for Claude Code
  • continue - Install MCP for the Continue IDE*
  • cursor - Install MCP for Cursor IDE
  • gemini - Install MCP for Gemini CLI
  • roo - Install MCP for Roo Code
  • vscode - Install MCP for Visual Studio Code
  • windsurf - Install MCP for Windsurf IDE
install hook
Install hooks for various tools.
uvx zenable-mcp install hook [OPTIONS] COMMAND [ARGS]...
Supported hook commands:
  • all - Install hooks for all supported tools
  • claude - Install Claude Code hooks
Options
OptionDescription
--dry-runPreview what would be done without actually performing the installation
--recursiveInstall in all git repositories found below the current directory
--include TEXTInclude only directories matching these glob patterns (e.g., '**/microservice-*')
--exclude TEXTExclude directories matching these glob patterns
-h, --helpShow help message

Examples

# Install MCP for all detected IDEs (default)
uvx zenable-mcp install mcp
uvx zenable-mcp install mcp all

# Install MCP globally for all detected IDEs
uvx zenable-mcp install mcp --global

# Install MCP for a specific IDE
uvx zenable-mcp install mcp cursor

# Preview what would be done without installing
uvx zenable-mcp install mcp --dry-run

# Install all hooks (default)
uvx zenable-mcp install hook

# Install Claude hook specifically with dry-run
uvx zenable-mcp install hook claude --dry-run

check

Check the provided files against your conformance tests.
uvx zenable-mcp check [OPTIONS] [PATTERNS]...
Automatically detects files from IDE context when no patterns are provided. Supports glob patterns like **/*.py to check all Python files recursively. Files are processed in batches of 5 for optimal performance.

Arguments

  • PATTERNS: Glob patterns for files to check (e.g., '**/*.py', 'src/**/*.js')
    • If no patterns are provided, we auto-detect the last edited file, subject to some filtering, and sends that. For filtering details use --verbose

Options

OptionDescription
--exclude TEXTPatterns to exclude from checking
--base-path DIRECTORYBase directory for pattern matching (defaults to current directory)
--branchCheck all files changed on the current branch compared to the base branch
--base-branch TEXTBase branch to compare against when using --branch (default: main)
--dry-runShow which files would be sent without actually checking them
-h, --helpShow help message

Examples

# Check a single file
uvx zenable-mcp check example.py

# Check all Python files recursively
uvx zenable-mcp check '**/*.py'

# Check multiple patterns
uvx zenable-mcp check 'src/**/*.js' 'tests/**/*.js'

# Exclude test files from checking
uvx zenable-mcp check '**/*.py' --exclude '**/test_*.py'

# Specify base directory for pattern matching
uvx zenable-mcp check '*.py' --base-path ./src

# Check all files changed on current branch compared to main
uvx zenable-mcp check --branch

# Check all files changed on current branch compared to develop
uvx zenable-mcp check --branch --base-branch develop

# Check only Python src files changed on current branch
uvx zenable-mcp check --branch '**/*.py' --exclude '**/test_*.py'

# Dry run to see which files would be checked
uvx zenable-mcp check '**/*.py' --dry-run

hook

Handle calls from the hooks of Agentic IDEs.
uvx zenable-mcp hook [OPTIONS]
This command is specifically designed for IDE integrations like Claude Code. It reads hook input from stdin, processes the files, and returns appropriate exit codes and formatted responses for the IDE to handle. To manually run a scan, use the ‘check’ command instead.

Options

OptionDescription
-h, --helpShow help message

logs

View zenable_mcp logs.
uvx zenable-mcp logs [OPTIONS]

Options

OptionDescription
-f, --followFollow log output (like tail -f)
-r, --rawShow raw log entries instead of just messages
-n, --lines INTEGERNumber of lines to show (from end of file, default: 50)
--clearClear the log file (cannot be used with other options)
-h, --helpShow help message

Examples

# View recent logs
uvx zenable-mcp logs

# Follow logs in real-time
uvx zenable-mcp logs --follow

# Show last 50 lines
uvx zenable-mcp logs -n 50

# Clear logs
uvx zenable-mcp logs --clear

version

Show the zenable-mcp version.
uvx zenable-mcp version [OPTIONS]

Options

OptionDescription
-h, --helpShow help message
Will also notify you if an update is available.

Configuration Files

MCP Server Configuration

The tool creates MCP server configuration in IDE-specific locations, appropriate for that individual IDE. For instance:
{
  "mcpServers": {
    "zenable": {
      "type": "sse",
      "url": "https://mcp.www.zenable.app/"
    }
  }
}

Hook Configuration (Claude Code)

Hooks are configured in Claude Code settings:
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "uvx zenable-mcp@latest hook"
          }
        ]
      }
    ]
  }
}

Exit Codes

CodeMeaning
0Success
2Conformance issues found
3Handler conflict
4No hook input
12No files specified
13No files found
14File read error
15Invalid parameters
16File write error
20API error
51Installation error
52Partial success
130User interrupt

File Patterns

Glob Pattern Examples

# All Python files recursively
'**/*.py'

# Multiple extensions
'**/*.{js,ts,jsx,tsx}'

# Specific directory
'src/**/*.py'

# All files in current directory
'*'

# All files recursively
'**/*'

# Specific depth
'*/*.py'  # One level deep
'*/*/*.py'  # Two levels deep

Common Exclusions

# Python
--exclude '**/{__pycache__,venv,.venv,migrations}/**'

# JavaScript/Node
--exclude '**/{node_modules,dist,build,.next}/**'

# General
--exclude '.git/**'
--exclude '**/*.min.js'
--exclude '**/*.map'
--exclude '**/vendor/**'

Troubleshooting

Debug Mode

Enable debug output for troubleshooting:
# Maximum verbosity
uvx zenable-mcp --debug install

# Run a check with verbose output
uvx zenable-mcp --verbose check '**/*.py'

# View debug logs
uvx zenable-mcp logs --lines 100

Dry Run Mode

Preview changes without applying:
# Preview installation
uvx zenable-mcp install --dry-run

# Preview with specific IDE
uvx zenable-mcp install mcp cursor --dry-run
*Continue users may experience issues until Continue adds support for streamable HTTP.

See Also