在 Cursor 中搭建 MCP 服务,把 Figma 设计稿转成可运行代码的完整配置
1. 为什么要在 Cursor 里搭一个 Figma MCP 服务先说清楚这件事到底解决什么问题。Figma 设计稿转代码不是新话题早几年就有 D2C 插件原理是用固定规则解析 Figma 的节点数据再套模板生成代码。这类方案准确率不低但灵活性差你想让它生成 Vue 它只会 React你想用 Tailwind 它给你写死 CSS类名还是.frame-1234这种没法维护的东西。MCP 是 Model Context Protocol 的缩写你可以把它理解成给大模型装的一个「工具插座」。大模型本身不能访问你的 Figma 文件但你可以写一个本地服务注册几个工具方法比如「读取 Figma 节点」「下载 Figma 图片」然后在 Cursor 的 Composer Agent 模式里把 Figma 链接贴进去模型会自己判断该调用哪个工具、传什么参数拿到节点数据后转成 UI 代码。Figma-Context-MCP 这个库就是干这个的当前版本注册了两个工具get_figma_data和download_figma_images。前者拉取文件节点树并精简样式信息后者把设计稿里的图标、图片下载到本地。相比纯规则方案AI 方案的优势是你可以用 prompt 约束输出格式——React、Vue、HTML 都行Tailwind、CSS Module 也行生成的类名还有语义。适合谁前端开发者、独立开发者、需要频繁把设计稿落地成页面的同学。如果你已经在用 Cursor这套流程大概十分钟能跑通。下面我从服务端配置讲到 Cursor 侧连接再到一次完整的 Figma 转代码验证最后把 endpoint 改到 TaoToken 统一 Key 通道方便你集中管理模型调用。2. 前置准备Figma Token、Node 环境与 TaoToken Key 通道2.1 克隆 Figma-Context-MCP 并装依赖先把服务端代码拉下来。这个库是 Node 项目需要 Node 18 以上。git clone https://github.com/GLips/Figma-Context-MCP.git cd Figma-Context-MCP npm i装完依赖后先别急着启动还差一个 Figma Token。2.2 创建 Figma Personal Access Token打开 Figma进入账号设置找到 Security 标签页往下拉到 Personal access tokens点生成。权限至少给到 File content 的只读因为工具要调用 Figma API 读取节点数据。生成后复制这串 token它只显示一次。在项目根目录建一个.env文件写入FIGMA_API_KEY你的_figma_token注意不要把这个文件提交到 git.env里是明文密钥。2.3 为什么要把 endpoint 改到 TaoTokenFigma-Context-MCP 本身只负责读 Figma 数据它不调用大模型。真正调用大模型的是 Cursor 的 Agent。但如果你后续想在这个链路里接入自己的模型通道或者想让 Cursor 走统一的 Key 管理就需要一个兼容 OpenAI 协议的 endpoint。TaoToken 提供的就是这样一个统一 Key 通道Base URL 是https://taotoken.net/api兼容 OpenAI 的/v1/chat/completions格式。你可以在 TaoToken 控制台创建一个 API Key然后在 Cursor 的模型配置里把 Base URL 指过去。这样做的实际好处是Figma 转代码这类任务往往要跑很多次统一通道方便看用量、换模型、做成本控制。先去 TaoToken 控制台拿 Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole创建后复制 Key形如sk-xxxx。这个 Key 后面在 Cursor 的模型设置里会用到。如果你还没决定用哪个模型可以先在模型对话页面试一下https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chat2.4 启动 MCP 服务回到项目目录启动开发模式npm run dev默认会监听一个本地端口通常是 3000 或库内配置的端口终端会打印出 SSE 服务地址类似http://localhost:3000/sse。这个地址就是待会要填进 Cursor 的 server url。保持这个终端不要关MCP 服务需要一直运行。3. 可复制配置MCP 服务端片段与 Cursor 连接参数3.1 服务端工具注册片段Figma-Context-MCP 内部依赖modelcontextprotocol/sdk这个库来注册工具。核心逻辑长这样你可以对照理解它到底暴露了什么import { McpServer } from modelcontextprotocol/sdk/server/mcp.js; import { z } from zod; const server new McpServer({ name: figma-context-mcp, version: 0.1.0, }); server.tool( get_figma_data, 获取 Figma 文件节点数据, { fileKey: z.string(), nodeId: z.string().optional(), depth: z.number().optional(), }, async ({ fileKey, nodeId, depth }) { // 调用 Figma API精简节点样式后返回 const data await fetchFigmaNodes(fileKey, nodeId, depth); return { content: [{ type: text, text: JSON.stringify(data) }] }; } ); server.tool( download_figma_images, 下载 Figma 图片到本地, { fileKey: z.string(), nodeId: z.string(), localPath: z.string(), }, async ({ fileKey, nodeId, localPath }) { // 下载图片并写入 localPath return { content: [{ type: text, text: downloaded }] }; } );fileKey和nodeId都来自你复制的 Figma 链接。链接形如https://www.figma.com/file/ABC123/xxx?node-id12-345其中ABC123是 fileKey12-345是 nodeId。工具入参定义和 Function Calling 是一个思路模型根据对话内容决定传什么。3.2 Cursor 侧 MCP 连接配置打开 Cursor 设置找到 MCP Servers点添加。填写字段值Namefigma-context自定义TypesseServer URLhttp://localhost:3000/sse保存后 Cursor 会去连这个 SSE 地址连上后你能在 MCP 面板看到两个工具get_figma_data和download_figma_images。如果只看到一个或者显示红色说明服务没起来或者端口不对回到终端确认npm run dev还在跑。3.3 把模型 endpoint 指向 TaoTokenCursor 的模型设置里如果你要用自定义通道填三件套{ baseUrl: https://taotoken.net/api, apiKey: sk-你的_taotoken_key, modelId: 你选择的模型ID }Base URL 用https://taotoken.net/api不要加 UTM 参数那是给网页链接用的。API Key 从控制台拿Model ID 填你在 TaoToken 支持的模型名。这样 Cursor 的 Agent 调用模型时就走统一通道了。如果你更习惯用配置文件的方式管理Cursor 的 settings 里也可以直接写 JSON。路径和字段名以你当前 Cursor 版本为准核心就是 baseUrl、apiKey、model 三项对齐。4. 验证请求一次完整的 Figma 转代码动作4.1 复制 Figma 图层链接在 Figma 里选中你要转的图层右键选 Copy link to selection。这个链接里带了 node-id是工具定位节点的关键。4.2 在 Composer Agent 模式发起请求打开 Cursor 的 Composer切到 Agent 模式把 Figma 链接贴进去加上约束 prompt。比如请帮我用这个 figma 链接获取 figma ui 元素并从元素数据转成代码。要求 1. 转成 React 代码 2. 使用 tailwind css 3. 如果有图标则下载到 src/assets 文件夹下使用 import Icon from /assets/icon.svg 路径引用 4. 对于表格相关组件 Form Input Select Checkbox Switch Button使用 antd 组件发送后Cursor 会弹出工具调用确认先执行get_figma_data拉节点数据。如果设计稿里有头像、图标会再弹一次download_figma_images继续执行。两次工具跑完模型拿到精简后的节点树开始生成代码。4.3 看工具返回数据确认节点名这一步很关键。在工具返回的节点数据里你能看到每个图层的name字段。如果你在 Figma 里把某个图层命名为Antd Input返回数据里 name 就是Antd Input模型据此推断该用 antd 的 Input 组件而不是用 div 加样式模拟。实测下来对于 Table 这种复杂组件在 UI 最外层图层标记成Antd Table模型就不会把整个表格样式写出来而是引用 antd 的 Table 组件并配上 dataSource 和 columns 数据。这比纯 D2C 插件智能的地方在于它能理解「这个视觉元素对应哪个组件库的组件」。4.4 检查生成结果生成完成后看代码。渐变色处理偶尔会有偏差这是 AI 方案的常见问题因为节点数据里的渐变信息被精简过。但类名有语义、组件引用正确这两点是规则方案做不到的。如果发现某个元素该用组件库却生成了 div回到 Figma 把图层名改清楚重新跑一遍流程即可。5. 本篇常见错排查401、local proxy failed 与 OAuth 报错5.1 Figma API 返回 401报错长这样Error: Request failed with status code 401 {status:401,err:Invalid token}原因基本是.env里的FIGMA_API_KEY不对或者没加载。检查三点token 有没有复制完整、.env文件在项目根目录、改完.env后有没有重启npm run dev。环境变量是启动时读的不重启不生效。5.2 Cursor 显示 local proxy failedMCP error: local proxy failed to connect这个通常是 MCP 服务没起来或者端口被占。先在浏览器或 curl 访问http://localhost:3000/sse看有没有响应。如果没有回终端看npm run dev的日志。如果端口冲突改库里的端口配置再重启同时更新 Cursor 里的 Server URL。5.3 模型返回 reading choices 相关错误TypeError: Cannot read properties of undefined (reading choices)这是模型通道返回格式不对。如果你把 endpoint 指到了 TaoToken确认 Base URL 是https://taotoken.net/api且路径拼接正确一般是/v1/chat/completions。如果用的是自定义模型 ID确认这个 ID 在 TaoToken 支持列表里。Key 无效也会导致返回体里没有 choices 字段。5.4 OAuth 相关报错OAuth token exchange failed如果你在 Cursor 里同时配了官方登录和自定义 Key可能会冲突。检查是不是有多个认证来源。用 TaoToken 统一 Key 通道时确保 Cursor 的模型认证走的是 API Key 而不是 OAuth 流程。清理掉旧的登录态再试。5.5 工具调用不弹确认有时候贴了链接但模型不调用工具直接开始瞎写代码。这通常是 prompt 里没明确要求「获取 figma 元素」。把上面那段约束 prompt 完整贴上明确说「用这个 figma 链接获取 figma ui 元素」模型才会触发工具调用。6. 把链路固定下来Key 管理、文档与长期编码跑通一次之后建议把几个东西固定下来避免每次重新配。第一Figma Token 和 TaoToken Key 分开管理。Figma Token 放项目.envTaoToken Key 放 Cursor 的模型配置或系统环境变量不要混在一个文件里。第二prompt 模板存成 snippetCursor 支持自定义指令把那段 antd 约束存进去下次直接调用。如果你要长期做 Figma 转代码这类任务可以考虑 Coding Plan统一管理模型调用和用量https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_planAPI Key 管理入口在这里方便你创建和轮换 Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入文档在这里里面有 Base URL、鉴权方式和各语言示例https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc如果你用 Claude Code 做类似的事情Anthropic 兼容通道的配置在这里https://taotoken.net/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaudecode最后说个实际踩过的坑MCP 服务跑在本地Cursor 每次重启后如果服务没起来工具会显示不可用。建议把npm run dev放到一个常驻终端或者用 pm2 之类的进程管理工具托管。另外 Figma 节点数据量大的时候get_figma_data返回会很长模型上下文可能吃紧这时候在 prompt 里限制 depth 参数只拉需要的层级能明显减少 token 消耗。

相关新闻

研究生论文降AI率实战:千笔AI与锐智AI对比评测

研究生论文降AI率实战:千笔AI与锐智AI对比评测

研究生阶段最耗精力的其实不是找创新点,而是把“像AI写的”变成“像人写的”。导师看一眼初稿,眉头一皱说“语言风格太规整了”,这就是在提醒你:AI痕迹太重了。现在很多学位论文和期刊投稿除了查重,还会过一遍AI检测。…

2026/10/12 2:04:47 阅读更多 →
Java枚举深度解析:从底层原理到实战玩法与避坑指南

Java枚举深度解析:从底层原理到实战玩法与避坑指南

说起来有点不好意思,我见过不少Java开发,写了好几年代码,被问到“enum到底是个什么东西”时,第一反应还是“一组常量嘛”,然后就没有然后了。enum在Java里确实太容易让人小看,因为它写起来太简单了&#xf…

2026/10/12 2:05:02 阅读更多 →
Dify 124万行代码背后:把 AI 工作流从“画得出”跑到“稳得住”的 TaoToken 实践

Dify 124万行代码背后:把 AI 工作流从“画得出”跑到“稳得住”的 TaoToken 实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:05:29 阅读更多 →

最新新闻

open-code-review 代码评审实战:从设计思路到落地流程的完整指南

open-code-review 代码评审实战:从设计思路到落地流程的完整指南

1. 从标题说起:open-code-review 到底在解决什么问题第一次看到 open-code-review 这个标题,我脑子里蹦出来的不是某个具体工具,而是一整套工作流。代码评审这件事,但凡在团队里写过几年代码的人都懂——它既是质量守门员&#xf…

2026/10/12 7:59:36 阅读更多 →
open-code-review:构建可度量、可追溯的代码评审工程实践

open-code-review:构建可度量、可追溯的代码评审工程实践

1. 项目缘起与核心定位第一次听到“open-code-review”这个名字,我的直觉是:这大概率是一个把代码评审流程开放化、工具化的项目。事实也确实如此。它不是一个单纯的代码托管平台,也不是一个只服务于某个团队的内部脚本,而是一套围…

2026/10/12 7:59:36 阅读更多 →
Web开发避坑指南:盘点那些“看起来很香”却容易后悔的技术路线

Web开发避坑指南:盘点那些“看起来很香”却容易后悔的技术路线

我入行Web开发差不多八年,踩过的坑比我写过的接口还多。如果非要总结这八年最大的教训,就一句话:市面上很多“看起来很香”的Web技术,学完大概率会后悔。后悔的不是技术本身没用,而是当时的我把时间花错了地方。你肯定…

2026/10/12 7:59:36 阅读更多 →
AnyPS5串流方案:跨平台主机游戏低延迟传输技术解析

AnyPS5串流方案:跨平台主机游戏低延迟传输技术解析

1. 从“AnyPS5”这个标题说起:它到底想解决什么问题 第一次看到“AnyPS5”这个标题,我脑子里冒出来的第一个念头是:这大概率不是一个官方项目,而是一个带着强烈个人色彩的工具型命名。为什么这么说?因为“Any”这个前缀…

2026/10/12 7:59:36 阅读更多 →
Cursor完全使用指南:从入门到精通的AI编程助手与TaoToken配置实践

Cursor完全使用指南:从入门到精通的AI编程助手与TaoToken配置实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 7:59:36 阅读更多 →
微信点餐小程序全栈开发实战:从Spring Boot后端到扫码支付

微信点餐小程序全栈开发实战:从Spring Boot后端到扫码支付

1. 项目概述“微信点餐管理系统”这几个字,这两年我见得太多了。从大作业到毕业设计,从餐饮店老板私活到小程序外包项目,凡是涉及“扫码点餐”的,几乎都绕不开这套东西。它本质上就是一套把传统纸质菜单、服务员点单、收银台结算全…

2026/10/12 7:58:35 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →