Exposes WCAG accessibility scanning as MCP tools for AI agents. Uses McpAgent (Durable Objects) for session handling and proxies to siteproof-public-api for actual scanning.
SiteProof MCP has 5 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization), and input schemas are present but minimal. No output schemas documented. Error handling is absent, no recovery guidance, categorization, or actionable error messages. Tool names are verb-noun compliant (scan_*, get_*), but descriptions lack WHEN/WHY context. Parameters lack detailed constraints (e.g., 'depth' enum has no explanation of performance tradeoffs). No security considerations documented despite API key usage. Composition is reasonable (single responsibility per tool), but missing chaining IDs in responses and pagination support.
EAA compliance estimate
Code fix for a specific WCAG rule
Scan a website for WCAG 2.1 accessibility issues and UX problems. Returns score, grade, and specific issues with fix suggestions.
AI Engine Optimization scan
AI agent config security scan
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. scan_accessibility, scan_aeo, scan_agentproof, get_compliance_status return unknown structures.
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). scan_aeo ('AI Engine Optimization scan') and scan_agentproof ('AI agent config security scan') lack WHEN/WHY context. LLMs cannot distinguish when to call each vs. scan_accessibility.
No error handling or recovery guidance. If API call fails (invalid URL, rate limit, auth error), LLM receives raw error with no actionable next step. Missing error categorization (retryable vs. user-fixable).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameter descriptions lack constraints. 'depth' enum in scan_accessibility has no explanation of 'quick' (~2s regex) vs. 'deep' (~15s browser, Pro only). LLM cannot reason about performance/cost tradeoffs.
No pagination or result limits documented. If scan_accessibility returns 100+ issues, response bloats context window. No limit parameter or cursor guidance.