/ Pencil MCP 设计联动
工作流 文档 GitHub
✏️ Pencil MCP + Claude Code

AI 原生
设计联动工作流

在 Claude Code 会话中直接读写 .pen 设计文件——AI 即是设计师。从设计稿到代码,全链路无缝衔接。

查看工作流 MCP 工具列表
概览
什么是 Pencil MCP?
Pencil 是专为 Web / 移动端设计的 AI 设计编辑器,通过 MCP 协议与 Claude Code 集成,让 AI 直接操作 .pen 设计文件。
✏️
直接读写设计文件
Claude Code 通过 MCP 工具直接读取和修改 .pen 设计文件,无需手动切换工具或导出流程。AI 在同一会话中完成设计和实现。
🔒
加密格式,专用工具
.pen 文件格式加密,必须通过 Pencil MCP 工具访问——不能用 Read/Grep 等文本工具读取。批量操作通过 batch_getbatch_design 实现。
🔗
与 CE 工作流深度集成
ce:brainstorm 阶段探索 UI 方向,ce:plan 阶段用设计稿锁定验收标准,ce:work 阶段通过截图验证实现是否与设计吻合。
⚠️ 重要.pen 文件内容已加密,任何时候都只能使用 Pencil MCP 工具batch_getbatch_design 等)读写。使用 Read、Grep 等通用文件工具会返回乱码或失败。
工具参考
Pencil MCP 工具列表
所有工具通过 MCP 协议注入 Claude Code 会话,Claude 可在对话中直接调用。
工具名 类型 用途
get_editor_state 获取当前编辑器状态——活跃文件路径、当前选中的节点、画布尺寸等。任务开始时的第一步,建立工作上下文。支持 include_schema 参数获取节点 Schema 定义。
open_document 导航 打开指定路径的 .pen 文件,或传 'new' 创建空白设计文件。当编辑器无活跃文件时必须先调用。
get_guidelines 加载设计指南和样式规范(颜色、间距、字体、组件规则)。支持 categorynameparams 过滤,按需加载避免 token 浪费。
batch_get 按 glob 模式或节点 ID 批量读取设计节点。用于探索现有设计结构、查找组件、理解布局层次。读取 .pen 文件的唯一正确方式。
batch_design 在单次调用中执行多个设计操作(Insert / Copy / Update / Replace / Move / Delete / Image)。每次最多 25 个操作,保证进展同时不超负荷。修改 .pen 文件的唯一正确方式。
get_screenshot 对当前设计画布截图,供视觉验证和与代码实现对比。在 ce:work [V+] 阶段与 Playwright 配合,实现像素级对比验收。
get_variables 读取设计 Token 变量(颜色、间距、字体大小等)。确保代码实现使用与设计系统一致的变量值。
set_variables 批量修改设计 Token 变量,实现全局主题切换或设计系统更新。修改后所有引用该变量的组件自动更新。
snapshot_layout 快照当前画布布局结构,用于版本对比或作为验收基线。在迭代设计前记录初始状态。
find_empty_space_on_canvas 在画布上寻找空闲区域,用于放置新组件时避免遮挡已有内容。插入新设计元素前自动调用。
replace_all_matching_properties 全局替换所有匹配属性值(如批量改颜色、字体、间距)。重构设计系统时的高效工具。
search_all_unique_properties 搜索画布中所有唯一属性值(颜色、字体等),帮助找出设计中的不一致,审计前先用此工具盘点现状。
export_nodes 将设计节点导出为图片(PNG/SVG 等格式),用于生成设计文档、嵌入 PRD,或作为代码实现的参照图。
工作流
设计 → 实现 全链路
Pencil MCP 深度嵌入 CE 五步工作流,从需求探索到验收,全程 AI 辅助。
💡 Brainstorm
📋 Plan
✏️ Pencil 设计
⚙️ Work
🔍 Review
1
打开 / 创建设计文件
在 Claude Code 会话中,先通过 get_editor_state 了解当前编辑器状态,再用 open_document 打开已有设计或新建空白文件。
# 检查当前编辑器状态 get_editor_state({ include_schema: false }) # 打开已有设计 open_document("designs/landing-page.pen") # 或创建新文件 open_document("new")
2
探索现有设计结构
get_guidelines 加载设计规范,用 batch_get 读取已有节点,理解组件层次和设计意图,避免破坏已有结构。
# 加载设计指南(颜色/间距/字体规范) get_guidelines({ category: "colors" }) # 读取所有顶层 Frame batch_get({ patterns: ["**/Frame/**"] }) # 读取具体节点 batch_get({ nodeIds: ["hero-section", "nav-bar"] })
3
生成 / 修改设计
通过 batch_design 执行批量设计操作——插入组件、调整布局、修改样式、更换变量。一次调用最多 25 个操作,保证原子性。
# 插入新组件(I = Insert) batch_design({ operations: ` btn=I("hero-section", { type: "Button", label: "立即开始", style: "primary" }) U(btn, { width: 160, height: 44, borderRadius: 10 }) ` }) # 全局替换主色 replace_all_matching_properties({ property: "fill", from: "#6c8ef7", to: "#a78bfa" })
4
截图验证设计
get_screenshot 截图当前设计,直观确认布局和样式是否符合预期。截图会在对话中直接显示,无需切换窗口。
# 截图当前画布 get_screenshot() # 快照布局用于版本对比 snapshot_layout()
5
导出设计规格,移交实现
get_variables 提取设计 Token,用 export_nodes 导出参照图,作为 ce:work 的验收标准。在 [V+] 模式下,Playwright 自动截图并与设计对比。
# 读取设计变量(颜色 Token、间距等) get_variables() # 导出 Hero 区域为 PNG export_nodes({ nodeIds: ["hero-section"], format: "png" }) # ce:work [V+] 自动对比设计稿与实现截图 /ce:work docs/plans/landing-page-plan.md [T][V+]
设计代理
内置设计 Agent
CE 插件内置以下设计相关 Agent,配合 Pencil MCP 完成设计→实现的完整循环。
设计对比
🔍 figma-design-sync
对比 Figma 设计稿与 Web 实现的视觉差异。使用 agent-browser 截图,逐项分析颜色、字体、间距、布局偏差,自动修复代码,迭代直到像素对齐。
UI 审查
✅ design-implementation-reviewer
审查代码实现是否符合设计规范。按严重性(Critical / Major / Minor)分类问题,输出可操作的修复建议,不只列问题。
迭代优化
🔄 design-iterator
通过 N 轮截图→分析→改进循环,系统性打磨 UI 质感。每轮聚焦一个最高价值改进点,支持竞品研究和风格参考(Stripe / Linear / Vercel)。
配合使用
🎨 frontend-design skill
生成有设计意图的 Web UI(非 AI 模板堆砌),支持响应式、深浅色主题。在 Pencil 设计完成后,用此 skill 生成对应的 HTML/CSS/JS 实现。
配置
快速上手
Pencil MCP 通过 Claude Code 的 MCP 配置自动注入会话,无需手动安装。
🔧 接入 Pencil MCP
1
安装 Pencil(Web 设计工具),创建账号并打开设计项目。
2
在 Pencil 应用中启用 MCP 集成——进入 Settings → Integrations → MCP,获取 MCP 端点 URL 和 Token。
3
在 Claude Code 的 .mcp/config.json 中添加 Pencil 配置:
{ "mcpServers": { "pencil": { "type": "http", "url": "https://your-pencil-mcp-endpoint", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } } }
4
重启 Claude Code,验证工具可用:在对话中输入 get_editor_state 应返回编辑器状态。
💡 本仓库 plugin.json 已预配置 Context7 MCP。Pencil MCP 需单独在你的 Claude Code 账户 MCP 设置中添加——它是账户级功能,不随插件分发。
示例
实战用法
以下场景展示 Pencil MCP 与 CE 工作流的具体结合方式。
🚀 场景一:从零设计落地页,一键交付代码
# Step 1: 需求探索 /ce:brainstorm 设计一个 SaaS 产品落地页 [P] # Step 2: 在 Pencil 中创建设计稿(Claude 直接操作) # Claude 自动调用: open_document("new") → get_guidelines() → batch_design(…) # Step 3: 生成实施计划,以设计稿截图为验收标准 /ce:plan docs/brainstorms/saas-landing-requirements.md [T] # Step 4: 执行实现,V+ 自动对比设计与实现 /ce:work docs/plans/saas-landing-plan.md [T][V+]
🔄 场景二:已有代码,与 Figma 设计对比迭代
# 用 figma-design-sync agent 自动对比并修复视觉差异 请检查 Hero 组件是否与 Figma 设计匹配: https://figma.com/file/xxx/design?node-id=1:2 # Claude 自动调用 figma-design-sync agent: # 1. 截图 Figma 设计稿 # 2. agent-browser 截图当前实现 # 3. 逐项对比,输出差异清单 # 4. 修复代码,再次验证
🎨 场景三:修改设计系统主题色
# 全局替换品牌色 请把所有设计文件的主色从蓝色 #6c8ef7 改为紫色 #a78bfa # Claude 自动调用: search_all_unique_properties({ property: "fill" }) replace_all_matching_properties({ property: "fill", from: "#6c8ef7", to: "#a78bfa" }) get_variables() set_variables({ "color-primary": "#a78bfa" }) get_screenshot() # 验证效果