A comprehensive penetration testing toolkit exposed as an MCP server with 50 tools across network scanning, DNS/OSINT, web scanning, fuzzing, injection testing, exploitation, hashing, and forensics. Supports tiered deployment (tier 25 lightweight, tier 50 full).
42 tools with consistent naming (verb_noun pattern) and basic descriptions, but critical gaps in schema documentation and parameter descriptions. Most tools lack visible input schema definitions in source code, only tool names and brief descriptions are evident. Parameter descriptions are minimal (10-30 chars), far below the 72-char baseline. No output schemas documented. Error handling is absent. Naming is strong (e.g., nmap_scan, sqlmap_scan, nikto_scan), but the lack of formal schema visibility and parameter detail severely limits LLM reasoning and validation.
arjun: discover hidden HTTP parameters on a URL.
Lightweight passive subdomain finder using certificate transparency + sources.
binwalk: scan a file for signatures / embedded firmware images / filesystems.
cewl: build a custom wordlist by spidering words from a URL (depth/min word length).
crunch: generate a wordlist of length min..max from charset (capped by MAX_OUTPUT).
dalfox: XSS scanner that analyzes a URL for reflected/stored XSS parameters.
dig a DNS record for a name, optionally against a specific resolver @server.
Input schemas not visible in source code. Tool definitions show parameter names and brief descriptions, but no formal JSON Schema with type constraints, enums, or validation rules. LLMs cannot validate inputs or understand constraints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
dirb: directory/hidden-file brute force against a URL using a wordlist.
dirsearch: directory/file brute force with its bundled wordlist.
dnsenum: DNS zone transfer attempts, brute force, reverse lookup on a domain.
dnsrecon: standard/brute/zone DNS recon against a domain; scan_type std|brt|zone|reverse|srv|axfr|google|bing|crt|crawl|tld|zonewalk.
dnstwist: find lookalike / typosquatting / homograph domains and their A records.
dotdotpwn: path traversal fuzzer in http-url module; injects a TRAVERSAL marker into the URL if absent.
feroxbuster: recursive content discovery, auto-follows dir listings.
ffuf fuzzer; default directory mode at url/FUZZ, set mode=vhost for Host header fuzzing.
fierce: DNS reconnaissance, zone transfer attempt and subdomain brute on a domain.
gobuster dir mode: brute force directories/files on a URL.
gobuster dns mode: brute force subdomains for a domain via DNS.
gobuster vhost mode: brute force virtual hosts on a URL via Host header.
hakrawler: fast web crawler to discover endpoints/links from a URL.
Identify the likely hash type(s) of a hash string purely in Python (no external tool).
httpx: probe a list of hosts/URLs for HTTP/HTTPS availability and status codes.
John the Ripper: crack hashes in a file using a wordlist; optional --format.
joomscan: Joomla CMS vulnerability scanner.
masscan: ultra-fast mass port scanner (requires NET_RAW + NET_ADMIN caps for raw sockets).
msfvenom: generate a Metasploit payload (e.g. cmd/windows/reverse_tcp). Output is binary.
ProjectDiscovery naabu: fast port scanner with optional port range and rate control.
netcat banner grab from a target:port (TCP connect, no raw socket needed).
nikto: web server vulnerability scanner against a URL.
nmap port scan against a target with optional port spec (nmap -sT for TCP, -sS for SYN if NET_RAW available).
nuclei: template-based vulnerability scanner (ProjectDiscovery).
searchsploit: search Exploit-DB for known exploits matching a query string.
SpiderFoot OSINT automation against a target (domain/IP); use_case passive|footprint|investigate|all.
sqlmap: SQL injection detection & exploitation (--batch = no prompts).
Passive subdomain enumeration via ProjectDiscovery subfinder.
theHarvester: gather emails, subdomains, hosts from public sources.
traceroute: trace network path to a target (requires NET_RAW cap for raw ICMP/UDP).
wapiti: web application vulnerability scanner (crawls + tests for OWASP Top 10).
wfuzz: web fuzzer at url/FUZZ, hiding response codes by default (404).
whatweb: identify web technologies, CMS, frameworks on a URL.
WHOIS registration record for a domain or IP.
wpscan: WordPress vulnerability scanner (requires WPSCAN_API_TOKEN env var for full results).
Parameter descriptions are minimal (10 - 30 characters), far below the 72-character baseline. Descriptions like 'hostname or IP to scan' lack context on format, constraints, or when to use the tool. LLMs cannot infer valid ranges, enums, or dependencies.
No output schemas documented. Tools return results but LLMs have no visibility into response structure, field names, or types. This prevents downstream tool chaining and forces LLMs to guess at field names.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. A failed scan returns no recovery path.
msfvenom_payload and other destructive/sensitive tools lack confirmation or dry-run support. Agents can generate payloads or crack hashes without explicit user confirmation, risking unintended actions.