先交代一下背景。今年年初我们把设计协作平台从 Sketch + 手工切图彻底切到了蓝湖,设计师出稿、标注、切图全部在蓝湖上完成。稿子倒是集中了,但紧接着就冒出一个新的麻烦:每个迭代,设计师都要在群里追着问"还原了吗",前端同学则要对着设计稿一遍遍核对尺寸、颜色、边距,稍微有个组件复用就得重新翻标注,效率低到让人怀疑人生。
后来我想了个办法,把 Cursor 直接接到了蓝湖上。现在前端在 Cursor 里写代码时,AI 能自己去蓝湖拉设计稿的结构化信息,间距、字号、色值、切图 URL 全部自动落到代码里,还原度核对从"设计师追着问、开发手动对"变成了"AI 拉数据、代码直接对齐"。这篇文章不聊概念,只讲实际操作,包括为什么选 MCP 而不是让 AI 看截图、怎么在 Cursor 里配蓝湖数据源、跑通之后的工作流长什么样,以及我踩过的几个坑。
1. 为什么非要把 Cursor 接到蓝湖上
1.1 还原度核对,是前端和设计师之间的一道坎
先说痛点。做过前端的人应该都经历过这种场景:设计师在群里发一条消息"首页这个按钮的高度和间距跟稿子对一下",你打开蓝湖,找到对应画板,先看标注里的尺寸,再看颜色代码,然后再回代码里改。一次两次还好,一个迭代几十个页面,每个页面改个三五轮,时间全耗在这上面了。
更麻烦的是切图。以前用 Ps 批量导出,后来蓝湖能直接下载切图,但下载下来之后还得手动放目录、手动命名。如果哪个图标换了,又得重新下一遍。这些重复劳动其实不创造价值,但它是还原度达标的前提。
还有个隐形的痛点:信息差。设计师在设计稿里改了某个圆角、某个层级结构,开发可能根本不知道,因为蓝湖不会主动提醒你"这个图层更新了"。等设计师问起来,才发现代码跟设计稿已经差了十万八千里。
1.2 传统工作流里的隐形损耗
把还原度核对这件事拆开看,它其实包含三个环节:读取设计稿信息、对照代码差异、修正不一致的地方。真正花时间的不是"改代码",而是"读设计稿"。
读取设计稿信息这个环节,最常见的方式是切到蓝湖网页端,鼠标悬停图层看标注。一个稍微复杂点的组件,比如商品卡片,包含图片、标题、价格、标签、按钮,光是把这些元素的间距、字号、色值抄下来,就得花好几分钟。而且抄的过程容易出错,色值复制错一位字母,肉眼很难看出来。
再往深了说,蓝湖的标注信息本身是结构化的,但人肉去读的时候,它就变成了"散装"的信息。你读到的是一段文字,而不是一个可以直接映射到代码变量的对象。这就导致信息在传递过程中不断损耗——先损耗在读取效率上,再损耗在人为抄写上。
1.3 我想要的其实是"设计稿信息直连代码"
所以问题的本质不是"设计师追着问",而是信息链路太长。设计师出稿 → 蓝湖标注 → 前端读取 → 手写代码,每个环节都是一次人工搬运。搬运次数越多,损耗越大,沟通成本越高。
我在想,如果 Cursor 这个 AI 编程工具能直接访问蓝湖的数据,让 AI 把设计稿里的结构化信息直接翻译成代码,那"搬运"这件事就可以交给模型去做。前端要做的是审核 AI 生成的结果,而不是自己去翻标注、抄数据。
这就是我把 Cursor 接到蓝湖上的核心思路:把蓝湖变成 Cursor 的一个数据源,AI 写代码前先去蓝湖查一下设计稿的参数,写出来的代码天然就更接近设计稿。
2. 方案选型:为什么是 MCP,而不是让 AI 看截图
2.1 MCP 到底是个什么东西
Cursor 接入蓝湖,听起来很玄乎,技术上其实用的是 MCP(Model Context Protocol),中文直译是"模型上下文协议"。Anthropic 提出来的一个开放标准,目的是让 AI 模型能以统一的方式连接外部工具和数据源。
你可以把它理解为 AI 应用里的"USB-C 接口"。以前 AI 要接一个设备,得单独写一套适配逻辑;现在大家都是统一接口,接上就能用。Cursor 从很早的版本就开始支持连接 MCP Server,用户可以通过配置一个本地服务或远程服务,把外部数据"喂"给 AI。
MCP 的工作方式大致是这样:客户端(Cursor)连接一个 MCP Server,这个 Server 里面注册了若干个"工具"。AI 在对话中判断需要用某个工具时,会以标准化的格式去调用它,拿到返回结果后再继续生成内容。
对蓝湖来说,它其实有开放平台,提供了很多数据接口。问题在于 Cursor 不能直接调蓝湖的 HTTP 接口——模型并不知道该往哪个 URL 发什么参数。MCP 中间层刚好补上这个缺口:它把蓝湖 API 包成了一个 AI 能调用的工具。
2.2 让 AI 直接读设计图的坑
也有人问过我:为什么不让 Cursor 直接看图?反正模型有视觉能力,把设计稿截图丢给它不就行了?
这个思路乍一看没问题,实际用起来全是坑。第一,设计稿是高分辨率大图,直接丢给模型,Token 消耗非常夸张,算下来比开会员还贵。第二,视觉模型读图会有误差,尤其是小字号、细边框、特殊圆角这类细节,AI 一眼扫过去经常"看走眼"。第三,设计稿上只有视觉信息,没有结构信息,层级关系、自动布局、组件复用这些,靠肉眼是看不出来的。
蓝湖标注之所以好用,正是因为它把图层信息结构化了。哪个元素是图片,哪个元素是文本,色值是什么,间距是多少,它全给你拆得明明白白。这种结构化信息更适合用文本方式喂给模型,模型读 JSON 比读图片准确得多。
所以我的结论是:截图方案只能用来"看个大概",真正要精确还原,必须走结构化数据路线,也就是 MCP。
2.3 通过 MCP 能把蓝湖里的哪些信息喂给 Cursor
我用 MCP 把蓝湖的设计稿数据接进来之后,Cursor 能拿到的信息主要分为这几类。
第一类是元素参数。包括设计稿里某个图层的位置坐标、宽高、圆角、透明度、边框粗细。AI 写 CSS 的时候可以直接拿这些数值用,不靠猜。
第二类是样式 Token。色值、字体大小、字重、行高,蓝湖标注里都有。AI 拿到这些值可以自动生成统一的样式变量,而不是散落在各个组件里的魔法数字。
第三类是切图和资源链接。蓝湖生成的切图 URL,AI 可以直接拿回去用在 img 标签或者 CSS 背景上。我不用手动下载,也不用担心命名规范不统一。
第四类是文本内容和图层结构。设计稿里写的文案、图层之间的嵌套关系,AI 可以用这些信息搭出组件树,减少"我猜这个结构应该是这样"的随机性。
有了这四类信息,还原度就从"凭感觉"变成了"按数据"。AI 写的代码不是它想象出来的,而是基于设计稿参数推导出来的。
3. 完整实操:从安装到跑通全流程
3.1 前置准备:Cursor 环境与蓝湖开放平台令牌
动手之前,先确认基础环境。
第一步,安装 Cursor。这个不多说,去官网下载对应平台的安装包,安装后用邮箱或者账号登录即可。新手容易卡在注册环节,其实现在 Cursor 是支持常规邮箱注册的,也能用其他账号方式登录,按引导填信息就能过。
第二步,注册登录蓝湖,进入你要对接的团队和项目,确认自己的账号有查看设计稿的权限。如果设计稿还在 Sketch 里没导入蓝湖,先需要完成导入。Sketch 设计稿导入蓝湖这件事本身不复杂,蓝湖提供了 Sketch 插件,安装之后选中画板直接上传。这个动作很关键,因为后面所有自动化都建立在"设计稿已经上蓝湖"这个前提下。
第三步,去蓝湖的开放平台申请一个 API 令牌。个人令牌类似一把钥匙,MCP 服务拿它去请求蓝湖的数据接口。申请的时候注意权限范围,只勾选你自己团队需要的那几个项目,"最小权限"原则在自动化工具里同样适用。令牌千万别提交到公开仓库,不然别人拿到你的令牌,就能读你们团队所有设计稿。
准备这三样东西就够了:一个能登录的 Cursor,一个已经有设计稿的蓝湖项目,一个 API 令牌。
3.2 在 Cursor 里配置 MCP 服务器
Cursor 配置 MCP Server 的位置在设置里的 Features 或者 Servers 相关入口,不同版本位置略有差别,但核心逻辑一致:需要把一段 JSON 配置填进去,告诉 Cursor"我这里有一个 MCP Server,启动方式是什么样"。
我这边用的是本地运行一个 MCP 桥接服务的方案。这个服务是一个进程,Cursor 启动时会自动拉起它,然后通过标准输入输出流跟它通信。配置长这样:
{ "mcpServers": { "lanlan": { "command": "python", "args": ["/path/to/lanlan_bridge/server.py"], "env": { "LANLAN_API_TOKEN": "你的令牌" } } } }其中lanlan是给这个数据源起的名字,command和args告诉 Cursor 怎么启动桥接脚本,env里放蓝湖令牌。Cursor 每次启动都会运行这个脚本,所以路径一定要写对。
我建议第一次配置完,先回到 AI 对话框,问它一句"你现在能看到哪些工具?"正常情况下,它会回答出类似"我有get_frame_info、get_image_url这些工具可用"的话。如果它说看不到工具,八成是配置没生效,按照第 4 节里的排查思路去处理。
3.3 第一次让 Cursor 自己"看"蓝湖设计稿
MCP 服务起起来之后,最关键的一步来了:让 AI 实际调用蓝湖数据写代码。
我拿一个商品卡片组件举例。正常流程是这样的:你先在蓝湖里找到"商品卡片"这个画板的分享链接,或者至少知道它的名称,然后把链接或名称告诉 Cursor。
Cursor 接到指令后,会先去调用 MCP 工具,兜一圈找到对应画板,拉出里面所有图层的结构化信息,包括宽度、高度、圆角、背景色、文本内容、字号、行高等。然后它再基于这些参数写代码。
下面是我实际跑通过的指令和代码结构(简化版):
你在蓝湖上找一下叫"商品卡片"的 Frame,照着它的布局和样式写一个 React 组件。Cursor 给我的结果大致长这样:
<div style={{ width: 280, padding: 16, borderRadius: 12, backgroundColor: "#FFFFFF", boxShadow: "0 2px 8px rgba(0, 0, 0, 0.06)" }}> <img src={imageUrl} style={{ width: 248, height: 160, borderRadius: 8 }} /> <div style={{ fontSize: 16, fontWeight: 500, color: "#1A1A1A", marginTop: 12 }}> 商品标题文本 </div> <div style={{ fontSize: 14, color: "#595959", marginTop: 8 }}> 商品描述信息 </div> <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginTop: 16 }}> <span style={{ fontSize: 18, fontWeight: 600, color: "#F5222D" }}>¥129</span> <button style={{ width: 72, height: 32, borderRadius: 6, backgroundColor: "#1A1A1A", color: "#FFF", fontSize: 13 }}> 购买 </button> </div> </div>这里面的 280、16、12、#FFFFFF、#1A1A1A,全是 Cursor 从蓝湖设计稿里拉出来的真实参数,不是我手动填的。我只需要检查一遍逻辑对不对,要不要抽成公共组件,然后就能直接提交。
这种做事方式跟以前相比,核心变化在于:AI 不再是"猜"设计意图,而是"读"设计意图。它写出来的代码,天生就是带还原度的。
3.4 把"还原了吗"变成自动核对流程
MCP 通了之后,我顺手把工作流也改了。现在设计师发来"首页改版了",我不再一页一页手动翻标注,而是让 Cursor 把蓝湖上的最新设计稿跟我代码里的样式参数做一遍对比。
具体做法是:让 AI 读取设计稿里的关键样式值,同时打开我代码里对应的组件文件,把两者并排比较,自动标出不一致的地方。
比如有次设计师把按钮圆角从 8 像素改成了 12 像素,我代码里还是 8,Cursor 对比完直接告诉我:"按钮的圆角设计稿是 12px,当前代码是 8px,需要更新一下。" 这种颗粒度的核对,放在以前,我不盯得那么细根本发现不了。
反过来的场景也有用:我这边为了实现某个效果改掉了设计稿里的间距,以前全靠自觉去跟设计师同步。现在 AI 会发现两者有差异,至少能提醒我"这个值跟设计稿不一致,你是故意改的还是改错了"。省掉了大量不必要的来回沟通。
当然,这个流程不是万能的。设计稿的交互逻辑、动效节奏、视觉权重,AI 目前还理解不了,这些还是需要人来判断。但它确实把最机械、最费时间的"参数对齐"这件事做掉了。
4. 遇到的坑和排查记录
4.1 Cursor 中文设置与汉化问题
先回应一下很多新手会问的问题:Cursor 怎么设置中文回复,怎么汉化。
先说结论:Cursor 的官方界面目前并没有完整的中文语言包,完全汉化要靠额外手段,效果也有局限。但更实用的是设定"让 AI 用中文回复",这个在 Cursor 里是能做到的。
我在项目根目录放了一个.cursorrules文件,里面就一句话:"你是一名资深前端工程师,始终使用简体中文回复,代码注释也用中文。"这样不管是对话、代码生成还是代码审查,它都会默认用中文。如果你没有.cursorrules,也可以用全局 Rules 实现,位置在 Cursor 设置里的 Rules 相关配置,原理一样。
如果你实在想要中文界面,可以试试编辑器插件市场里的汉化扩展。安装方法类似于 VS Code 装扩展,直接在扩展栏里搜索" Chinese Language Pack "之类的关键词,装完重启生效。不过这类汉化包更新往往滞后,Cursor 一升级界面又变回英文,我自己的习惯是界面英文 + 回复中文,用习惯了反而更稳。
4.2 MCP 服务连接失败处理
MCP 配置好之后最常碰到的坑,就是 AI 说看不到工具,或者工具调用报错。
首先排查启动路径。command里的 python 和args里的脚本路径必须确保在你电脑上能直接跑通。我自己就踩过坑:脚本路径写的是相对路径,Cursor 的工作目录跟终端不一致,服务根本没起来。建议先写绝对路径,跑通后再考虑优化。
其次排查令牌权限。如果 AI 能读到工具,但调用时报权限或者数据为空,大概率是蓝湖 API 令牌配置不对,或者令牌对应的账号没有目标项目权限。回到开放平台确认一下令牌的权限范围,重新生成一个再试试。
还有一个低频坑是网络代理问题。有些公司内网环境访问蓝湖 API 需要走代理,而本地 MCP 服务默认不走系统代理。这种情况我是在启动命令里加上了代理相关的环境变量,配置完就正常了。
4.3 响应慢和上下文过长的改善
接上数据源之后,很多人会抱怨 Cursor 变慢了。我自己也碰到过,第一次读取一个包含几百个图层的大页面,AI 需要先把所有图层信息读进来,Token 消耗巨大,回复时间直接翻倍。
我的对策是缩小读取范围。不要一次性让 AI 读整个页面或整块画板,精确到某一个 Frame 或者某一个组件区域,数据量小很多,响应速度明显提升。另外,对话过程中如果上下文已经很长,我会开一个新对话继续,避免累赘的历史信息拖慢模型。
还有一点:如果团队设计稿里存在大量隐藏图层或重复分组,蓝湖返回的信息会有不少噪音。我处理这些的方式,是在 MCP 服务端做一层过滤,把隐藏图层和冗余信息剔除,只保留实际渲染可见的元素。这样一来,喂给模型的数据更干净,准确率和速度都会改善。
4.4 蓝湖令牌权限与旧版本设计稿
最后说一下版本管理的问题。蓝湖上经常存在同一页面的多个版本,MCP 读取默认拿哪一版,直接影响还原度对不对。
我建议给项目的 MCP 工具加一个参数:支持传入画板分享链接里的特定标识,或者指定按设计稿的最后更新时间排序。这样 AI 读取的一定是设计师最新发布的一版,而不是你上一次看过的旧版。
另外团队成员之间最好约定好:设计稿更新后,主动在蓝湖里 @ 对应的开发人员。MCP 能做到数据同步,但做不到主动通知,这一步还是得靠流程规范。自动化解决的是"读取"的效率,沟通规范解决的是"变化"的感知,两者缺一不可。
5. 最后再聊几句实在话
跑通 Cursor 接蓝湖这整套流程之后,我最大的感受是:AI 编程工具接入设计数据源,价值被严重低估了。过去大家把 Cursor 当成一个"写代码快一点的编辑器",但接入蓝湖之后,它变成了一个"懂设计稿的结对编程搭档"。
设计师那边最直观的变化是,群里那句"还原了吗"减少了很多。我当然不会说 AI 生成的代码直接就能上线,但至少前端每次提交之前,参数对齐这件事是 AI 已经做过一遍的,剩下的是代码质量和交互逻辑的判断,这些本来就是我们该干的活。
最后提醒一句:MCP 服务虽然好用,但令牌安全一定要重视。蓝湖令牌相当于你们设计资产的钥匙,千万不要写进任何公开仓库。我见过有人把令牌硬编码在代码里提交到 GitHub,结果被外部扫描工具抓到,整个项目数据全部泄露,代价极大。个人项目这样玩还好,团队项目这么干,就是给自己埋雷。
这个方向其实还有很多可以扩展的地方。代码生成只是第一步,后面还可以把设计稿变更自动生成差异报告,或者把 UI 组件图直接转成测试用例,数据链路一旦打通,想象力就打开了。我的经验分享到这里,希望对被"还原了吗"困扰的团队有点帮助。