AI-powered security scanner MCP plugin for Claude Code that exposes vulnerability discovery as tools any coding agent can call
Four tools with basic verb-noun naming (scan_file, scan_diff, approve_findings, debug_config). All have descriptions (10-100 chars), but most are terse and lack actionable context. Input schemas present but minimal: scan_file and scan_diff lack parameter descriptions; approve_findings has only a type hint without explaining what 'findings' contains or how to obtain CWE IDs; debug_config has no parameters. No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges). Naming is clear but descriptions do not explain WHEN to use each tool, WHAT they return, or dependencies between them. Baseline: avg tool description ~50 chars (well below 194-char production median); zero parameter descriptions for 3/4 tools.
Approve suppressed CRITICAL findings and allow commit to proceed
Display current configuration, auth status, and environment for debugging
Scan staged changes (git diff) for security vulnerabilities and write a scan pass file on success
Scan a file on disk for security vulnerabilities using AI-powered SAST
Parameter descriptions missing or minimal. scan_file's 'file_path' has a description, but scan_diff's 'ref' lacks context (what is a git ref? what is the default behavior?). approve_findings' 'findings' array has no schema detail (is it an array of strings? objects? how to obtain CWE IDs?). debug_config has no parameters documented.
No output schemas documented. LLMs cannot plan downstream calls or extract results. What does scan_file return? A list of vulnerabilities? A pass/fail? What fields? What does approve_findings return on success?
No error handling guidance. If scan_file fails (file not found, permission denied, scan timeout), what should the LLM do? Retry? Ask the user? No recovery hints provided.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Descriptions lack WHEN/WHY context. 'Scan a file on disk for security vulnerabilities using AI-powered SAST' does not explain when to call scan_file vs scan_diff, or what prerequisites exist (e.g., must file exist? must git repo be initialized for scan_diff?).
approve_findings tool lacks clarity on input format and discovery. How does an LLM know which CWE IDs to approve? Must it call scan_diff first? What is the structure of findings returned by scan_diff?