mcpField
U
Unofficial MCP Server for USWDS

Unofficial MCP Server for USWDS

本地服务
github.com/bibekpdl开发工具25 天前更新

关于 Unofficial MCP Server for USWDS

Unofficial MCP Server for USWDS 为 AI 工具提供 USWDS 官方模板、文档和页面校验能力,面向构建政府网站界面的开发者。它可组合页面片段,并检查类名、组件结构和基础无障碍属性;项目与 GSA 等官方团队无关。

主要功能

  1. 01获取组件与页面模板 HTML
  2. 02组合结构化页面片段
  3. 03校验类名、结构与 ARIA
  4. 04查询 USWDS 类名和文档
  5. 05检查项目集成配置

适用场景

  1. 01生成符合 USWDS 结构的服务页面
  2. 02检查 AI 生成标记中的类名与无障碍问题

MCP 相关

这是供 MCP 客户端调用的 MCP 服务,提供工具、资源和提示词,用于查询 USWDS 内容、组合页面及校验标记。所有工具均为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bibekpdl-uswds": {
"command": "npx",
"args": [
"-y",
"uswds-mcp"
]
}
}
}
启动命令npx -y uswds-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmuswds-mcp0.2.1

工具

12

收录的工具列表 · 更新于 5 天前

参数类型必填说明
limitinteger否
querystring是
typesarray否

详细介绍

uswds-mcp

让 AI 生成的政府 UI 真正符合 USWDS 规范。

一个 MCP 服务,为 Claude、Cursor、Copilot、Windsurf 及其他任何 MCP 客户端提供官方 U.S. Web Design System 标记、了解所有真实 USWDS 类的验证器,以及可输出无障碍、通过验证的页面的页面组合器。

非官方且独立。与 GSA、TTS 或官方 USWDS 团队无关联,未获其认可,也非由其维护。请参阅 NOTICE.md。

问题

大模型凭记忆编写 USWDS。它们会编造 usa-btn,忘记让移动菜单正常工作的 usa-overlay,添加没有容器的 usa-card 标记,还会把手风琴组件连到空处。结果看起来似乎没问题,实际上却暗藏缺陷。

uswds-mcp 填补了这一环:

recommend_uswds_structure  →  get_component_markup  →  compose_uswds_page  →  validate_uswds_markup
        (what to use)          (official HTML)         (accessible page)       (fix until 0 errors)
不使用 uswds-mcp使用 uswds-mcp
凭记忆回想类名使用 @uswds/uswds 模板渲染官方 HTML(178 个片段、约 70 个组件和页面模板,涵盖所有变体)
“看起来没问题”验证器会拒绝任何不在 USWDS 样式表中的 usa-* 类,并给出相似项建议
结构缺失而无人察觉BEM、必需的子元素、ARIA 关联、表单控件结构、页眉覆盖层、脚本、标题顺序、重复 id、链接/图像/按钮名称
原样输出模板compose_uswds_page 根据你的实际页面区域构建页面;CI 中 axe-core 违规数为零
验证器发现的问题示例
{
  "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\"?"
}

发现结果包含出错元素、修复建议、要查找的组件以及文档链接,让模型可以自行修正输出。

快速开始

npx -y uswds-mcp

将其添加到你的 MCP 客户端:

{
  "mcpServers": {
    "uswds": { "command": "npx", "args": ["-y", "uswds-mcp"] }
  }
}

Claude Code:claude mcp add uswds -- npx -y uswds-mcp

Claude Desktop、Cursor、VS Code、Windsurf 等的配置方法:docs/CLIENTS.md。可直接使用的配置位于 examples/。

无需网络、API 密钥或导入步骤:数据已包含在程序包中。

工具

工具用途
get_component_markup获取组件/页面模板及其变体(accordion、footer + slim、sign-in 等)的官方 HTML。可识别常见名称(dropdown → select)。
compose_uswds_page根据结构化页面区域构建完整页面:主视觉区域、内容、警报、摘要框、卡片、流程列表、步骤指示器、手风琴、表格、表单、联系方式。
validate_uswds_markup验证片段或完整页面:真实类名、组件结构、表单、ARIA、无障碍基础要求。
find_uswds_classes查找真实类名,包括工具类和响应式变体(margin top 2、tablet grid col 6)。
generate_uswds_page根据自由文本需求快速生成;返回可编辑的页面区域规范、带方括号的占位内容,以及自带的验证结果。
recommend_uswds_structure为服务或页面推荐以 USWDS 为先的结构。
search_uswds搜索文档、无障碍和使用指南(支持同义词扩展)。
get_component / get_pattern / get_template提供结构化指南,以及组件的规范标记。
get_uswds_integration_recipe提供 Next.js、Vite/React、静态 HTML、Rails、Drupal 的框架配置方法。
validate_uswds_project_setup检查 CSS 导入路径错误、缺失脚本、CDN 使用、复制的 dist、全局 CSS 风险。

所有工具均为只读。参数和推荐使用顺序请参阅 docs/TOOLS.md。

资源: uswds://component/{slug}、uswds://pattern/{slug}、uswds://template/{slug}、uswds://token/{category}、uswds://package/{name} 提示词: build_agency_website、build_service_page、audit_uswds_page、convert_page_to_uswds、integrate_uswds_in_project

示例

“构建一个页面,让居民续办钓鱼许可证:资格要求、费用表、办理步骤、常见问题、联系方式。”

模型调用 compose_uswds_page,并获取一个完整页面,其中包含横幅、跳过导航、页眉(带有 usa-overlay)、面包屑、摘要框、带标题和作用域表头的条纹表格、流程列表、折叠面板、联系方式、精简页脚和标识,以及仍需填入实际内容的 placeholders 列表和验证结果。

想先看看效果?运行评分卡:

npm run eval
scenario                        unknown classes  errors  warnings  axe violations
'Apply for housing assistance'  0                0       0         0
'Renew a fishing permit'        0                0       0         0
...

有帮助吗?

在一项小型测试中(5 项任务,使用同一个模型,分别在有无服务的情况下测试),使用 uswds-mcp 构建的页面中,5 个页面全部没有验证器错误;不使用该工具时,5 个页面中有 1 个出现错误。两种情况下,模型都没有编造类名;但在不使用工具时,它遗漏了一些结构,例如让移动菜单正常工作的页眉叠加层、横幅内部结构和折叠面板按钮类型。样本规模较小,且每项任务只运行一次;请参阅 docs/COMPARISON.md 中的注意事项和方法。

工作原理

  1. 导入(npm run ingest):使用 JSON 夹具渲染每个官方 @uswds/uswds twig 模板,生成规范 HTML;从官方样式表中提取所有类名,并为官方文档编制索引(uswds-site)。
  2. 根据真实数据进行验证:验证器会针对每个官方代码片段进行测试(这些片段必须通过),并针对包含 30 种典型 LLM 错误的语料库进行测试(这些错误必须被捕获)。
  3. 保持最新:文档和标记来自同一个 USWDS 版本(由测试强制保证),每月工作流都会重新导入并创建 PR。

当前数据:USWDS 3.14.0。

限制

  • 静态分析。它无法判断色彩对比度、渲染页面上的阅读顺序或真实的屏幕阅读器行为。USWDS 组件本身并不能让网站符合 Section 508 标准;请继续使用 axe、键盘和屏幕阅读器进行测试。
  • 允许使用自定义(非 usa-)类,且不会对其进行验证。
  • 上游夹具中尖括号内的文本(例如 <Project title>)是占位内容。

开发

npm install
npm test         # unit, self-consistency over official markup, MCP end-to-end, axe-core
npm run eval
npm run ingest   # refresh from upstream

请参阅 CONTRIBUTING.md 和 CHANGELOG。

许可证

MIT。有关 USWDS 归属说明以及已索引 USWDS 材料的许可说明,请参阅 NOTICE.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。