mcpField
D
designfit

designfit

本地服务
github.com开发工具73 周前更新

关于 designfit

designfit 是用于对照 Figma 设计检查前端实现的 MCP 服务和 Claude Code 技能。它按设计令牌和元素几何信息进行带容差的比较,并生成可执行的修复清单,而非依赖像素差异。

主要功能

  1. 01从 Figma 提取设计数据
  2. 02校验令牌与元素几何信息
  3. 03报告违规项和未映射元素
  4. 04返回带评分的校验结果
  5. 05通过保真技能迭代检查

适用场景

  1. 01核对 AI 构建的页面与 Figma 画框
  2. 02发现布局和颜色偏差
  3. 03指导前端逐轮修复

MCP 相关

它向 MCP 客户端提供 `designfit_extract` 和 `designfit_validate` 工具。提取工具接受 Figma 链接或提供的节点数据;校验工具返回通过状态、评分、违规项和未映射元素。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"as9978-designfit": {
"command": "npx",
"args": [
"-y",
"designfit"
],
"env": {
"FIGMA_TOKEN": "<FIGMA_TOKEN>"
}
}
}
}
启动命令npx -y designfit
需要配置的环境变量
FIGMA_TOKEN密钥Figma personal access token. Lets designfit_extract fetch frames; without it, pass the /nodes JSON instead.

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

安装包
npmdesignfit0.2.1

工具

2

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

参数类型必填说明
urlstring是
designobject是
design.rootobject是
design.root.idstring是
design.root.namestring是
design.root.frameobject是
design.root.frame.hnumber是
design.root.frame.wnumber是
design.root.frame.xnumber是
design.root.frame.ynumber是
design.root.tokensobject是
design.root.tokens.fillstring否
design.root.tokens.colorany否
design.root.tokens.opacitynumber否
design.root.tokens.fontSizenumber否
design.root.tokens.fontFamilystring否
design.root.tokens.fontWeightnumber否
design.root.tokens.lineHeightnumber否
design.root.tokens.borderColorany否
design.root.tokens.borderWidthnumber否
design.root.tokens.borderRadiusnumber否
design.root.tokens.letterSpacingnumber否
design.root.childrenarray是
design.root.tokenSourcesobject否
viewportobject是
viewport.widthnumber是
viewport.heightnumber是
tolerancesobject否
tolerances.colorobject否
tolerances.color.deltaEnumber否
tolerances.fontSizeobject否
tolerances.fontSize.pxnumber否
tolerances.geometryobject否
tolerances.geometry.sizenumber否
tolerances.geometry.positionnumber否
tolerances.lineHeightobject否
tolerances.lineHeight.pxnumber否
tolerances.borderWidthobject否
tolerances.borderWidth.pxnumber否
tolerances.borderRadiusobject否
tolerances.borderRadius.pxnumber否
tolerances.letterSpacingobject否
tolerances.letterSpacing.pxnumber否
componentMaparray是

详细介绍

designfit

根据 Figma 设计验证 AI 构建的前端 — 无需反复进行截图差异比较。

https://github.com/user-attachments/assets/01df52c9-90eb-4abc-b56c-fe18b31076cd

在一个包含 360 个节点的 Figma 画板上进行的实际运行:designfit_extract 根据链接读取画板,然后 designfit_validate 对三次构建迭代进行评分,结果从 87 到 89,再到 100 pass。整个过程中完全没有进行截图差异比较。

designfit 是一个 MCP 服务 + Claude Code 技能,用于检查渲染后的实现是否符合其 Figma 设计,并向编码 Agent 提供机器可执行的修复清单。它比较的是设计令牌和几何形状(元素框相对于屏幕根节点的位置),而非原始像素,因此字体渲染噪声不会让 Agent 来回反复调整。输入确定,输出也确定。

CI

为什么比较几何形状,而非像素

将 AI 构建的 UI 与 Figma 画板进行截图差异比较,会让人陷入反复调整:抗锯齿和亚像素偏移会被判定为“仍然不对”,于是 Agent 会不停修复。designfit 比较的是设计师实际会注意到的问题 — 颜色错误、尺寸错误、未对齐、元素缺失 — 并将其作为带有明确容差的确定性测量结果。相同的输入,相同的输出,不会反复调整。

详细说明:为什么对 AI 构建的 UI 进行截图差异比较会导致反复调整,以及几何比较如何解决问题。

安装

Claude Code — 作为插件安装:

/plugin marketplace add as9978/designfit
/plugin install designfit@designfit

然后只需执行一次,获取测量引擎所用的浏览器:

npx playwright install chromium

该插件会一并注册 designfit_extract 和 designfit_validate MCP 工具,以及 designfit-fidelity-loop 技能,并会提示你输入一次 Figma 个人访问令牌(可选:不提供令牌时,extract 可接受粘贴的 /nodes JSON)。

其他 MCP 客户端 — 手动安装:

npm install -g designfit
npx playwright install chromium
{ "mcpServers": { "designfit": { "command": "designfit", "env": { "FIGMA_TOKEN": "<token>" } } } }

Windows: 某些 MCP 客户端无法启动裸命令 designfit(它会解析为 designfit.cmd)。请使用 { "command": "npx", "args": ["-y", "designfit"] },或直接指定二进制文件 { "command": "node", "args": ["<absolute-path>/node_modules/designfit/dist/index.js"] }。上面的插件安装已经使用 npx 形式,因此不受影响。

使用

让你的 Agent 实现一个 Figma 画板,并提供该画板的链接。designfit-fidelity-loop 技能会驱动以下流程:designfit_extract → 构建 → 使用 data-designfit-id 标记元素 → designfit_validate → 修复 → 重复,直到 pass → 删除标记。

如果你安装了插件,技能已完成注册。手动安装时则不会自动注册:技能不会从 npm 依赖中自动加载,因此请将随包提供的 skill/SKILL.md 复制到 Agent 的技能目录中(对于 Claude Code:.claude/skills/designfit-fidelity-loop/SKILL.md),以便系统发现该技能。

两个工具:

  • designfit_extract 接受 Figma 链接({ url })、{ fileKey, nodeId },或粘贴的 GET /v1/files/:key/nodes 响应正文({ nodes }),以及可选的 maxDepth,并返回 { design, componentMap, viewport }。获取数据需要在 MCP 服务的环境中设置 FIGMA_TOKEN。隐藏节点会被跳过,仅由矢量组成的画板会作为一个叶节点处理。
  • designfit_validate 接受 { url, viewport, design, componentMap, tolerances? },并返回 { pass, score, violations, unmapped }。

如需了解真实 Figma 画板的完整演练 — 包含循环流程、可直接复制粘贴的提示词和故障排除 — 请参阅 docs/validating-a-figma-frame.md。

v1 范围

一个视口。令牌、几何形状和元素存在性检查。响应式多断点支持和感知型 VLM 回退已列入路线图,不属于 v1 范围。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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