Modular security tools server for reconnaissance, vulnerability scanning, and penetration testing. Wraps offensive security tools (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap, ffuf, dalfox, katana, sslscan) with async subprocess execution and structured JSON output.
PrismSec defines 16 security tools with consistent naming (verb_noun pattern: nmap_port_scan, nuclei_vuln_scan, etc.) and reasonable descriptions (100-200 chars). However, critical gaps undermine production readiness: (1) Input schemas are present but lack enum constraints for critical parameters (scan_type, severity, technique accept free-form strings instead of enums); (2) Parameter descriptions are generic and lack format/range guidance (e.g., 'timeout' has no bounds, 'target' lacks CIDR validation hints); (3) Output schemas are completely undocumented, no return type specifications visible in tool definitions; (4) Error handling is absent, no recovery guidance, no actionable error messages; (5) Security concerns unaddressed, tools execute external binaries (nmap, nuclei, sqlmap) with user input, no visible input sanitization or injection guards. Tools like sqlmap_scan and dalfox_scan are particularly risky: they accept raw URLs and POST data without validation. Baseline: 549 production tools average 194-char descriptions and 100% document return types; this server documents neither.
XSS vulnerability scanning with dalfox.
Fast web fuzzing with ffuf.
Run directory brute-force scan with Gobuster. Discovers hidden directories and files on web servers.
Run DNS brute-force scan with Gobuster. Discovers subdomains by brute-forcing DNS entries.
Probe web targets for alive services and fingerprinting. Checks which targets are alive, extracts titles, status codes, technologies, and other metadata.
Web crawling and URL discovery with katana.
Run Nikto web server vulnerability scan. Scans web servers for known vulnerabilities, misconfigurations, and dangerous files/CGIs.
No output schemas documented. Tools return dict but LLMs cannot infer structure, field names, or types. Breaks downstream tool chaining and forces LLMs to guess at response format.
Free-form string parameters where enums required. scan_type accepts 'quick|full|service|stealth|aggressive' but no enum constraint; severity accepts 'high,critical' but no enum. LLMs hallucinate invalid values.
No input validation or error recovery guidance. Tools accept raw URLs, file paths, and command parameters without sanitization. sqlmap_scan and dalfox_scan accept POST data as free-form strings, vulnerable to injection.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Scan all 65535 TCP ports on a target. Comprehensive port scan that checks every possible TCP port. Warning: This is slow, use nmap_port_scan with scan_type="quick" for faster results.
Run an nmap port scan on a target. Performs port scanning with various scan types. Results are parsed from nmap XML output into structured JSON.
Run nmap service/version detection scan. Identifies services running on open ports and their versions. Useful for identifying vulnerable service versions.
Run Nuclei scan filtered by severity level. Focused scan that only reports findings at specified severity levels.
Run Nuclei scan with a specific template. Targeted scan using a single template or template path.
Run a Nuclei vulnerability scan against a target URL. Scans for known vulnerabilities using Nuclei templates. Results include CVE IDs, severity ratings, and matched URLs.
Run SQLMap SQL injection testing.
SSL/TLS security testing with sslscan.
Enumerate subdomains using Subfinder. Passive subdomain enumeration using multiple online sources (crt.sh, SecurityTrails, VirusTotal, etc.).
Parameter descriptions lack format/range guidance. timeout=0 means 'auto' but undocumented; ports accepts '80,443' or '1-1000' but format not specified; no min/max bounds on numeric params.
sqlmap_scan description is minimal (12 chars: 'Run SQLMap SQL injection testing.'). Lacks WHEN to use, prerequisites, or risk disclosure. Insufficient for LLM tool selection.