MasterGo 提供了两个 MCP 服务器、共 35 个工具,把设计工具的能力开放给 AI 助手:既能从零生成页面并提交到画布,也能解析设计稿生成代码、再把代码同步回设计稿。以下按服务器逐一罗列全部工具及其说明。
一、mcp_mastergo(24 个工具)
页面生成
| 工具 | 描述 |
|---|
design_page | 页面生成第一工具。用户要求设计/创建/生成页面或界面时,必须立即调用。需先让用户二选一设计来源:free-draw(自由绘制)或 component-library(使用组件库生成);选择组件库后列出本地与远端团队库并动态多选。最终调用 submit_page_to_canvas。 |
submit_page_to_canvas | 将 design_page 生成的完整 HTML 页面提交到 MasterGo 画布。顶层 code(页面生成)与 filePath(导入现有本地 HTML 为新页面)严格二选一。用户要求同步/覆盖已有画布时须改用 agent_sync_design。 |
review_generated_page | 组件页面生成后的用户确认式 QA 工具。submit_page_to_canvas 返回 qaReviewId 后,根据用户选择调用;decision=yes 获取目标页面截图供检查(只允许检查和报告,不得自动修复),decision=no 清理 QA 状态并结束。自由绘制模式不得调用。 |
get_guidelines | 规则加载工具。按 scope 加载规则:page-generate(默认)/ charts-import / component-import / component-generate / variable-import / variable-generate。页面生成的初始规则由 design_page 加载,仅当需要图表规则时增量调用 scope=["charts-import"]。 |
组件库 / 团队库
| 工具 | 描述 |
|---|
get_library_list | 团队库/组件库统一列表入口。分组返回当前连接文件的本地组件库身份(local-{documentId})和已订阅的远端团队库;用户未明确唯一来源时须按返回的 question JSON 弹出单选框。页面生成由 design_page 独立编排。 |
get_component_info | 组件库快照准备工具。按精确 ID 分别准备本地/远端快照,teamLibraries 有序白名单可混合本地与远端库;支持 use-local(复用已有快照)/ refresh(重新拉取覆盖)模式。 |
get_component_catalog | 读取已准备快照中的 index.md 组件列表(不解析 components/*.json、不发送截图)。仅当用户明确查看组件列表或 design_page 已确认使用组件生成页面时才调用。 |
get_component_details | 读取 get_component_catalog 选中的全部组件 JSON 详情,不设人为数量上限,只返回真实结构字段。 |
get_library_assets | 页面组件生成资源工具。严格按 teamLibraryId 读取 Server Workspace 目标快照中的 icons.json 和 variable.json,支持按关键词过滤、icon/variable 数量限制。 |
变量管理
| 工具 | 描述 |
|---|
get_variables | 获取当前 MasterGo 文件中的全部本地变量(只读当前文件,不读远程团队库)。返回 documentName、documentId、variables,并写入 Server 管理的 local-{documentId} 快照。 |
agent_update_variables | 创建、修改、排序变量。固定流程:先调 get_variables 写入快照;创建一套变量时先提交基础变量,再提交语义/引用变量。删除变量必须用 agent_remove_variable。 |
agent_remove_variable | 危险操作专用:删除变量。优先传 id;无 id 时必须传 collection/collectionId + name + type 以避免误删。 |
画布节点操作
| 工具 | 描述 |
|---|
get_selection_node | 读取当前选中或指定图层的节点 HTML/图层数据,用于获取画布上下文和后续修改;不是前端代码导出工具。支持批量(targetNodeIds)。 |
get_screenshot | 导出当前选中/指定图层的 PNG 截图(scale 0.5–4,默认 1),写入 Server screenshots:// scope。组件页面的确认式 QA 须用 review_generated_page。 |
get_design_diff | 比较 Server 管理的选区基准(或 filePath 指定的本地 HTML)与画布设计现状的差异,返回 JSON Diff。 |
get_frontend_code | 前端代码导出工具。支持 frontendFramework:html / vue / react / wxml / angular / android / json(用户未指定时必须先询问,不默认 html)。html 落盘后返回截图与 review 会话,按反馈增量修改。 |
agent_update_node | 局部修改节点(文本、样式、布局、组件 props、局部结构)。修改前必须先调 get_selection_node 并以返回代码为基准,只改用户指定属性;删除样式须显式写 property: initial。 |
agent_replace_node | 替换节点/图标/图片。换图、修改 <img src> 必须用此工具(不要用 update_node)。图标遵循 FontAwesome,图片遵循 <img src="{{keyword}}" /> 语义。 |
agent_remove_node | 在画布中删除节点。支持 targetNodeId 指定,不传时删除当前选中图层。 |
agent_sync_design | 将用户指定的本地静态 HTML 全量覆盖同步到已有画布根节点。必须有用户本轮明确确认(userConfirmed + userConfirmationText);根 data-node-id 须与画布根节点一致。新页面生成走 design_page → submit_page_to_canvas。 |
agent_create_component | 创建主组件/母版/组件集/变体。调用前加载 component-generate + page-generate 规则;根节点必须声明 data-type="component" 或 "component-set"。 |
agent_generate_image | 生图资产快照工具。读取生图能力产生的 sourcePath 并复制到 Server generated-images:// scope;目标是替换画布图片节点时,成功后继续调 agent_replace_node 使用返回的资源 URL。 |
其他
| 工具 | 描述 |
|---|
get_fonts | 从 MasterGo 全部可用字体中过滤团队字体(team)和企业字体(org),写入 .mastergo/fonts/fonts.json。 |
get_version | 获取 MasterGo MCP 版本号。 |
二、mcp_mastergo-magic-mcp(11 个工具)
设计获取(主流程)
| 工具 | 描述 |
|---|
mcp__getDesignSections | 主工具(两种模式):① 不带 sectionIndex → 返回所有区块列表(id/name/type/nodeCount/textPreview/页面绝对 bbox)及 rootMetadata、splitContainers;② 带单个 sectionIndex(整数)→ 返回该区块完整 DSL。PATH 节点带 svgShortKey,用 @@SVG:{svgShortKey}@@ 占位,最后调 mcp__applyDesign 注入真实 SVG。必须按 0..totalSections-1 逐个拉取全部区块,3–5 个并发一批。 |
mcp__getDsl | 后备工具(仅当 getDesignSections 不可用或报错时使用)。一次返回完整 DSL,复杂设计可能超出上下文;返回生成代码必须遵守的规则。支持 json/yaml/tree 格式。 |
mcp__applyDesign | 收尾工具:替换所有占位符(@@SVG:{svgShortKey}@@ SVG 图标 + T{sectionIndex}|{nodeId} 长文本)为设计缓存中的真实高精度数据,并直接将最终文件写入 outDir/{outputFileName}。检测手写伪造的 <path d> 并报错。targetLang 支持 html(默认,Vue 同)/ dart(Flutter 单引号字符串转义)。 |
mcp__getMeta | 获取站点/页面级配置信息与规则(需 fileId + layerId)。用于构建完整网站时获取站点规则和结果,须遵守返回的 markdown 规则。 |
组件 / 代码生成
| 工具 | 描述 |
|---|
mcp__getComponentLink | 当 getDsl 返回的 componentDocumentLinks 非空时,依次用其中的 URL 获取组件文档数据,用于基于组件生成前端代码。 |
mcp__getComponentGenerator | 获取组件开发工作流(遵循最佳实践的结构化流程)。需提供绝对 rootPath 以保存工作流文件。 |
mcp__getFlutterGenerator | 获取 Flutter 组件开发工作流:MasterGo DSL→Flutter Widget 映射规则、flutter_screenutil 屏幕适配、按 feature 划分的架构指引;下载设计稿全部图片资源到本地、改写 CSS/DSL 引用为 Flutter asset 路径并生成资源清单。 |
提取 / 转换
| 工具 | 描述 |
|---|
mcp__extractSvg | 从设计稿图层中提取全部 PATH 节点的 SVG 数据(自动解析 INSTANCE/图标组件内的颜色引用)。支持分页(page 从 0 开始,pageSize 默认 20 最大 100)与背景色(backgroundColor)。 |
mcp__getD2c | 设计转代码(D2C):从 MasterGo 获取 D2C 数据并在本地落盘——code 写入 html,svg/image 资源按 resourcePath 落盘对应目录,返回落盘摘要避免大资源进上下文。需 contentId + documentId。 |
mcp__C2d | 代码转设计(C2D):将本地 HTML 文件(filePath)内容发送到 MasterGo 同步到设计稿。layerId 只允许用 URL 的 layer_id 参数,严禁把 pageid/page_id 当 layerId。 |
其他
| 工具 | 描述 |
|---|
version_0_2_7 | 版本信息(当前版本 0.2.7)。 |
两个服务器怎么分工
mcp_mastergo 更偏"操作画布":生成页面、管理组件库与变量、增删改画布节点;mcp_mastergo-magic-mcp 更偏"解析设计":拉取区块 DSL、提取 SVG、生成 HTML/Flutter 代码,甚至支持代码反向同步回设计稿。两者配合,基本覆盖了"设计 → 代码 → 设计"的完整闭环。
值得注意的几个细节
- 先读后写:
agent_update_node 修改前必须先 get_selection_node;换图必须走 agent_replace_node。
- 危险操作要确认:删除变量单独走
agent_remove_variable;全量覆盖画布必须有用户明确确认。
- 占位符注入:SVG 与长文本以占位符形式进出上下文,最后统一由
mcp__applyDesign 注入真实数据,避免大资源撑爆上下文。