Skip to main content

Shieldbot — AI Security Code Review for Claude Code

PyPI License: MIT Python 3.11+ MCP Compatible

Shieldbot is an AI-powered security scanner that runs directly inside Claude Code. It combines deep dataflow analysis, 5,000+ static analysis rules, and advisory-database lookups with Claude's reasoning to detect vulnerabilities, hardcoded secrets, and CVE-affected dependencies — then synthesizes findings into a prioritized, actionable report.

One command. Full security audit. Zero context switching.


What It Scans

Scanner What It Catches Auto-installed
CodeQL Deep dataflow / taint-analysis SAST — SQL injection, XSS, path traversal, RCE, authentication flaws across 8+ languages
Semgrep (5,000+ rules) OWASP Top 10, CWE Top 25, SQL injection, XSS, SSRF, command injection
Bandit Python-specific security flaws (hardcoded passwords, weak crypto, shell injection)
Ruff Python code quality and security anti-patterns
detect-secrets API keys, tokens, passwords, private keys in source code
Dependabot CLI Ecosystem-specific security updates via GitHub's Dependabot engine (security-updates-only mode, requires Docker at runtime)
osv-scanner Dependency CVEs from the OSV / GitHub Advisory Database — works offline, no token required
Trivy Docker image CVEs (OS packages + libraries), Dockerfile misconfigurations, and secrets baked into image layers — runs automatically when a Dockerfile is found
pip-audit Python dependency CVEs (PyPI Advisory Database)
npm audit Node.js dependency CVEs

All scanners run in parallel. Findings are deduplicated, ranked by exploitability, and explained in plain English.

Auto-installed tools (CodeQL, osv-scanner, Dependabot CLI, Trivy) are downloaded automatically on first scan — no package manager or sudo required. Supports macOS and Linux on x86_64 and arm64. Trivy and Dependabot CLI require Docker at runtime (image builds / ecosystem updaters). Trivy scan strategy: (1) docker build → full image scan; (2) docker pull <base_image> → base image scan if build fails; (3) trivy fs filesystem fallback. When Docker build fails (e.g. network restrictions in CI), a prominent SCAN GAP warning is emitted and the base image is scanned directly. Pass --image <tag> / extra_images to scan a pre-built image directly.


Install as a Claude Code Plugin (Recommended)

Step 1 — Add the Shieldbot marketplace:

/plugin marketplace add BalaSriharsha/shieldbot

Step 2 — Install the plugin:

/plugin install shieldbot

Step 3 — Reload plugins:

/reload-plugins

Step 4 — Run a scan:

/shieldbot .
/shieldbot /path/to/repo
/shieldbot . --git-history

Or just ask Claude naturally:

  • "scan this repo for security vulnerabilities"
  • "check my code for hardcoded secrets"
  • "audit my Python dependencies for CVEs"

Install as a Standalone MCP Server

Add to your MCP client config (.mcp.json or claude_desktop_config.json):

{
  "mcpServers": {
    "shieldbot": {
      "command": "uvx",
      "args": ["shieldbot-mcp"]
    }
  }
}

Or install via pip:

pip install shieldbot-mcp

Pre-install Scanner Tools

CodeQL, osv-scanner, and Dependabot CLI are downloaded automatically on first scan, but you can pre-install them with the bundled CLI:

shieldbot-install              # install all four
shieldbot-install --codeql     # CodeQL only
shieldbot-install --osv        # osv-scanner only
shieldbot-install --dependabot # Dependabot CLI only
shieldbot-install --trivy      # Trivy only
shieldbot-install --force      # reinstall / upgrade to latest

Binaries are placed in ~/.local/bin. Add it to your shell profile if needed:

export PATH="$HOME/.local/bin:$PATH"

All three tools are fully open-source and installed from their official GitHub releases — no package manager, no sudo, no API keys:

Tool Source License
CodeQL CLI github/codeql-cli-binaries MIT
osv-scanner google/osv-scanner Apache-2.0
Dependabot CLI dependabot/cli MIT
Trivy aquasecurity/trivy Apache-2.0

MCP Tools

Tool Description
scan_repository Run a full parallel security scan and return a structured JSON report
check_scanner_tools Check which scanners are installed and available

scan_repository parameters

Parameter Type Default Description
repo_path string required Absolute path to the repository
skip_scanners list [] Scanners to skip — valid values: codeql, semgrep, bandit, ruff, detect-secrets, dependabot, pip-audit, npm-audit, trivy
scan_git_history bool false Also scan git commit history for leaked secrets
extra_images list [] Pre-built Docker image names/tags to scan directly with Trivy — use when docker build fails in restricted environments (e.g. ["mcr.microsoft.com/playwright:v1.50-noble"])

Dockerfile / docker-compose fix utilities

Shieldbot includes a command-line fixer that the agent uses to analyse and patch Dockerfiles and compose files:

# Analyse a Dockerfile and generate a fix plan from scan results
python -m shieldbot.fixers.dockerfile_fixer analyze Dockerfile shieldbot-report.json

# List all FROM stages and their detected package managers
python -m shieldbot.fixers.dockerfile_fixer list-stages Dockerfile

# List all RUN install commands and their packages
python -m shieldbot.fixers.dockerfile_fixer list-installs Dockerfile

# List all image: references in a docker-compose file
python -m shieldbot.fixers.dockerfile_fixer list-compose-images docker-compose.yml

# Check Docker Hub for a newer/patched base image tag
python -m shieldbot.fixers.dockerfile_fixer suggest-base-upgrade ubuntu:20.04

GitHub Actions Integration

Add Shieldbot to any repository in 3 lines. Findings appear in the Security > Code Scanning tab via SARIF upload.

# .github/workflows/shieldbot.yml
name: Shieldbot Security Scan
on:
  push:
    branches: [main, master]
  pull_request:
    branches: [main, master]
  schedule:
    - cron: '0 8 * * 1'  # Weekly scan

permissions:
  contents: read
  security-events: write  # Required for Code Scanning upload

jobs:
  shieldbot:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: BalaSriharsha/shieldbot@main

All available inputs:

Input Default Description
path . Directory to scan
fail-on high Fail build if findings at or above this level
skip-scanners `` Comma-separated scanners to skip
scan-git-history false Scan git history for leaked secrets
upload-sarif true Upload to GitHub Code Scanning
sarif-file shieldbot-results.sarif SARIF output path

Outputs: total-findings, risk-score, sarif-file

See .github/workflows/shieldbot-example.yml for the full annotated example.


Exit Codes (CI/CD Integration)

Code Meaning
0 Clean — no findings above threshold
1 Medium+ findings detected
2 High+ findings detected
3 Critical findings detected

Use exit codes to gate deployments in GitHub Actions, GitLab CI, or any pipeline.


How It Works

  1. Detect — Shieldbot profiles the repository (languages, package managers, git history)
  2. Auto-install — Any missing scanner tools (CodeQL, osv-scanner, Dependabot CLI) are downloaded from GitHub releases for the current OS and architecture
  3. Scan — All applicable scanners run in parallel via asyncio.gather()
  4. Deduplicate — Findings are deduplicated by exact hash and proximity (±3 lines), with scanner priority: CodeQL → Semgrep → Bandit → detect-secrets → Dependabot/osv-scanner → pip-audit/npm-audit → Trivy
  5. Analyze — Claude synthesizes raw scanner output into prioritized findings with context
  6. Report — Structured output with executive summary, risk score, and remediation steps

Requirements

  • Python 3.11+
  • Claude Code (for plugin mode)
  • Docker (optional — required at runtime for Trivy image scanning and Dependabot CLI's ecosystem updaters)

Contributing

Issues and pull requests welcome at github.com/BalaSriharsha/shieldbot.


License

MIT — see LICENSE

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shieldbot_mcp-1.0.5.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shieldbot_mcp-1.0.5-py3-none-any.whl (65.7 kB view details)

Uploaded Python 3

File details

Details for the file shieldbot_mcp-1.0.5.tar.gz.

File metadata

  • Download URL: shieldbot_mcp-1.0.5.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for shieldbot_mcp-1.0.5.tar.gz
Algorithm Hash digest
SHA256 f96ea26bd9e18bed355eb3320628aca0a37bf14c79c074a02d568410c1ba05d8
MD5 3de0ec531987eeac459c12586fe7a8f9
BLAKE2b-256 011cf0fe4742db8f0c5140ef3b9fd6f8d273acdc87bac7c38357d34c229bf09d

See more details on using hashes here.

File details

Details for the file shieldbot_mcp-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: shieldbot_mcp-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for shieldbot_mcp-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8ef875955a814413fca089f025d511ec3c9d657b42484285b2d2201a26d212d2
MD5 018d80fdb2eb9723dda7373deebf29da
BLAKE2b-256 4be0ff6d61d5e85e9abf992cfd6c7d8df38ea43a7a7e4d2ed0c762d0b0f3cbf6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page