A lightweight, extensible cybersecurity toolkit that connects AI assistants to security tools through the Model Context Protocol (MCP), enabling AI-assisted security research, scanning, and analysis.
WhiteRabbitMCP defines 11 tools for cybersecurity scanning and reconnaissance. While tool names are moderately clear (verb_noun pattern: ZmapScanner, NmapScanner, etc.), the implementation has critical gaps in schema completeness, parameter documentation, and error handling. Input schemas ARE visible in the evaluation data and are well-formed with types and descriptions, but output schemas are entirely undocumented. Parameter descriptions are present but often generic. No error handling patterns are implemented (no recovery guidance, no actionable error messages, no categorization). The server provides basic tool registration via FastMCP but lacks production-grade composition patterns and validation.
Wrapper for running Amass subdomain enumeration and reconnaissance.
Wrapper for discovering subdomains from SSL certificate logs using crt.sh.
Wrapper for running DNSRecon for DNS reconnaissance.
Wrapper for running Holehe email registration checking.
Wrapper for running Nmap network scanning.
Wrapper for running OCR (Optical Character Recognition) on images and PDFs. The file_path can be: - A local file path - A direct URL (http/https) - A URL prefixed with @ symbol
Wrapper for running Sherlock username enumeration.
No output schemas documented. Users and LLMs cannot infer what fields to expect from tool responses, making it impossible to plan downstream tool chains or extract structured data reliably.
No error handling patterns implemented. Tools will fail with raw exceptions or bare error codes (e.g., subprocess.CalledProcessError). LLMs cannot determine if errors are retryable, user-fixable, or fatal, and receive no recovery guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Wrapper for running Sqlmap vulnerability scanning.
Wrapper for running Sublist3r subdomain enumeration.
Wrapper for running WPScan vulnerability scanning.
Wrapper for running ZMap network scanning.
Tool descriptions are generic and lack LLM-optimized guidance. Most descriptions are 50 chars or under, stating only 'Wrapper for running [tool]' without explaining WHEN to use it, WHAT it returns, or WHAT to do if it fails.
Tool names end with 'Scanner' suffix, violating verb_noun convention. Should be: 'scan_with_zmap', 'scan_wordpress_site', 'enumerate_subdomains_sublist3r', etc. LLMs infer action intent from the leading verb, not the trailing noun.
No input validation or constraint enforcement visible in tool implementations. Parameters like 'port' (integer), 'bandwidth' (string), and 'scan_type' (enum) lack min/max bounds, regex patterns, or enum constraints that LLMs can parse from the schema.
No pagination or result limits documented. Tools like 'Sublist3rScanner' and 'DNSReconScanner' may return hundreds or thousands of results, risking context window exhaustion. No limit parameter or total_count field in responses.
No security controls documented. Tools execute system binaries (zmap, nmap, sqlmap) with user-provided parameters, creating potential command injection or path traversal vectors. No mention of input sanitization, sandboxing, or permission gates.
Parameter 'data' in SqlmapScanner accepts arbitrary POST body. No validation, length limits, or encoding checks documented. LLMs could inject malicious payloads (SQL injection, command injection, XXE).
No audit logging or permission gating. Tools perform network reconnaissance and vulnerability scanning without any visible authorization checks, logging, or rate limiting. An agent could scan arbitrary networks or systems without oversight.
Tool composition is weak. Tools return outputs that may not match what downstream tools expect (no documented chaining IDs or structured responses). An LLM may need multiple discovery calls to chain results between tools.