uswds-mcp
Integrates with VS Code via GitHub Copilot MCP support to provide USWDS guidance, component retrieval, and validation within the editor.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@uswds-mcpgenerate a USWDS service page for a permit application"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
uswds-mcp
Make AI-generated government UI actually USWDS-compliant.
An MCP server that gives Claude, Cursor, Copilot, Windsurf and any other MCP client the official U.S. Web Design System markup, a validator that knows every real USWDS class, and a page composer that outputs accessible, validated pages.
Unofficial and independent. Not affiliated with, endorsed by, or maintained by GSA, TTS, or the official USWDS team. See NOTICE.md.
The problem
LLMs write USWDS from memory. They invent usa-btn, forget the usa-overlay that makes the mobile menu work, put usa-card markup without its container, and wire up accordions to nothing. The result looks plausible and is subtly broken.
uswds-mcp closes that loop:
recommend_uswds_structure → get_component_markup → compose_uswds_page → validate_uswds_markup
(what to use) (official HTML) (accessible page) (fix until 0 errors)Without | With uswds-mcp |
Class names recalled from memory | Official HTML rendered from the |
"Looks right" | Validator rejects any |
Missing structure goes unnoticed | BEM, required children, ARIA wiring, form control structure, header overlay, scripts, heading order, duplicate ids, link/image/button names |
Stock template output |
|
What a validator finding looks like
{
"severity": "error",
"rule": "unknown-class",
"message": "\"usa-alrt\" is not a class defined by USWDS.",
"selector": "div.usa-alrt",
"snippet": "<div class=\"usa-alrt usa-alert--eror\">",
"suggestion": "Did you mean \"usa-alert\"?"
}Findings carry the offending element, a fix suggestion, the component to look up, and a docs link, so the model can repair its own output.
Related MCP server: Basecoat UI MCP
Quick start
npx -y uswds-mcpAdd it to your MCP client:
{
"mcpServers": {
"uswds": { "command": "npx", "args": ["-y", "uswds-mcp"] }
}
}Claude Code: claude mcp add uswds -- npx -y uswds-mcp
Setup for Claude Desktop, Cursor, VS Code, Windsurf and others: docs/CLIENTS.md. Ready-made configs are in examples/.
No network, API key, or ingest step needed: the data ships in the package.
Tools
Tool | Use |
| Official HTML for a component/page template and its variants ( |
| Build a full page from structured sections: hero, content, alert, summary box, cards, process list, step indicator, accordion, table, form, contact. |
| Validate fragments or full pages: real class names, component structure, forms, ARIA, accessibility basics. |
| Look up real classes, including utilities and responsive variants ( |
| Quick start from free-text requirements; returns an editable section spec, bracketed placeholders, and its own validation. |
| USWDS-first structure for a service or page. |
| Search docs, accessibility and usage guidance (with synonym expansion). |
| Structured guidance, plus the canonical markup for components. |
| Framework setup for Next.js, Vite/React, static HTML, Rails, Drupal. |
| Catch wrong CSS import paths, missing scripts, CDN use, copied |
All tools are read-only. See docs/TOOLS.md for arguments and recommended sequences.
Resources: uswds://component/{slug}, uswds://pattern/{slug}, uswds://template/{slug}, uswds://token/{category}, uswds://package/{name}
Prompts: build_agency_website, build_service_page, audit_uswds_page, convert_page_to_uswds, integrate_uswds_in_project
Example
"Build a page where residents renew a fishing permit: eligibility, fees table, steps, FAQ, contact."
The model calls compose_uswds_page and gets back a complete page with banner, skipnav, header (with usa-overlay), breadcrumbs, summary box, striped table with caption and scoped headers, process list, accordion, contact details, slim footer and identifier, plus a list of the placeholders that still need real content, and a validation result.
Prefer to see it first? Run the scorecard:
npm run evalscenario unknown classes errors warnings axe violations
'Apply for housing assistance' 0 0 0 0
'Renew a fishing permit' 0 0 0 0
...Does it help?
In a small test (5 tasks, same model, with and without the server) pages built with uswds-mcp had 0 validator errors on 5 of 5 pages, versus 1 of 5 without it. The model did not invent class names in either case; what it missed without the tools was structure, such as the header overlay that makes the mobile menu work, banner internals, and accordion button types. It is a small, single-run sample, so see the caveats and method in docs/COMPARISON.md.
How it works
Ingest (
npm run ingest): renders every official@uswds/uswdstwig template with its JSON fixtures into canonical HTML, extracts all class names from the official stylesheet, and indexes the official docs (uswds-site).Validate against ground truth: the validator is tested against every official snippet (they must pass) and against a corpus of 30 typical LLM mistakes (they must be caught).
Stay current: docs and markup come from the same USWDS version (enforced by a test), and a monthly workflow re-ingests and opens a PR.
Current data: USWDS 3.14.0.
Limits
Static analysis. It cannot judge color contrast, reading order on rendered pages, or real screen-reader behavior. USWDS components do not by themselves make a site Section 508 compliant; keep testing with axe, keyboard and screen readers.
Custom (non-
usa-) classes are allowed and not validated.Upstream fixture text in angle brackets (e.g.
<Project title>) is placeholder content.
Develop
npm install
npm test # unit, self-consistency over official markup, MCP end-to-end, axe-core
npm run eval
npm run ingest # refresh from upstreamSee CONTRIBUTING.md and the CHANGELOG.
License
MIT. See NOTICE.md for USWDS attribution and the licensing notes for indexed USWDS material.
Available Tools
9 toolsgenerate_uswds_pageGenerate USWDS PageC
Generate framework-neutral USWDS HTML and framework adaptation notes.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | ||
| page_type | Yes | ||
| agency_context | Yes | ||
| content_requirements | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It mentions generating HTML and notes but omits behavioral aspects like whether it destroys existing content, requires authentication, or has performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly terse for a generation tool with multiple parameters. It could front-load key constraints without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no param descriptions, and zero usage guidance, the description is starkly incomplete. An agent cannot reliably invoke this tool without guessing parameter semantics or expected output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain any of the four parameters (framework, page_type, agency_context, content_requirements). The schema only provides type and minLength, leaving the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates USWDS HTML and framework adaptation notes. The verb 'Generate' and resource 'USWDS page' are specific. However, it does not differentiate from sibling tools like search_uswds or get_component, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like validate_uswds_markup or recommend_uswds_structure. The description offers no context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_componentGet USWDS ComponentC
Return structured component guidance, package metadata, accessibility guidance, examples, and source links.
| Name | Required | Description | Default |
|---|---|---|---|
| slug_or_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only lists return contents but does not disclose behavioral traits such as read-only nature, required authentication, rate limits, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that lists items. It is concise but could be more structured (e.g., bullet points) and front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 1 parameter, no output schema, and no annotations, the description is insufficient. It lacks details on how to invoke the tool correctly, what the expected input format is, or example usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'slug_or_name' has no description in the input schema, and schema description coverage is 0%. The description does not clarify what a valid slug or name is, or how to format it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the return value 'structured component guidance, package metadata, accessibility guidance, examples, and source links', using a specific verb 'Return'. However, it does not explicitly distinguish this tool from siblings like 'get_pattern' or 'get_template', which might have similar return structures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are no exclusions, context, or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_patternGet USWDS PatternC
Return structured pattern guidance and related implementation notes.
| Name | Required | Description | Default |
|---|---|---|---|
| slug_or_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention auth requirements, side effects, or output structure, offering only a vague promise of 'structured pattern guidance'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with purpose, which is concise. However, it is too brief to be helpful given the lack of parameter documentation and contextual cues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, no output schema, and no annotations, the description should explain what constitutes 'pattern guidance' and how it differs from related tools. It fails to provide sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not explain the single parameter 'slug_or_name'. No guidance on format, examples, or how to construct valid input is provided, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'structured pattern guidance and related implementation notes', which identifies the action and resource. However, it does not differentiate from sibling tools like get_component or get_template, which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any mention of use cases, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateGet USWDS TemplateC
Return structured template guidance and markup references.
| Name | Required | Description | Default |
|---|---|---|---|
| slug_or_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose behavioral traits like authentication requirements, error conditions, or whether the operation is read-only. The description only states what it returns, not how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is too brief to be fully effective. It could be expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context of 8 sibling tools and a single parameter with no output schema, the description is insufficient. It does not explain what constitutes a template in USWDS, the structure of the returned guidance, or how it differs from similar tools like get_component.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the schema. The parameter slug_or_name is given no explanation, leaving the agent without guidance on what values are acceptable or how they affect the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns structured template guidance and markup references, indicating a specific verb and resource. It distinguishes from siblings like get_component and get_pattern by focusing on templates, though it doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_component or get_pattern. No exclusions or context provided, leaving the agent to guess the appropriate scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uswds_integration_recipeGet USWDS Integration RecipeC
Return framework-specific USWDS setup guidance for npm, assets, JavaScript, CSS, and migration.
| Name | Required | Description | Default |
|---|---|---|---|
| no_cdn | No | ||
| framework | Yes | ||
| migration_scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond returning guidance. It does not indicate whether the tool is read-only, requires authentication, or has rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. However, it sacrifices parameter detail for brevity, which reduces its overall utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no schema description coverage, and no output schema, the description is severely incomplete. It fails to explain what 'framework-specific' means or how the parameters affect the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters. The three parameters (no_cdn, framework, migration_scope) are completely unexplained, leaving the agent to infer their meaning from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns framework-specific USWDS setup guidance for npm, assets, JavaScript, CSS, and migration. This distinguishes it from sibling tools like validate_uswds_project_setup or get_component, which focus on validation or individual components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention when to prefer this over search_uswds or recommend_uswds_structure, nor does it specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_uswds_structureRecommend USWDS StructureC
Recommend a USWDS-first page or site structure for an agency service.
| Name | Required | Description | Default |
|---|---|---|---|
| audience | Yes | ||
| framework | No | ||
| agency_type | Yes | ||
| constraints | No | ||
| service_goal | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states what the tool does, but not how it behaves—e.g., what 'recommend' returns, prerequisites, or side effects. Major gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, which is concise but too minimal. Could include more detail without becoming verbose. Information density is low.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is severely incomplete. The agent lacks essential context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description omits any parameter guidance. With 5 parameters (3 required), the agent has no information about 'audience', 'framework', 'constraints', etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Recommend' and resource 'USWDS-first page or site structure', clearly distinguishing from siblings like 'validate_uswds_project_setup' and 'get_component'. Purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_pattern' or 'generate_uswds_page'. The description mentions 'for an agency service' but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_uswdsSearch USWDSC
Search structured USWDS docs and implementation records.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states 'Search' but does not clarify if it is read-only, whether results are paginated, or any side effects. The limit parameter (max 25) is in the schema but not mentioned in the description, leaving agents without crucial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and concise, but it lacks essential information. Conciseness should not come at the cost of completeness. The structure is flat and does not front-load key details or provide a summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain return values, parameter roles, or behavior. This is inadequate for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, placing full burden on the description to explain parameters. The description does not mention query, limit, or types at all. Agents receive zero guidance on how to use these parameters, leading to likely errors in invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and identifies the resource ('structured USWDS docs and implementation records'). It clearly indicates the tool's purpose as a search across USWDS documentation. However, it does not explicitly distinguish itself from sibling tools like get_component or get_pattern, which also retrieve USWDS information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with sibling tools. Users cannot determine if this is a broad search for discovery or for specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_uswds_markupValidate USWDS MarkupC
Static validation for common USWDS markup, accessibility, and token-usage issues.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | ||
| page_context | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'static validation' implying non-destructive, but does not disclose output format, error behavior, or any side effects. Lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Efficiently conveys the core purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, low parameter coverage, and brief description. Does not explain return values, error handling, or how to interpret results. For a validation tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the two parameters. 'html' is obvious but 'page_context' is opaque. No additional semantic information beyond schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates USWDS markup, accessibility, and token-usage issues. The verb 'validate' and resource 'USWDS markup' are specific. It distinguishes from sibling 'validate_uswds_project_setup' which validates project setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. No mention of prerequisites or exclusions. Sibling tools exist but no differentiation criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_uswds_project_setupValidate USWDS Project SetupC
Check provided project files for common USWDS framework integration issues such as import paths, assets, scripts, CDN usage, and global CSS risk.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | ||
| no_cdn | No | ||
| framework | No | ||
| file_paths | No | ||
| package_json | No | ||
| migration_scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states it 'checks' for issues, leaving unclear whether the tool modifies files, is read-only, or what output it produces. No mention of side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and no redundancy. However, key information is not front-loaded; the sentence starts with 'Check provided project files' rather than stating the core function first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0 required parameters, 100% uncovered schema, no output schema, and no annotations, the description is severely incomplete. It does not explain the purpose of each parameter, expected input format, or return value, leaving critical gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds minimal meaning to the six parameters. It mentions CDN usage (relates to no_cdn) but does not explain files, framework, file_paths, package_json, or migration_scope. Users must infer their purpose from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it validates USWDS project files for integration issues and lists specific areas like import paths, assets, scripts, CDN usage, and global CSS. This differentiates it from sibling tools like validate_uswds_markup, which focuses on markup validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like get_uswds_integration_recipe or validate_uswds_markup. The description implies usage for checking project setup but provides no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.1.4- First observed
generate_uswds_page - First observed
get_component - First observed
get_pattern - First observed
get_template - First observed
get_uswds_integration_recipe - First observed
recommend_uswds_structure - First observed
search_uswds - First observed
validate_uswds_markup - First observed
validate_uswds_project_setup
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: validation of project setup vs markup, search, retrieval of component/pattern/template details, recommendation, page generation, and integration recipes. No overlap in intent.
All tools follow a consistent verb_noun pattern in snake_case (e.g., validate_uswds_project_setup, get_component). Naming is predictable and uniform.
9 tools is well-scoped for the USWDS domain, covering validation, search, component/pattern/template guidance, structure recommendation, page generation, and integration without being excessive.
The tool surface covers core USWDS tasks: setup validation, markup validation, search, component guidance, page generation, and integration recipes. Minor gap: no tool for listing all components or managing versions.
Maintenance
Related MCP Connectors
Serves your design system and coding standards to coding agents, so they stop guessing.
Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.
Give your agent a real design system: tokens, measured WCAG contrast, and rules to follow.
Design systems, UI prompts, and layout variations for AI coding tools.
Related MCP Servers
- FlicenseBqualityDmaintenanceIntegrates Korea's government digital design system (KRDS) with AI assistants, enabling users to search components, validate code compliance, and access design tokens for Korean government digital services.91-
- AlicenseAqualityDmaintenanceProvides access to 77 pre-built, accessible Basecoat CSS UI components across forms, navigation, feedback, interactive, and layout categories, enabling AI assistants to retrieve HTML components and usage documentation for building user interfaces.726 npm4MIT
- AlicenseAqualityCmaintenanceProvides AI coding assistants with on-demand access to component specs, test scenarios, accessibility requirements, and build guides from the Web UI Component Specification.10MIT
- AlicenseNot gradedqualityBmaintenanceProvides design systems, UI prompts, and layout variation guidance to AI coding tools for generating better user interfaces.292 npm2,037MIT