MCP server for ProjectDiscovery tools integration - automated bug bounty reconnaissance
Server defines 7 tools with explicit schemas and descriptions visible in src/index.ts. All tools have non-empty descriptions (range 60-180 chars) and input schemas with typed properties. However, critical gaps limit production readiness: (1) Tool names lack action verbs, 'subfinder', 'dnsx', 'naabu', 'httpx', 'katana', 'nuclei' are tool names, not verb_noun patterns like 'discover_subdomains', 'resolve_dns'. LLMs struggle to infer intent from bare tool names. (2) Parameter descriptions are minimal (10-40 chars) and lack constraints, ranges, or format guidance. E.g., 'ports' param has no example format or validation rules. (3) No output schemas documented, LLMs cannot predict response structure or plan downstream calls. (4) No error handling guidance, tools return raw command output without recovery hints. (5) 'bug_bounty_workflow' combines 6 distinct operations (subdomain discovery, DNS, port scan, HTTP probe, crawl, vulnerability scan) into one tool, violating single-responsibility principle. Average tool description length ~110 chars (below 194-char baseline); parameter descriptions average ~25 chars (well below 72-char baseline).
Execute complete bug bounty reconnaissance workflow: subdomain discovery, DNS resolution, port scanning, HTTP probing, crawling, and vulnerability scanning
Resolve DNS records for domains and subdomains
Probe HTTP/HTTPS servers and gather information
Fast web crawler for discovering endpoints and paths
Fast port scanner to discover open ports on hosts
Fast vulnerability scanner using YAML-based templates
Discover subdomains for a given domain using passive sources
Tool names lack action verbs. 'subfinder', 'dnsx', 'naabu' are bare tool names, not verb_noun patterns. LLMs infer intent from names before reading descriptions, bare names force unnecessary reasoning overhead and increase misselection risk.
No output schemas documented. Tools return raw command output without structure definition. LLMs cannot predict response fields, forcing them to guess at downstream tool parameters and risking broken chains.
Parameter descriptions are minimal (10-40 chars, well below 72-char baseline) and lack format constraints, ranges, or validation rules. E.g., 'ports' param has no example format ('80,443' vs '1-1000' distinction unclear), 'recordType' lacks enum values (A, AAAA, CNAME, etc. are mentioned in description but not as schema enum).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
bug_bounty_workflow violates single-responsibility principle. Combines 6 distinct operations (subdomain discovery, DNS resolution, port scanning, HTTP probing, web crawling, vulnerability scanning) into one tool. Agents cannot compose individual steps or retry failed stages independently.
No error handling guidance. Tools execute external commands but provide no recovery hints, categorization (retryable vs fatal), or actionable error messages. LLMs cannot self-correct on failures.