MCP server for USWDS development with React-USWDS v11.0.0 and Tailwind support - Full MCP 2025-03-26 spec compliance
The USWDS MCP server has 17 tools with basic schema definitions and descriptions, but significant quality gaps limit overall usability. All tools have descriptions (50-200 chars is optimal; most here cluster around 80-150 chars, which is acceptable), but parameter descriptions and schema completeness vary. Most tools accept framework selection (enum: react, vanilla, tailwind) which shows constraint awareness. However, output schemas are not documented in the tool definitions, forcing LLMs to infer what fields they'll receive. Error handling guidance is minimal. Tool naming follows verb_noun convention well (list_, get_, suggest_, search_), and most names are clear. The core issue: while schemas are visible in test-mcp-tools.js, the actual tool registration code is not shown, so we cannot verify schemas are properly registered in the MCP server implementation. This caps confidence and per-tool scores.
Check WCAG color contrast compliance between foreground and background colors
Compare two USWDS components to understand their differences and when to use each
Generate ready-to-use code for a USWDS component with specified options
Get detailed information about a specific USWDS component including usage, props, and examples
Retrieve USWDS design tokens (colors, spacing, typography, etc.)
Get color palette documentation for Tailwind USWDS
Get detailed documentation for a Tailwind USWDS component
Output schemas not documented. Tool definitions show input parameters but no documented return types or fields. LLMs must infer what data they'll receive, increasing hallucination risk and preventing proper downstream tool chaining.
Ambiguous parameter names in several tools. 'framework' parameter is a string enum in input schemas, but some tools accept optional boolean (e.g., validate_uswds_code) without clear documentation of what true/false mean. LLMs may conflate framework selection with boolean flags.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | 2025-03-26+ | v1 |
Get getting started guide for Tailwind USWDS setup and configuration
Get icon library documentation for Tailwind USWDS
Get JavaScript/interactivity documentation for Tailwind USWDS components
Get typography and text styling documentation for Tailwind USWDS
List available USWDS components, optionally filtered by category and framework
Search USWDS icon library by name or keyword
Search Tailwind USWDS documentation by keyword or query
Suggest USWDS components based on a use case description
Suggest appropriate USWDS layout patterns for a given page type
Validate USWDS HTML/React code for compliance with USWDS standards and accessibility requirements
No error handling guidance. Tool descriptions do not explain what happens on failure (e.g., invalid component name, unreachable API). LLMs have no recovery path when tools fail.
Tailwind USWDS tools (11 - 16) lack strong descriptions. Descriptions like 'Get getting started guide for Tailwind USWDS setup' (62 chars) are below the optimal 50 - 200 char range and do not explain WHEN to use them vs. standard get_component_info. Overlapping functionality with tools 1 - 10.
Tool registration code not visible in source. Test file imports services but does not show explicit MCP tool registration (tools.define()), schema attachment, or how inputs/outputs are marshalled. Cannot verify schemas are properly exposed to the MCP protocol.
Parameter constraints lack documentation. 'category' in get_design_tokens accepts 'all' or specific categories (color, spacing, typography, etc.), but valid values are not documented in the description. LLMs may guess invalid categories.
No idempotency guarantees. Suggest and generate tools may produce different results on repeated calls. No mention of whether these are deterministic. Agent retries could produce inconsistent suggestions.