关于 designer-skill-mcp
designer-skill-mcp 是面向编码 Agent 的 MCP 服务,提供 UI 设计指导、请求路由和确定性静态检查。它只报告静态证据,渲染验证仍由宿主负责。
主要功能
- 01将设计意图路由到操作和参考资料
- 02提供设计与 UX 指导
- 03运行 44 条规则的确定性静态扫描
- 04报告各规则的检查状态
- 05支持可选的 Niblet 参考查询
适用场景
- 01依据现有产品证据规划 UI 改版
- 02静态检查界面代码中的设计问题
- 03按设计请求加载针对性指导
MCP 相关
向 MCP 客户端提供设计提示词、资源和工具,包括意图路由、参考资料加载及静态审查。它不认证渲染质量;渲染检查由宿主负责。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | |
| query | string | 是 | 描述屏幕任务和状态的文本,说明它的功能。传入 selectedIds 时也必须提供。 |
| platform | enum | 否 | web | ios |
| selectedIds | array | 否 | 之前搜索返回的 1 到 3 个屏幕 ID:重新读取这些指定屏幕的元数据,不进行视觉检查。 |
| clientSkillVersion | string | 否 | 主机已知时,填写已安装的 Niblet 技能版本。 |
详细介绍
设置
粘贴到你的 Agent 中(Claude Code、Codex、Cursor,或任何 MCP 客户端)。它会安装技能、连接 MCP 并验证工具:
Add designer-skill alongside Niblet Designer UI. The designer core is keyless: it routes requests, loads guidance and runs supplemental static checks. Niblet optionally supplies real screens and licensed materials; the host owns implementation and rendered verification.
1. Install or refresh the skill into the user skill directory (not this project):
npx skills add PyModel/designer-skill --skill designer-skill -g -y
2. Add the local MCP using this client's native MCP configuration, in the user-level (not project-level) config:
Name: designer-skill
Transport: stdio
Command: npx
Args: -y @pymodel/designer-skill-mcp@latest
No API key is needed. Do not add one.
3. Verify: list the designer-skill server's tools and confirm get_preflight_brief, dispatch_intent, review_and_gate are present. Do not run a sample check.
When setup is complete, confirm the skill is installed and the three named tools are exposed. On UI work: call get_preflight_brief, use dispatch_intent and load only relevant guidance. If an unresolved visual question warrants retrieval, use the separately configured niblet server's discovered tools. Prefer its image content for inspection; designer-skill's catalogue wrappers return metadata or routing guidance only. Run review_and_gate as supplemental static evidence, then perform the required rendered, functional and accessibility checks in the host. Never treat static success as UI PASS. Preserve audit/plan scope. Continue an active authorized task; otherwise report designer-skill ready, and report Niblet paired only if its tools were actually observed.
没有 Niblet?请根据本地产品证据继续操作;目录检索是可选的。
也可以选择以下方式:
| 安装 | |
|---|---|
| 🟣 Claude Code 插件(技能 + MCP) | /plugin marketplace add PyModel/designer-skill 然后 /plugin install designer-skill@pymodel |
| 🟢 Codex 插件 | codex plugin marketplace add PyModel/designer-skill,然后在 /plugins 中从 pymodel 安装 designer-skill |
| ⚫ Cursor 插件 | 从市场安装;包含 mcp.json、技能、/designer-setup · /designer-status |
| 🔵 仅 MCP,适用于任何客户端 | claude mcp add designer-skill -- npx -y @pymodel/designer-skill-mcp(codex mcp add、pythinker mcp add --transport stdio 使用相同参数) |
| 🟠 仅技能 | npx skills add PyModel/designer-skill --skill designer-skill,或将 skills/designer-skill/ 复制到 ~/.claude/skills/ / ~/.codex/skills/ |
标准 MCP 配置(mcp.json):
{ "mcpServers": { "designer-skill": { "command": "npx", "args": ["-y", "@pymodel/designer-skill-mcp@latest"] } } }
@latest 会跟踪 npm 最新版本;团队可固定使用 @pymodel/[email protected]。插件技能内容会单独更新(/plugin update …)。MCP 注册表名称:io.github.PyModel/designer-skill-mcp。需要 Node 22+。
各客户端的配置(VS Code、Codex TOML、Kilo、Open Code、Claude Desktop、Pythinker、Pi)
VS Code .vscode/mcp.json(1.99+):
{ "servers": { "designer-skill": { "type": "stdio", "command": "npx", "args": ["-y", "@pymodel/designer-skill-mcp"] } } }
Codex CLI ~/.codex/config.toml:
[mcp_servers.designer-skill]
command = "npx"
args = ["-y", "@pymodel/designer-skill-mcp"]
Open Code opencode.json:
{ "mcp": { "designer-skill": { "type": "local", "command": ["npx", "-y", "@pymodel/designer-skill-mcp"] } } }
Claude Desktop、Cursor(.cursor/mcp.json)、Kilo Code(mcp_settings.json)、Pythinker(~/.pythinker/mcp.json):使用上面的标准 mcpServers JSON。Pythinker 验证命令:pythinker mcp test designer-skill(指南)。
Pi:使用相同的 JSON,或原生注册技能:{ "skills": [{ "path": "/path/to/skills/designer-skill/SKILL.md" }] }
本地检出:将 npx 替换为 "command": "node", "args": ["/abs/path/to/designer-skill-mcp/dist/index.js"]。
flowchart LR
A[Prompt] --> B[get_preflight_brief]
B --> C[dispatch_intent]
C --> D[get_reference]
D --> E[Build / polish UI]
E --> F[review_and_gate]
F -->|FAIL: fix| E
F -->|static checks pass| G[Rendered checks<br/>by the host]
classDef start fill:#f8fafc,stroke:#94a3b8,color:#18181b
classDef route fill:#eff6ff,stroke:#3b82f6,color:#1e3a8a
classDef know fill:#faf5ff,stroke:#7c3aed,color:#4c1d95
classDef work fill:#fff7ed,stroke:#e87a3d,color:#7c2d12
classDef gate fill:#ecfdf5,stroke:#10b981,color:#065f46
classDef host fill:#fff1f2,stroke:#e11d48,color:#881337
class A start
class B,C route
class D know
class E work
class F gate
class G host
| 🔵 路由 | 🟣 了解 | 🟢 检查 |
|---|---|---|
dispatch_intent 会将“让它更出彩”或“感觉不太对”等表达映射为设计动词和最多四条参考资料。 | 24 条设计师参考资料(字体、颜色、动效、无障碍、反臃肿设计、重新设计、最坏情况数据、依赖项选择……),以及 26 条 ux/* 参考资料(表单、协作、画布、AI、国际化……)。 | 由 44 条规则组成的确定性检测器为 review_and_gate 提供支持,该工具会将每条必需规则报告为已运行、不支持、未解决或已豁免。 |
此门禁仅进行静态检查:总体状态为 FAIL 或 NOT_VERIFIED,绝不会通过渲染就绪检查。渲染、无障碍和性能检查会保持 NOT_RUN,直到宿主提供证据。
Niblet 生态系统
| 所有者 | 职责 |
|---|---|
designer-skill | 提供统一入口,用于范围界定、路由、设计/UX 指导和验证报告 |
| Niblet 平台 | 真实屏幕目录、记录在案的设计参考资料,以及记录许可信息的素材 |
| Niblet MCP | 参考图片和素材检索;托管的 get_ui_component 会提供 React 源码 |
| Agent 宿主 | 经授权的文件/依赖项更改、浏览器/原生交互、渲染检查和证据 |
请按服务发现工具:designer-skill 上同名的 find_ui_references 是纯文本 REST 封装,并非 Niblet 提供图像的工具。参考资料检查和素材获取优先使用 Niblet MCP。对于同一问题,不要同时调用两个提供方,也不要根据安装情况推断连接状态。有关部署差异、限制和许可,请参阅 niblet-catalogue。
使用以产品为依据的统一设计契约。Niblet 的界面模式(说服、操作、阅读、体验)描述用户的任务;designer-skill 的执行模式(审计、规划、优化、实现、系统)描述允许执行的工作。两者相互独立:操作型界面可以进行只读审计,也可以进行获准的优化。现有产品令牌、组件和真实内容优先于参考风格。检索组件并不授权安装依赖项或写入源码,而且这两个 MCP 都不认证渲染质量。
示例: “使用 designer-skill 重新设计此定价页面,同时确保功能不受影响。” → get_preflight_brief → dispatch_intent → get_reference → 编辑 → review_and_gate。
使用它构建: pythinker.com
| 文件 | 适用场景 | 层级 |
|---|---|---|
design-principles | 字体排印、间距、颜色、布局、层级 | 🔵 核心 |
differentiation-playbook | 打造独特风格:反向测试、布局菜单、命名参考 | 🔵 核心 |
aesthetic-systems | 选择视觉风格:5 种系统,包含配色、字体和阴影 | 🔵 核心 |
motion-and-interaction | 时序、弹簧动画、滚动、减少动态效果 | 🔵 核心 |
engineering-and-performance | 设计令牌、无障碍、响应式、Core Web Vitals | 🔵 核心 |
avoid-ai-slop | 禁用清单、类别惯性检查、完整性约定 | 🔵 核心 |
refactor-and-redesign | 审查 → 诊断 → 重新设计,同时不破坏现有行为 | 🔵 核心 |
command-playbook | 意图 → 动词分派 | 🔵 核心 |
verification-and-recovery | 证据规则、门禁状态、故障分流 | 🔵 核心 |
interaction-design | Fitts/Hick/Miller 定律、表单、导航、错误、加载 | 🔴 扩展 |
visual-critique | 七维度评审 | 🔴 扩展 |
design-systems | 令牌架构、组件规范、主题 | 🔴 扩展 |
project-init | 探索式访谈、PRODUCT.md、DESIGN.md | 🔴 扩展 |
craft-flow | 根据范围调整实现与证据工作流 | 🔴 扩展 |
live-mode | 使用宿主发现的预览工具,创建经授权的源代码变体 | 🔴 扩展 |
css-techniques | 现代 CSS:容器查询、:has()、clamp()、逻辑属性 | 🔴 扩展 |
motion-vocabulary | 将一种感受(“弹跳的效果”)映射为标准动态效果术语 | 🔴 扩展 |
fluid-input-principles | 转化为适用于 Web 的手势优先流畅界面原则 | 🔴 扩展 |
native-web | 符合平台规范的移动 Web:点击、视口、安全区域、缩放 | 🔴 扩展 |
worst-case-data | 使用极端真实数据而非演示数据进行设计和验证 | 🔴 扩展 |
variant-prototyping | 针对真正未定的决策,在限定时间内制作并排变体 | 🔴 扩展 |
dependency-selection | 选择或添加 UI 依赖的方法,而非选项列表 | 🔴 扩展 |
niblet-catalogue | 通过 Niblet 获取可选的真实屏幕参考和素材;仅供参考,未配置时也可安全使用 | 🔴 扩展 |
craft-provenance | 历史能力映射与归属;仅在需要时加载 | 🔴 扩展 |
此外还有 26 个 ux/* 参考资料,源文件位于 skills/ux-designer/,并 vendored 到 skills/designer-skill/reference/ux/(由 node scripts/sync-ux.mjs 生成,并通过测试检查),因此仅安装 designer-skill 也包含全部所需内容。每个 SKILL.md 都是一个简短路由文件,附有一行说明;只有任务需要时才会加载参考资料。
| 说法 | 动词 | 读取内容 |
|---|---|---|
| “让它更亮眼” | amplify · color | aesthetic-systems、design-principles |
| “感觉不太对” | check · layout | refactor-and-redesign、avoid-ai-slop |
| “达到生产就绪状态” | ship · check | engineering-and-performance |
| “添加一些动态效果” | motion | motion-and-interaction |
| “看起来像 AI 做的” | review · brand | avoid-ai-slop、aesthetic-systems |
| “重新设计这个” | check · refresh | refactor-and-redesign、command-playbook |
工具
| 工具 | 用途 |
|---|---|
get_preflight_brief | 范围与验证约定(首先调用) |
load_project_context | 从项目中读取 PRODUCT.md / DESIGN.md(绝对路径 cwd) |
get_design_system | SKILL.md 路由器和参考资料映射 |
get_reference | 按名称加载一份参考资料(designer 或 ux/*) |
anti_slop_checklist | 提供风格和内容真实性审查建议 |
list_commands | 所有设计动词及其说明 |
get_command | 获取某个动词的帮助信息和参考资料名称 |
dispatch_intent | 将请求映射为动词,以及最多四份待读取的参考资料 |
commit_design_direction | 验证基于上下文的设计方向记录 |
get_palette_seed | 用于获准的新调色板工作的 OKLCH 品牌种子 |
detect_antipatterns | 确定性静态扫描(44 条规则):覆盖范围、文件哈希、缺漏 |
review_and_gate | 针对每条必需规则进行静态检查;不会声称已达到渲染就绪状态 |
find_ui_references | 可选的纯文本 Niblet 真实屏幕搜索,或所选屏幕的元数据(NIBLET_TOKEN) |
get_design_reference | 可选的网页屏幕 Niblet 结构化参考(NIBLET_TOKEN) |
find_ui_materials | Niblet 资料路由指南;检索在 Niblet MCP 软件包或托管 MCP 上运行(拒绝 kind: pack) |
资源: designer://skill · designer://reference/{+name} · 提示词: design(task,可选 aesthetic)
开发
cd designer-skill-mcp
npm ci
npm run build # syncs skills/ → assets/ (generated, gitignored), compiles TypeScript
npm run typecheck && npm test # tsc over src + test, then vitest; `npm run smoke` drives the packed tarball
技能稳健性检查
仅在 skills/ux-designer/references/ 中编辑 UX 指南;打包前,npm run sync-skill 会重新生成独立镜像。在仓库根目录运行 node scripts/sync-ux.mjs,以仅通过文件系统进行分发。
运行报告现在使用 v2,并附带由宿主负责的验证计划。验证两个捆绑的 JSON 架构,然后运行无依赖脚本 skills/designer-skill/scripts/validate-report.mjs REPORT PLAN AUTHORIZED_ROOT,检查证据哈希、路径限制、修订版/计划匹配情况以及渲染就绪语义。脚本自身显示 PASS 表示报告验证通过,并不代表 UI 已获认证。旧版 v1 报告会被安全拒绝,必须根据真实证据重新生成;请同时更新宿主端的读取器和写入器。
行为动作计划案例和确定性评分器位于 evals/designer-skill/。合成评分器测试不算模型评估,模型提案也无法证明实际工具使用合规性或渲染质量。评估结果中请保留模型、宿主、技能哈希和重复次数。
HTTP 模式(/mcp 上的 Streamable HTTP):
node dist/index.js --http --port 3017 --root /abs/project # 127.0.0.1
DESIGNER_SKILL_HTTP_TOKEN=… node dist/index.js --http --host 0.0.0.0 --root /abs/project
每个 HTTP 绑定都至少需要一个 --root。环回绑定会验证 Host 标头;非环回绑定还需要 DESIGNER_SKILL_HTTP_TOKEN(Authorization: Bearer …)。
发布: ./scripts/release.sh "notes" 会递增并同步所有版本、执行验证、创建标签并推送;publish.yml 会发布 npm(附带来源证明)、MCP 注册表条目和 GitHub 发布版本。约定详情:docs/HARDENING.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
