HTTP Security Header Scanner - AI-powered analysis, CVE correlation, and MCP integration
Corsair provides 4 well-named tools with clear action verbs (scan_, generate_, compare_, get_). Descriptions are detailed (150-250 chars) and explain WHAT the tool does and WHEN to use it. Input schemas are present with types and descriptions for all parameters. However, output schemas are NOT documented, the code shows response construction but no formal schema declaration. Parameter descriptions lack format constraints (e.g., URL validation rules, framework enum values not explicitly listed). Error handling is minimal, no recovery guidance or actionable error messages visible. The server is STDIO-only, which caps protocol readiness but does not directly penalize definition quality.
Compare current scan with historical data to detect security drift. Analyzes changes in: - Security score trends - New vulnerabilities introduced - Remediated issues - Header configuration changes
Generate a Content-Security-Policy header based on requirements. Creates framework-specific CSP implementations with: - Strict or basic mode options - Nonce-based script protection - Framework-specific middleware code (Next.js, Express, generic)
Get framework-specific remediation code for security findings. Provides: - Code snippets for fixing misconfigurations - Framework-specific implementations (Next.js, Express, Django, etc.) - Configuration examples - Deployment guidance
Scan HTTP security headers for a given URL. Analyzes 60+ security headers and returns: - Security score (0-100) and grade (A-F) - Detailed findings with severity levels - CVE correlations for misconfigurations - CISA KEV (Known Exploited Vulnerabilities) correlation - Framework-specific remediation code
Output schemas not documented. Code constructs responses (findings, fingerprints, remediation) but no formal schema is declared for LLMs to understand return structure. Forces LLMs to infer field names and types.
Parameter constraints not formalized. 'framework' param accepts 'nextjs, express, generic' but no enum is declared. 'severity' in get_remediation lists 'CRITICAL, HIGH, MEDIUM, LOW' in description only, not as enum. LLMs may hallucinate invalid values.
No error handling guidance. Implementation catches exceptions (e.g., 'Failed to save history') but returns generic error dicts. No recovery hints (e.g., 'Try again' or 'Check URL format'). Agents cannot self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
URL parameter lacks format validation description. No guidance on valid schemes (http/https), domain format, or what happens if URL is unreachable. LLMs may pass malformed URLs.
Response field naming inconsistency. scan_headers returns 'cve_ids' (array) and 'in_cisa_kev' (boolean), but no downstream tool accepts these fields. Broken tool chain, agent cannot reuse findings for further analysis.