agentaudit
Security scanner for AI packages β MCP server + CLI
Installation
npx agentauditAsk AI about agentaudit
Powered by Claude Β· Grounded in docs
I know everything about agentaudit. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
π‘οΈ AgentAudit
Security scanner for AI agent packages β CLI + MCP server
Scan MCP servers, AI skills, and packages for vulnerabilities, prompt injection, and supply chain attacks. Powered by regex static analysis and deep LLM audits.
π Table of Contents
- What is AgentAudit?
- Quick Start
- Commands Reference
- Quick Scan vs Deep Audit
- MCP Server
- What It Detects
- How the 3-Pass Audit Works
- CI/CD Integration
- Dashboard & Community
- Configuration
- Requirements
- FAQ
- Related Links
- License
What is AgentAudit?
AgentAudit is a security scanner purpose-built for the AI package ecosystem. It works in two modes:
- CLI tool β Run
agentauditin your terminal to discover and scan MCP servers installed in your AI editors - MCP server β Add to Claude Desktop, Cursor, or Windsurf so your AI agent can audit packages on your behalf
It checks packages against the AgentAudit Trust Registry β a shared, community-driven database of security findings β and can perform local scans ranging from fast regex analysis to deep LLM-powered 3-pass audits.
π Quick Start
Option A: CLI (recommended)
# Install globally (or use npx agentaudit)
npm install -g agentaudit
# Discover MCP servers configured in your AI editors
agentaudit
# Quick scan β clones repo, checks code with regex patterns (~2s)
agentaudit scan https://github.com/owner/repo
# Deep audit β clones repo, sends code to LLM for 3-pass analysis (~30s)
agentaudit audit https://github.com/owner/repo
# Registry lookup β check if a package has been audited before (no cloning)
agentaudit lookup fastmcp
Example output:
β AgentAudit v3.13.4 β my-scanner Β· #3 Β· 280pts Β· 19 audits
Discovering MCP servers in your AI editors...
β’ Scanning Cursor ~/.cursor/mcp.json found 3 servers
βββ tool supabase-mcp β ok
β SAFE Risk 0 https://agentaudit.dev/packages/supabase-mcp
βββ tool browser-tools-mcp β ok
β β not audited Run: agentaudit audit https://github.com/nichochar/browser-tools-mcp
βββ tool filesystem β ok
β SAFE Risk 0 https://agentaudit.dev/packages/filesystem
Looking for general package scanning? Try `pip audit` or `npm audit`.
Enhanced banner: When logged in, the banner shows your agent name, rank, points, and audit count. Run
agentaudit setupto create an account.
Option B: MCP Server in your AI editor
Add AgentAudit as an MCP server β your AI agent can then discover, scan, and audit packages using its own LLM. No extra API key needed.
Claude Desktop β ~/.claude/mcp.json
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Cursor β .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Windsurf β ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
VS Code β .vscode/mcp.json
{
"servers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Continue.dev β ~/.continue/config.json
Add to the mcpServers section of your existing config:
{
"mcpServers": [
{
"name": "agentaudit",
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
]
}
Zed β ~/.config/zed/settings.json
{
"context_servers": {
"agentaudit": {
"command": {
"path": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
}
Then ask your agent: "Check which MCP servers I have installed and audit any unaudited ones."
π Commands Reference
Scan & Audit
| Command | Description | Example |
|---|---|---|
agentaudit | Discover MCP servers (default, same as discover) | agentaudit |
agentaudit discover | Find MCP servers in Cursor, Claude, VS Code, Windsurf | agentaudit discover |
agentaudit discover --quick | Discover + auto-scan all servers | agentaudit discover --quick |
agentaudit discover --deep | Discover + interactively select servers to deep-audit | agentaudit discover --deep |
agentaudit scan <url> | Quick regex-based static scan (~2s) | agentaudit scan https://github.com/owner/repo |
agentaudit scan <url> --deep | Deep audit (same as audit) | agentaudit scan https://github.com/owner/repo --deep |
agentaudit audit <url> | Deep LLM-powered 3-pass audit (~30s) | agentaudit audit https://github.com/owner/repo |
agentaudit audit <url> --verify | Audit + adversarial verification pass (reduces false positives) | agentaudit audit <url> --verify self |
agentaudit audit <url> --remote | Server-side scan via agentaudit.dev (no LLM key needed, 3/day free) | agentaudit audit <url> --remote |
agentaudit consensus <name> | Cross-model consensus view for a package | agentaudit consensus supabase-mcp |
agentaudit lookup <name> | Look up package in trust registry | agentaudit lookup fastmcp |
agentaudit history | Show local audit history | agentaudit history |
Community
| Command | Alias | Description |
|---|---|---|
agentaudit dashboard | dash | Interactive full-screen TUI with 5 tabs (Overview, Leaderboard, Benchmark, Activity, Search) |
agentaudit leaderboard | lb | Top contributors ranking (pipe-friendly) |
agentaudit benchmark | bench | LLM model audit performance comparison |
agentaudit activity | my | Your recent audits & findings |
agentaudit search <query> | find | Search packages in the registry by name, ASF-ID, or hash |
Configuration
| Command | Alias | Description |
|---|---|---|
agentaudit model | β | Interactive LLM provider + model configuration |
agentaudit setup | login | Sign in with GitHub OAuth or paste API key manually |
agentaudit status | whoami | Show current config, API keys, and personal stats |
Global Flags
| Flag | Description |
|---|---|
--json | Output machine-readable JSON to stdout |
--quiet / -q | Suppress banner and decorative output |
--no-color | Disable ANSI colors (also respects NO_COLOR env var) |
--model <name> | Override LLM model for this run |
--models <a,b,c> | Multi-model audit (parallel calls, consensus comparison) |
--verify <mode> | Adversarial verification: self (same model), cross (different model), or <model-name> |
--no-verify | Skip verification even if configured |
--remote | Use agentaudit.dev server for scan (no local LLM key needed) |
--no-upload | Skip uploading report to registry |
--export | Export audit payload as markdown |
--debug | Show raw LLM response on parse errors |
--help / -h | Show help text |
-v / --version | Show version |
Exit Codes
| Code | Meaning |
|---|---|
0 | Clean β no findings detected, or successful lookup |
1 | Findings detected |
2 | Error (clone failed, network error, invalid args) |
βοΈ Quick Scan vs Deep Audit
Quick Scan (scan) | Deep Audit (audit) | |
|---|---|---|
| Speed | ~2 seconds | ~30 seconds |
| Method | Regex pattern matching | LLM-powered 3-pass analysis |
| API key needed | No | Yes (Anthropic, OpenAI, or OpenRouter) |
| False positives | Higher (regex limitations) | Very low (context-aware) |
| Detects | Common patterns (injection, secrets, eval) | Complex attack chains, AI-specific threats, obfuscation |
| Best for | Quick triage, CI pipelines | Critical packages, pre-production review |
Tip: Use agentaudit scan <url> --deep to run a deep audit via the scan command.
π MCP Server
When running as an MCP server, AgentAudit exposes the following tools to your AI agent:
| Tool | Description |
|---|---|
audit_package | Deep LLM-powered audit of a repository |
check_registry | Look up a package in the trust registry |
submit_report | Upload audit findings to the registry |
discover_servers | Find MCP servers in local editor configs |
consensus_analysis | Cross-model consensus view for a package |
search_packages | Search packages in the registry by name, ASF-ID, or hash |
scan_tool_poisoning | Detect tool poisoning in MCP tool descriptions |
Workflow
User asks agent to install a package
β
βΌ
Agent calls check_registry(package_name)
β
ββββββ΄βββββ
β β
Found Not Found
β β
βΌ βΌ
Return Agent calls audit_package(repo_url)
score β
βΌ
LLM analyzes code (3-pass)
β
βΌ
Agent calls submit_report(findings)
β
βΌ
Return findings + risk score
π― What It Detects
|
Core Security
|
AI-Specific
|
|
MCP-Specific
|
Persistence & Obfuscation
|
π§ How the 3-Pass Audit Works
The deep audit (agentaudit audit) uses a structured 3-phase LLM analysis β not a single-shot prompt, but a rigorous multi-pass process:
| Phase | Name | What Happens |
|---|---|---|
| 1 | π UNDERSTAND | Read all files and build a Package Profile: purpose, category, expected behaviors, trust boundaries. No scanning yet β the goal is to understand what the package should do before looking for what it shouldn't. |
| 2 | π― DETECT | Evidence collection against 50+ detection patterns across 8 categories (AI-specific, MCP, persistence, obfuscation, cross-file correlation). Only facts are recorded β no severity judgments yet. |
| 3 | βοΈ CLASSIFY | Every finding goes through a Mandatory Self-Check (5 questions), Exploitability Assessment, and Confidence Gating. HIGH/CRITICAL findings must survive a Devil's Advocate challenge and include a full Reasoning Chain. |
Why 3 passes? Single-pass analysis is the #1 cause of false positives. By separating understanding β detection β classification:
- Phase 1 prevents flagging core functionality as suspicious (e.g., SQL execution in a database tool)
- Phase 2 ensures evidence is collected without severity bias
- Phase 3 catches false positives before they reach the report
This architecture achieved 0% false positives on our 11-package test set, down from 42% in v2.
Adversarial Verification Pass (v3.13+)
After the 3-pass audit, an optional verification pass re-examines each finding against the actual source code:
agentaudit audit https://github.com/owner/repo --verify self
Each finding goes through a 5-point checklist:
- Code Existence β Does the cited code actually exist in the file?
- Context Accuracy β Is the code used in the way described?
- Execution Model β Can an attacker actually trigger this?
- Severity Calibration β Is the severity appropriate?
- Fabrication Check β Are there hallucinated details?
Verdicts: verified (confirmed real), demoted (severity reduced), rejected (false positive removed).
Model Accuracy (Real-World Data)
We benchmarked multiple LLMs on the Top 20 most popular MCP servers (62+ reports):
| Model | Findings on Top 20 | Precision | Assessment |
|---|---|---|---|
| Claude Opus 4.6 | 0 findings (all clean) | N/A | Very conservative β ideal for avoiding false positives |
| Gemini 2.5 Flash | Many findings | ~30% strict | High false positive rate β not recommended for production audits |
Key insight: Model choice dramatically affects audit quality. We recommend Claude Opus 4 or Claude Sonnet 4 for production audits. Use
--modelsto run multiple models and compare results viaconsensus.
π CI/CD Integration
AgentAudit is designed for CI pipelines with proper exit codes and JSON output:
# GitHub Actions example
- name: Scan MCP servers
run: |
npx agentaudit scan https://github.com/org/mcp-server --json --quiet > results.json
# Exit code 1 = findings detected β fail the build
# Shell scripting
agentaudit scan https://github.com/owner/repo --json --quiet 2>/dev/null
if [ $? -eq 1 ]; then
echo "Security findings detected!"
exit 1
fi
JSON Output Examples
# Scan with JSON output
agentaudit scan https://github.com/owner/repo --json
{
"slug": "repo",
"url": "https://github.com/owner/repo",
"findings": [
{
"severity": "high",
"title": "Command injection risk",
"file": "src/handler.js",
"line": 42,
"snippet": "exec(`git ${userInput}`)"
}
],
"fileCount": 15,
"duration": "1.8s"
}
# Registry lookup with JSON
agentaudit lookup fastmcp --json
Coming soon:
--fail-on <severity>flag to set minimum severity threshold for non-zero exit (e.g.,--fail-on highignores low/medium findings).
π Dashboard & Community
AgentAudit includes a full-screen interactive dashboard and standalone community commands.
Interactive Dashboard
agentaudit dashboard # or: agentaudit dash
5-tab TUI with keyboard navigation (ββ tabs, ββ scroll, 1-5 jump, q quit). Overview tab includes interactive Quick Actions β select and launch audits, consensus views, or remote scans directly from the dashboard:
| Tab | Content |
|---|---|
| [1] Overview | Your profile + registry stats + interactive Quick Actions (press a/v/r/c or Enter) |
| [2] Leaderboard | Top contributors with medal rankings and bar charts |
| [3] Benchmark | LLM model audit performance comparison |
| [4] Activity | Your recent audits and findings |
| [5] Search | Interactive package search (type to search, Enter to submit) |
Standalone Commands
All community commands work without the dashboard (pipe-friendly, supports --json):
agentaudit leaderboard # Top contributors
agentaudit leaderboard --tab monthly --json # Monthly rankings as JSON
agentaudit benchmark # Model comparison
agentaudit activity # Your recent audits & findings
agentaudit search fastmcp # Search registry by name/ASF-ID
agentaudit search fastmcp --json # Machine-readable search results
βοΈ Configuration
Credentials
AgentAudit stores credentials in ~/.config/agentaudit/credentials.json (or $XDG_CONFIG_HOME/agentaudit/credentials.json).
Run agentaudit setup to sign in with GitHub or paste an API key, or set via environment:
export AGENTAUDIT_API_KEY=asf_your_key_here
LLM Providers (13 supported)
AgentAudit supports 13 LLM providers for deep audits. Set one API key β the CLI auto-detects it. Use agentaudit model to choose provider + model interactively, or agentaudit status to check your setup.
| Variable | Provider | Default Model |
|---|---|---|
ANTHROPIC_API_KEY | Anthropic (Claude) | claude-sonnet-4-20250514 |
GEMINI_API_KEY | Google (Gemini) | gemini-2.5-flash |
OPENAI_API_KEY | OpenAI (GPT-4o) | gpt-4o |
DEEPSEEK_API_KEY | DeepSeek | deepseek-chat |
MISTRAL_API_KEY | Mistral | mistral-large-latest |
GROQ_API_KEY | Groq | llama-3.3-70b-versatile |
XAI_API_KEY | xAI (Grok) | grok-3 |
TOGETHER_API_KEY | Together AI | Llama-3.3-70B-Instruct-Turbo |
FIREWORKS_API_KEY | Fireworks AI | llama-v3p3-70b-instruct |
CEREBRAS_API_KEY | Cerebras | llama-3.3-70b |
ZAI_API_KEY | Zhipu AI (GLM) | glm-4.7 |
OPENROUTER_API_KEY | OpenRouter | anthropic/claude-sonnet-4 |
Other Environment Variables
| Variable | Description |
|---|---|
AGENTAUDIT_API_KEY | API key for registry uploads (or use agentaudit setup) |
AGENTAUDIT_MODEL | Override LLM model (same as --model flag) |
NO_COLOR | Disable ANSI colors (no-color.org) |
Provider priority: Set
preferred_providerviaagentaudit model, or the CLI picks the first available key. Override per-run with--model <name>.
π¦ Requirements
- Node.js β₯ 18.0.0
- Git (for cloning repositories during scan/audit)
β FAQ
How do I set up AgentAudit?
npm install -g agentaudit
agentaudit setup
Or use without installing: npx agentaudit
Do I need an API key?
- Quick scan (
scan): No API key needed β runs locally with regex - Deep audit (
audit): Needs an LLM API key (see below) - Registry lookup (
lookup): No key needed for reading; key needed for uploading reports - MCP server: No extra key needed β uses the host editor's LLM
Setting up your LLM key for deep audits
The audit command supports 13 LLM providers. Set one API key and AgentAudit auto-detects it:
# Set any one of these (Anthropic recommended)
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=...
export DEEPSEEK_API_KEY=...
# ... or any of the 13 supported providers (see Configuration section)
Interactive setup:
agentaudit model # 2-step menu: pick provider β pick model
agentaudit status # check which keys are set + current config
Override per-run:
agentaudit audit https://github.com/owner/repo --model gpt-4o
Troubleshooting: If you see API error: Incorrect API key, double-check your key is valid and has credits. Use --debug to see the full API response.
What data is sent externally?
- Registry lookups: Package name/slug is sent to
agentaudit.devto check for existing audits - Report uploads: Audit findings are uploaded to the public registry (requires API key)
- Deep audits: Source code is sent to Anthropic or OpenAI for LLM analysis
- Quick scans: Everything stays local β no data leaves your machine
Can I use it offline?
Quick scans (agentaudit scan) work fully offline after cloning. Registry lookups and deep audits require network access.
Can I use it as an MCP server without the CLI?
Yes! npx agentaudit starts the MCP server when invoked by an editor. The CLI and MCP server are the same package β behavior is determined by how it's called.
How does discover know which editors I use?
It checks standard config file locations for Claude Desktop, Cursor, VS Code, and Windsurf. It also checks the current working directory for project-level .cursor/mcp.json and .vscode/mcp.json.
π Related
| Project | Description | |
|---|---|---|
| π | agentaudit.dev | Trust Registry -- browse packages, findings, leaderboard |
| π‘οΈ | agentaudit-skill | Agent Skill -- pre-install security gate for Claude Code, Cursor, Windsurf |
| β‘ | agentaudit-github-action | GitHub Action -- CI/CD security scanning |
| π | agentaudit-cli | This repo -- CLI + MCP server source |
| π | Report Issues | Bug reports and feature requests |
π License
AGPL-3.0 β Free for open source use. Commercial license available for proprietary integrations.
Protect your AI stack. Scan before you trust.
