AI-powered security code review MCP server for Claude Code — combines CodeQL, Semgrep (5,000+ rules), bandit, detect-secrets, Dependabot CLI, osv-scanner, Trivy (Docker image scanning), pip-audit, and npm-audit
Project description
Shieldbot — AI Security Code Review for Claude Code
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).
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
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 |
min_severity |
string | "info" |
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 |
info |
Minimum severity to report (all findings shown by default) |
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
- Detect — Shieldbot profiles the repository (languages, package managers, git history)
- Auto-install — Any missing scanner tools (CodeQL, osv-scanner, Dependabot CLI) are downloaded from GitHub releases for the current OS and architecture
- Scan — All applicable scanners run in parallel via
asyncio.gather() - 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
- Analyze — Claude synthesizes raw scanner output into prioritized findings with context
- 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shieldbot_mcp-1.0.3.tar.gz.
File metadata
- Download URL: shieldbot_mcp-1.0.3.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7232a4b0459df874dd051c2dbac5024c7ca2f2b445682ca42afb9dec8f4c3c54
|
|
| MD5 |
0d01adbe554d580fff0289d2b8020225
|
|
| BLAKE2b-256 |
d1997d0f8ecec25703281787511b7469446e489fecb10b8779bc70649f48f006
|
File details
Details for the file shieldbot_mcp-1.0.3-py3-none-any.whl.
File metadata
- Download URL: shieldbot_mcp-1.0.3-py3-none-any.whl
- Upload date:
- Size: 53.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36b72a1206d848b3895a71369d44d3da6a5e27bef54b56e6b043afe7b59da5db
|
|
| MD5 |
cc1d87f68c8a9849df956322b10bff3a
|
|
| BLAKE2b-256 |
cbed9d69d2b98985189b888a18e6235d124dd44396fcfda8b44f26dc20d9ce74
|