在 Paper(macOS 本地专业设计工具)中设计 UI 界面。创建画板、将 HTML 写入设计稿、截图并持续迭代优化。
纸质设计 — MCP Bridge Skill.
功能概述
纸质设计 — MCP Bridge Skill.是一项面向实际任务的技能,主要用于Paper是一个专业设计工具(类似于Figma),在macOS上本地运行. 这一技能通过HTTP连接到Paper的MCP服务器,让你完全设计Capabili.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Paper 设计 — MCP Bridge 技能
Paper 是一款运行在 macOS 本地的专业设计工具(类似 Figma)。本技能通过 HTTP 连接 Paper 的 MCP 服务器,为您提供完整的界面设计能力。
前提条件:必须已打开 Paper 并加载了一个设计文件。若 Paper 尚未运行,请提示用户先启动该应用。
如何使用 Paper
所有 Paper 操作均通过本技能目录下的 paper.sh 脚本执行:
exec {baseDir}/paper.sh ''
重要提示:JSON 参数必须用单引号包裹,以防止 Shell 展开。
快速上手
# 1. 查看画布当前内容
exec {baseDir}/paper.sh get_basic_info
# 2. 创建一个新的移动设备画板
exec {baseDir}/paper.sh create_artboard '{"name":"Home Screen","styles":{"width":"390px","height":"844px","display":"flex","flexDirection":"column","backgroundColor":"#FAFAFA"}}'
# 3. 添加内容(每次仅添加一个视觉分组)
exec {baseDir}/paper.sh write_html '{"html":"Home","targetNodeId":"ARTBOARD_ID","mode":"insert-children"}'
# 4. 截图以供审查
exec {baseDir}/paper.sh get_screenshot '{"nodeId":"ARTBOARD_ID"}'
# → 保存至 /tmp/paper-screenshots/screenshot-TIMESTAMP.jpg
# 5. 查看截图
image /tmp/paper-screenshots/screenshot-TIMESTAMP.jpg
# 6. 完成操作后,释放工作状态指示器
exec {baseDir}/paper.sh finish_working_on_nodes
工具参考
读取画布信息
| 命令 | 用途 |
|---|---|
paper.sh get_basic_info |
文件名、页面、画板列表、当前使用的字体 |
paper.sh get_selection |
画布上当前选中的节点 |
paper.sh get_node_info '{"nodeId":"ID"}' |
尺寸、可见性、父节点、子节点、文本内容 |
paper.sh get_children '{"nodeId":"ID"}' |
直接子节点(含 ID 与类型) |
paper.sh get_tree_summary '{"nodeId":"ID"}' |
精简的层级概览(开销低) |
paper.sh get_tree_summary '{"nodeId":"ID","depth":5}' |
更深层级的结构 |
paper.sh get_computed_styles '{"nodeIds":["ID1","ID2"]}' |
节点的 CSS 样式 |
paper.sh get_jsx '{"nodeId":"ID"}' |
JSX 代码(用于开发交接) |
paper.sh get_font_family_info '{"familyNames":["Inter","DM Sans"]}' |
字体可用性及字重信息 |
视觉审查
# 对画板或节点截图
exec {baseDir}/paper.sh get_screenshot '{"nodeId":"ARTBOARD_ID"}'
# 高分辨率截图(便于阅读小字号文本)
exec {baseDir}/paper.sh get_screenshot '{"nodeId":"ARTBOARD_ID","scale":2}'
# 保存至指定路径
exec {baseDir}/paper.sh get_screenshot '{"nodeId":"ARTBOARD_ID"}' --save /tmp/my-review.jpg
# 然后使用 image 工具查看截图
image /tmp/paper-screenshots/screenshot-TIMESTAMP.jpg
创建设计
# 创建移动设备画板
exec {baseDir}/paper.sh create_artboard '{"name":"Screen Name","styles":{"width":"390px","height":"844px","display":"flex","flexDirection":"column","backgroundColor":"#FFFFFF"}}'
# 创建桌面端画板
exec {baseDir}/paper.sh create_artboard '{"name":"Dashboard","styles":{"width":"1440px","height":"900px","display":"flex","flexDirection":"column","backgroundColor":"#F5F5F5"}}'
# 创建关联画板(紧邻已有画板排列)
exec {baseDir}/paper.sh create_artboard '{"name":"Screen V2","relatedNodeId":"EXISTING_ID","styles":{"width":"390px","height":"844px"}}'
向设计中写入 HTML
# 将元素作为子节点添加到目标节点
exec {baseDir}/paper.sh write_html '{"html":"content","targetNodeId":"PARENT_ID","mode":"insert-children"}'
# 替换现有节点
exec {baseDir}/paper.sh write_html '{"html":"new content","targetNodeId":"OLD_NODE_ID","mode":"replace"}'
HTML 规则(关键):
- 始终使用内联样式(
style="...") - 所有布局均使用
display: flex— 不得使用 grid、inline 或 table 布局 - 使用 padding 和 gap 控制间距 — 禁止使用 margin
- 禁止使用 emoji 作为图标 — 应使用 SVG path
- 为关键元素设置
layer-name="Semantic Name" - 可通过
font-family: "Font Name"使用 Google Fonts - 字体大小必须使用
px单位 - 默认采用
border-box盒模型计算方式
修改已有设计
# 更新节点样式
exec {baseDir}/paper.sh update_styles '{"updates":[{"nodeIds":["ID1","ID2"],"styles":{"backgroundColor":"#FF0000","padding":"20px"}}]}'
# 修改文本内容
exec {baseDir}/paper.sh set_text_content '{"updates":[{"nodeId":"TEXT_ID","textContent":"New text here"}]}'
# 复制节点(适用于重复元素,效率高)
exec {baseDir}/paper.sh duplicate_nodes '{"nodes":[{"id":"SOURCE_ID"}]}'
# 指定父节点进行复制:
exec {baseDir}/paper.sh duplicate_nodes '{"nodes":[{"id":"SOURCE_ID","parentId":"TARGET_PARENT"}]}'
# 删除节点
exec {baseDir}/paper.sh delete_nodes '{"nodeIds":["ID1","ID2"]}'
# 重命名图层
exec {baseDir}/paper.sh rename_nodes '{"updates":[{"nodeId":"ID","name":"Header"}]}'
收尾操作
# 完成画板操作后务必调用 — 用于释放工作状态指示器
exec {baseDir}/paper.sh finish_working_on_nodes
设计工作流(强制要求)
- 起始 — 调用
get_basic_info查看画布当前状态 - 检查字体 — 在编写任何文字内容前,先调用
get_font_family_info - 设计简报 — 编写 HTML 前需明确:配色方案(5–6 种十六进制色值)、字体选择、间距节奏、视觉方向
- 渐进式构建 — 每次
write_html调用仅添加一个视觉分组(如页眉、一行内容、按钮组等),而非整屏内容 - 每 2–3 次修改后审查一次 — 执行
get_screenshot→image→ 检查间距、排版、对比度、对齐、裁切等问题 - 修复问题后再继续
- 完成 — 完成画板操作后调用
finish_working_on_nodes
审查检查点(每 2–3 次修改后执行)
截图完成后,请评估以下方面:
- 间距 — 间隙是否不均?是否过于拥挤?节奏是否清晰?
- 排版 — 是否易读?层级结构是否明确?
- 对比度 — 文字对比度是否偏低?元素是否相互混淆?
- 对齐 — 垂直/水平对齐线是否一致?
- 裁切 — 内容是否被边缘截断?
默认画板尺寸
| 设备 | 宽度 | 高度 |
|---|---|---|
| 移动设备(iPhone) | 390px | 844px |
| 平板设备(iPad) | 768px | 1024px |
| 桌面端 | 1440px | 900px |
故障排查
- “Paper 未运行” — 请先在 macOS 上打开 Paper 应用
- “无法初始化 MCP 会话” — Paper 必须已打开一个设计文件(而不仅仅是启动了应用)
- 返回空响应 — 节点 ID 可能有误;请使用
get_basic_info查询有效 ID - 会话过期 — 脚本将自动使用新会话重试;若持续失败,请删除
/tmp/paper-mcp-session
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
