MasterGo + MCP,借助 AI 实现设计稿转代码

最近 MasterGo 发布了 MCP Server,这样就可以在 Cursor 中获取到画布数据,然后利用 Agent 去生成代码了。

我们直接看一下生成 HTML 的效果。

如何使用

生成 Token

首先需要一个 Token 提供给 MCP 访问对应的画布数据。

  1. 打开 MasterGo
  2. 点击右上角头像
  3. 点击个人设置
  4. 进入设置页后点击右侧的安全设置
  5. 然后生成令牌

安装 MasterGo MCP

我这里使用 Cursor 作为例子,理论上只要支持 MCP 的应用,都可以安装 MasterGo MCP。

  1. 打开 Cursor
  2. 进入 Cursor 的偏好设置页面
  3. 进入 MCP 配置页面
  4. 点击 "Add new global MCP Server"

然后 cursor 会创建一个名为 mcp.json 的文件,利用该文件去配置 MCP Server。

复制下面的代码到 mcp.json 中,并且替换其中的 Token 为上一步在 MG 生成的 Token。

替换掉 mg_token 为你自己的 Token 比如 mg_xse1da89123n

json 复制代码
{
  "mcpServers": {
    "mastergo-magic-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mastergo/magic-mcp",
        "--token=mg_token",
        "--url=https://mastergo.com"
      ],
      "env": {
        "NPM_CONFIG_REGISTRY": "https://registry.npmjs.org/"
      }
    }
  }
}

如果你已经配置过 MCP Server 了,那么只需要把 MasterGo 的 MCP Server 追加一下到 JSON 中即可。

json 复制代码
{
  "mcpServers": {
    "other-mcp": {},
    "mastergo-magic-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mastergo/magic-mcp",
        "--token=mg_3ede54387cf04bb3ac51fc2e52cead77",
        "--url=https://mastergo.com"
      ],
      "env": {
        "NPM_CONFIG_REGISTRY": "https://registry.npmjs.org/"
      }
    }
  }
}

然后保存,重启一下 Cursor。当你能看见 MasterGo MCP 提供的 tools 的时候,就代表你安装成功了。

有可能你会出现 client close 的情况,此时需要确认一下 node 的版本(需要大于 18),网络问题(能否访问到对应 npm 源),系统问题(Windows 可能需要用 cmd)。

不过,一般都是 @mastergo/magic-mcp 这个 npm 包下载失败导致的。

MasterGo MCP Tools

我们简单看下 MasterGo MCP 提供的两个 Tools。

  1. getDSL
  2. getComponentLink

DSL,简单理解就是 MasterGo 画布的数据结构。前端在开发页面的时候,只要设计师提供的设计稿足够规范,理论上我们的页面结构就可以和设计稿一致。

因此,如果 AI 能获取到画布的 DSL 数据,那么就可以让 AI 做转换,生成指定的代码。

DSL 生成页面

  1. 选中画布中对应的图层,并且复制对应的容器链接

  2. 粘贴容器链接到 Cursor 中,并且启用 Agent 模式

  3. 生成代码

可以看到,Cursor 在收到我们的命令,根据文件链接生成 HTML 之后,会自动调用 MasterGo MCP 提供的 getDSL 工具,获取到对应图层的 DSL,然后根据 DSL 再去生成对应的 HTML 数据。

下面就是本次生成的结果。

MasterGo 提供的 DSL 是无关具体平台的,因此只要有 DSL 理论上可以让大模型转换成 ReactVue 还是 Flutter,理论上都是完全可行的。

上面介绍了一下 getDSL,用于获取图层数据。那么 getComponentLink 的又是什么?

在上面生成 HTML 的流程中有一个致命的问题,是生成的代码不包含和组件无关,如果想生成一份基于 Ant Design 的前端代码,只使用 getDSL 是无法做到的。

为了使用组件,我们就需要告知大模型,这块的图层,需要使用生成组件代码,而不是 HTML 代码。

我们可以在设计稿中,给组件设置对应的组件文档链接,并让大模型在获取到 DSL 的之后去调用获取组件的文档,并让其依照文档生成对应的组件代码,而不是 HTML 代码。

Button 组件文档信息

好,此时我们再去实验一下生成组件的效果。

  1. 选中一个容器,并且复制容器链接

需要注意的是,这个图层里面使用的组件,都是已经配置好组件链接的组件。

  1. 在 Cursor 中告知大模型去生成前端组件。

  2. 效果展示

结尾

这里我抛砖引玉的介绍了一下 MasterGo MCP 目前的一些基本玩法,实际上还可以自己再去定义一些规则,比如生成 tailwind,生成 CSS 变量,或者基于 DSL 写代码转换成对应的 tsx,然后再利用大模型去优化代码等等。

相关推荐
咖啡星人k13 小时前
MonkeyCode 的 Git 集成:AI编程如何与版本控制无缝协作
git·ai编程·monkeycode
lichenyang45313 小时前
把 demo 里的 console.log 全换成 HiLog:从 %{private} 没脱敏的困惑说起
前端
光影少年13 小时前
组件复用:HOC、Render Props、自定义Hook 对比
前端·react.js·掘金·金石计划
Gauss松鼠会13 小时前
【GaussDB】GaussDB SMP特性调优详解
java·服务器·前端·数据库·sql·算法·gaussdb
老H科研技术13 小时前
第 04 篇:MCP中SDK 对比与选型 —— 选对工具,事半功倍
人工智能·mcp
葬送的代码人生13 小时前
JavaScript 数组完全指南:从入门到实战
前端·javascript·算法
用户9385156350713 小时前
深入理解 JavaScript 同步与异步:从单线程到事件循环与 Promise
前端·javascript
搬砖的码农13 小时前
造一个 Agent 运行时 #01:我决定开干,顺便把坑都写下来
前端·agent·ai编程
yingyima13 小时前
深入解析:定时任务失败重试机制的底层原理与实践
前端
打呵欠的猫13 小时前
新人入职第一天,代码写得像干了三年的老员工:我只做了一件事
ai编程