MCP server for Website Security Snapshot API — scan HTTP security headers from Claude and AI agents
Two tools with clear names and reasonable descriptions, but significant gaps in parameter documentation and output schema specification. scan_security_headers has a well-structured input schema with URL validation via Zod, but lacks parameter descriptions in the JSON Schema itself. demo_security_snapshot has no parameters but also no documented output schema. Neither tool documents what fields the response contains, forcing LLMs to infer structure. Error handling exists but is minimal. No tool annotations (readOnlyHint, idempotentHint) despite both being read-only operations.
Returns a pre-baked example security snapshot (no payment required). Use this to test your integration or demonstrate the output format without spending USDC.
Scan a public URL and return its HTTP security header status. Checks: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, HTTPS enforcement, redirect chain, security.txt, robots.txt, sitemap.xml. Costs 0.05 USDC per call (paid automatically from the configured wallet). Use this to audit a website's security hygiene before recommending improvements.
Output schemas not documented. LLMs cannot plan downstream operations or extract specific fields from responses. Both tools return JSON but no schema is provided describing the response structure (e.g., what fields are in the security snapshot object).
Parameter descriptions missing from JSON Schema. The 'url' parameter in scan_security_headers has a description in the schema, but this is inconsistent with the rubric baseline (100% of A+ tools have param descriptions). The description should clarify format expectations and constraints more explicitly.
No tool annotations despite clear read-only semantics. Both tools are read-only operations but lack readOnlyHint annotations. This prevents clients from optimizing caching, retry logic, or permission checks.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. When scan_security_headers fails (e.g., invalid URL, API error), the error message does not guide the LLM on next steps. A 400 error returns the API error body, but does not suggest alternatives or clarify whether the error is retryable.
Payment cost mentioned in description but not enforced or validated. The description states 'Costs 0.05 USDC per call' but there is no parameter to set a budget, no dry-run option, and no confirmation step before charging. Agents could accidentally incur large costs.