WCAG 2.2 accessibility rules as an MCP server for AI coding agents
Server defines 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get_*, check_*). Descriptions are adequate (80-180 chars) but lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Parameters are typed and mostly described, but lack constraints (enums, ranges, format hints). Output schemas are not documented, LLMs cannot predict response structure. Error handling exists but is generic. No tool annotations (readOnlyHint, etc.). check_code tool has good heuristic logic but lacks documented output schema and confidence scoring guidance.
Run pattern-based static analysis on an HTML or JSX code snippet to check for common accessibility violations. Covers 24 patterns across images, forms, keyboard, controls, headings, tables, media, and animation.
Retrieve the complete database of all 64 WCAG 2.2 accessibility rules.
Get all accessibility rules for a given category (e.g., "forms", "images", "keyboard").
Get a specific WCAG 2.2 accessibility rule by its ID (e.g., "img-has-alt") or WCAG success criterion number (e.g., "1.1.1").
Get all WCAG 2.2 rules for a specific compliance level.
Output schemas not documented. LLMs cannot predict response structure for check_code findings (matchIndex, confidence, kind fields). Agents cannot plan downstream processing without knowing what fields to extract.
check_code tool lacks documented confidence scoring and heuristic explanation. LLMs cannot reason about finding reliability or prioritize high-confidence violations. Confidence field exists in code but is not exposed in tool description.
get_rule parameter 'query' accepts both rule IDs and WCAG numbers but lacks format guidance. LLMs may pass invalid formats. Should specify: 'Rule ID (kebab-case, e.g. img-has-alt) or WCAG criterion (X.X.X format, e.g. 1.1.1)'.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
No tool annotations (readOnlyHint). All tools are read-only but this is not declared in schema. Agents cannot distinguish safe tools from destructive ones without explicit hints.
get_all_rules lacks pagination guidance. Returning 64 rules is manageable, but description should state 'Returns all 64 rules in a single response' to set expectations. No limit parameter offered.