Skip to main content

AI-powered security code review MCP server for Claude Code — combines CodeQL, Semgrep (5,000+ rules), bandit, detect-secrets, Dependabot CLI, osv-scanner, pip-audit, and npm-audit

Project description

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 5,000+ static analysis rules 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
Semgrep (5,000+ rules) OWASP Top 10, CWE Top 25, SQL injection, XSS, SSRF, command injection, taint analysis
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
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.


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 . --min-severity critical
/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

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 (e.g. ["ruff", "bandit"])
scan_git_history bool false Also scan git commit history for leaked secrets
min_severity string "high" Minimum severity to include (critical, high, medium, low, info)

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
min-severity high Minimum severity to report
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. Scan — All applicable scanners run in parallel via asyncio.gather()
  3. Deduplicate — Findings are deduplicated by exact hash and proximity (±3 lines)
  4. Analyze — Claude synthesizes raw scanner output into prioritized findings with context
  5. Report — Structured output with executive summary, risk score, and remediation steps

Requirements

  • Python 3.11+
  • Claude Code (for plugin mode)
  • External scanner tools are installed automatically as dependencies

Contributing

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


License

MIT — see LICENSE

Project details


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.2.tar.gz (36.1 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.2-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shieldbot_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 36.1 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.2.tar.gz
Algorithm Hash digest
SHA256 a87a29b99e14de173670849a09b1463a452c87da55f9595122e7731e4e060684
MD5 a248657d60dfaaae7f85b907508674ed
BLAKE2b-256 eaef659663e1682f88bc7af35f999216c9f0c33a5497a7c055c33a74ca26e06a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shieldbot_mcp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 49.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ca6397e45e44747f0b8f222a80f2c70202015af6f70198df34594240a6d0eb11
MD5 4ac051083aea139b51001585a2cd60fa
BLAKE2b-256 0ea9e4580ffc2330f03c1836baa0791accd1430e262269e1dc4b23560dbb0488

See more details on using hashes here.

Supported by

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