mcpField
D
DesignScan

DesignScan

本地服务
github.com/ms-zaman媒体与设计120 周前更新

关于 DesignScan

DesignScan 从网站提取设计令牌,并生成供编码 Agent 和开发者使用的 DESIGN.md、W3C Design Tokens 或 CSS。它还可生成 HTML 预览,并依据提取的令牌添加确定性的实现说明。

主要功能

  1. 01从网站 URL 提取令牌
  2. 02生成 DESIGN.md、W3C 或 CSS
  3. 03创建独立 HTML 预览
  4. 04添加基于令牌的 Agent 指引
  5. 05构建精选品牌规范库

适用场景

  1. 01复现网站的视觉风格
  2. 02为编码 Agent 准备设计令牌
  3. 03在预览中检查颜色和字体
  4. 04为品牌库生成令牌文件

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"ms-zaman-designscan": {
"command": "npx",
"args": [
"-y",
"@designscan/extractor"
]
}
}
}
启动命令npx -y @designscan/extractor

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

安装包
npm@designscan/extractor0.4.0

工具

1

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是要分析的页面,例如 https://stripe.com(省略时默认使用 https://)
themeenum否通过 prefers-color-scheme 捕获的配色方案(默认值:light;'both' 会将单独的深色模式结果合并到输出中)light | dark | both
formatenum否输出格式(默认值:md)json | md | w3c | css
timeoutMsinteger否每次导航的超时时间,单位为毫秒(默认值:45000)

详细介绍

DesignScan

URL → 设计令牌 → DESIGN.md。将任意网站 URL 交给它,即可生成符合规范的 DESIGN.md 文件(YAML 令牌 + 文本说明),供 AI 编码 Agent 阅读并匹配该网站的视觉风格。

预览

每次运行还可以生成一份独立的 HTML 效果预览(--preview),呈现提取的令牌——颜色角色、字体样张、间距/圆角比例、组件——让你在信任结果之前先直观检查:

DesignScan preview proof sheet for stripe.com

给编码 Agent 的说明

DESIGN.md 总是由 AI 编码 Agent 使用(Cursor、Claude Code 等)。 因此,我们不会自行运行大模型来判断语义意图,而是在每个文件末尾加入 给编码 Agent 的说明部分:根据实际令牌计算得出的确定性提取指引,涵盖标题层级与低饱和度 text 颜色的关系、低于次级 AA 标准的正文对比度、品牌字体回退、主按钮规范、形状/间距节奏。推理过程由我们负责(无需 API 密钥);你已经在使用的 Agent 会免费完成应用。

这会显著影响输出。下方展示的是同一份 stripe.DESIGN.md:左侧由忽略说明的 Agent 克隆,右侧由遵循说明的 Agent 克隆——令牌、布局和文案完全相同:

Same DESIGN.md, with vs without the agent notes

品牌资料库

examples/ 中收录了不断扩充、经过筛选的真实品牌规范库——每个品牌都有一份 DESIGN.md、一个 HTML 预览和原始令牌 JSON,并在 examples/README.md 中编入索引(视觉图库:index.html)。

DesignScan brand corpus gallery

使用 pnpm seed rebuild 从已提交的 JSON 重建资料库(无需网络),或使用 pnpm seed add <url> 添加品牌——系统会自动跳过退化页面或受到机器人验证拦截的页面,确保资料库只收录可信的规范。

Monorepo 布局

路径内容
packages/extractor提取与生成引擎(Playwright → 令牌 → DESIGN.md)。
packages/designscan简短的 npm 名称——引擎外层的轻量 CLI 封装(npx designscan <url>)。
examples/品牌资料库——每个品牌包含 DESIGN.md、HTML 预览和令牌 JSON,并提供图库索引。

安装(作为 CLI / 库)

引擎以可发布的 @designscan/extractor 软件包形式提供,包含 designscan CLI 和带类型的库;另提供 designscan 作为简短的 npx 别名。

# one-off, no install
npx designscan stripe.com --md --out stripe.DESIGN.md

# or install the CLI
npm i -g @designscan/extractor
npx playwright install chromium   # one-time (the engine drives headless Chromium)
designscan stripe.com --md --preview --out stripe.DESIGN.md

快速开始(从此仓库开始)

这是一个 pnpm 工作区(运行 corepack enable 获取 pnpm)。

pnpm install
pnpm --filter @designscan/extractor exec playwright install chromium  # one-time

# token profile (JSON) for any URL
pnpm extract stripe.com

# generate a DESIGN.md (light theme by default)
pnpm extract stripe.com --md --out out/stripe.DESIGN.md

# pick a theme: light (default) | dark | both
pnpm extract vercel.com --md --theme dark --out out/vercel.dark.DESIGN.md

# both = bundle light + dark into one file (parallel *-dark tokens)
pnpm extract vercel.com --md --theme both --out out/vercel.DESIGN.md

# --preview = also write a self-contained HTML proof sheet beside the file,
# rendering every token (swatches, type specimens, scales, components) so you
# can eyeball the extraction before trusting it (--theme both adds a Light/Dark toggle)
pnpm extract stripe.com --md --preview --out out/stripe.DESIGN.md
# → out/stripe.DESIGN.md  +  out/stripe.preview.html

# --format = pick your output: json (profile) | md (DESIGN.md) | w3c | css
pnpm extract stripe.com --format w3c --out out/stripe.tokens.json  # W3C Design Tokens (Style Dictionary etc.)
pnpm extract stripe.com --format css --out out/stripe.tokens.css   # CSS custom properties, paste-ready
# (--theme both folds a genuinely distinct dark pass into every format)

# --strict = exit non-zero if the result looks degenerate (bot challenge / too
# few signals), for CI/automation that must not consume junk tokens
pnpm extract stripe.com --strict --quiet

# seed / rebuild the curated brand corpus under examples/
pnpm seed add tailwindcss.com vercel.com   # extract live + add to the corpus
pnpm seed rebuild                          # regen md/preview/gallery from JSON

脚本(根目录)

脚本功能
pnpm extract <url> [--format json|md|w3c|css] [--theme light|dark|both] [--preview] [--strict] [--timeout ms] [--out f]按指定格式提取令牌:配置 JSON、DESIGN.md(--md 简写)、W3C Design Tokens 或 CSS 自定义属性(--theme both = 在一个文件中同时输出浅色 + 深色主题;--preview = 在旁边生成 HTML 效果预览;--strict = 结果退化时以非零状态码退出)
pnpm seed rebuild / pnpm seed add <url…>构建 examples/ 下的品牌资料库(md + 预览 + 图库;add 会实时提取)
pnpm build编译可发布的软件包(tsc → dist)
pnpm typecheck对所有软件包进行类型检查
pnpm test运行测试套件(vitest)
pnpm checkBiome——格式化 + lint(使用 pnpm format 自动修复)
pnpm lint:designmd根据官方规范验证 examples/*.DESIGN.md

每次推送/PR 时,以上脚本都会通过 GitHub Actions 运行。 该引擎也可通过其公共 API 作为库使用 (packages/extractor/src/index.ts)。

状态

  • 步骤 1 — 提取引擎(Playwright → 干净的令牌配置文件)
  • 步骤 2 — 生成器(令牌配置文件 → 符合规范的 DESIGN.md,通过 lint 检查)
  • 步骤 3 — HTML 预览(--preview → 独立的令牌演示页,可切换浅色/深色模式)
  • [~] 步骤 4 — Agent 指引。现在,每个 DESIGN.md 都包含 给编码 Agent 的说明部分:针对每次提取生成确定性指引(对比度、标题层级、字体回退),让使用令牌的 Agent 能有目的地应用令牌——我们这边不使用大模型。(可选的大模型优化文案仍在未来计划中。)
  • [~] 步骤 5 — 品牌种子库(pnpm seed,精选语料库 + 图库)已完成;下一步是 npx … add / checkout

完整路线图和引擎详情请参见 packages/extractor/README.md。

评论

支持 Markdown

第一次接触 MCP?

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

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