一、Figma MCP简介

Figma-MCP是一个实现了Model Context Protocol的服务器,它为AI提供标准化的上下文信息,使其能够直接访问和理解Figma设计资源。这种集成为设计师和开发人员开启了全新的可能性:

  • 使用AI和Figma-MCP自动化设计到代码的转换流程
  • 智能生成基于设计的UI组件
  • 显著提高团队协作效率
  • 减少设计与开发之间的沟通成本
MCP的价值
MCP(Model Context Protocol)是Anthropic于2024年11月发布的开源技术,旨在显著扩展LLM的能力,允许它们与外部工具和资源进行交互。对于构建AI代理尤为有价值。

二、Figma-MCP技术原理

MCP协议核心架构

MCP协议本质上是一种标准化接口,使LLMs能够理解和操作外部应用程序(如Figma)的数据和功能。这一协议提供了结构化的数据交换框架,使AI工具能够"看到"和"理解"设计元素。

MCP的强大之处在于它的通用性和扩展性。通过统一的接口,不同的AI工具可以以相同的方式访问Figma资源,无需为每个工具单独开发集成方案。

与Figma API的深度集成

Figma-MCP服务器通过Figma的官方API建立连接,提供以下关键功能:

  1. 资源访问:允许AI工具读取Figma文件、图层、组件和样式
  2. 结构识别:使AI能够理解设计的层级结构和组织方式
  3. 属性提取:自动获取颜色、字体、间距等设计规范

这种集成支持读取操作,AI工具可以提取设计信息并生成深度洞见,但不会修改原始设计文件,确保设计资产的安全性。

AI驱动的设计自动化工作流

通过Figma-MCP,设计师和开发人员可以实现多种自动化工作流:

  • 代码生成:根据设计自动生成React、Vue等框架的组件代码
  • 样式提取:自动创建CSS/SCSS变量或Tailwind配置
  • 组件库构建:将设计系统转换为可复用的代码组件库
  • 设计优化建议:AI分析设计并提供改进建议
实际应用场景
设计师完成UI设计后,开发人员只需复制Figma设计链接,粘贴到支持MCP的AI工具中,即可获得实现该设计的精确代码,无需手动测量和复制设计规范。

三、Figma-MCP环境搭建

系统与账户准备

在开始使用Figma-MCP前,确保你已准备好以下条件:

  • Node.js (v16.0或更高版本)
  • npm (v7.0或更高)或pnpm (v8.0或更高)
  • Figma账户:建议使用专业版或企业版
  • Figma API访问令牌:具有读取权限
要求最低版本建议版本
Node.jsv16.0v18.0+
npm/pnpmv7.0/v8.0最新版本
Figma账户免费版专业版

获取Figma API访问令牌

Figma API令牌是连接MCP服务器与Figma账户的关键。以下是获取令牌的详细步骤:

  1. 登录Figma
  2. 访问个人设置:点击侧边栏中的个人头像,然后选择"设置" 20250330131133
  3. 找到安全选项:在设置菜单中,导航至"安全"选项卡
  4. 生成访问令牌
    • 滚动到"个人访问令牌"部分
    • 点击"生成新令牌"
    • 为令牌提供描述性名称(如"Figma_MCP_Integration")
    • 点击"创建"生成令牌 20250330131249
  5. 安全保存令牌:Figma只会显示令牌一次,请立即复制并安全存储 20250330131329

Figma-MCP 安装方法

根据你的需求,可以选择以下两种安装方式之一:

方法一:使用NPX快速启动(推荐)

这是最简单的方法,无需克隆代码库:

npx figma-mcp --figma-api-key=<your-figma-api-key>

你也可以使用pnpxyarn dlxbunx执行相同操作。

方法二:从源代码安装

对于需要自定义或贡献代码的用户:

# 克隆存储库
git clone https://github.com/1yhy/Figma-Context-MCP

# 进入项目目录
cd Figma-Context-MCP

# 安装依赖
pnpm install

# 配置环境
cp .env.example .env
# 编辑.env文件,添加你的Figma API令牌

# 启动服务器
pnpm run dev

服务器配置选项

配置Figma-MCP服务器有两种主要方式:

1. 环境变量:在.env文件中设置以下变量:

FIGMA_API_KEY=your_api_token_here
PORT=3333  # 可选,默认为3333

2. 命令行参数:启动时直接传递参数:

npx figma-mcp --figma-api-key=your_api_token_here --port=3333

命令行参数的优先级高于环境变量,适合临时更改配置。

四、将Figma-MCP与Cursor集成

与Cursor IDE连接配置

1. 确认MCP服务器状态

首先,确保你的Figma-MCP服务器正在运行,并监听正确的端口(默认为3333)。你可以通过浏览器访问http://localhost:3333验证服务器状态。

2. 在Cursor中添加MCP服务器

  1. 启动Cursor IDE
  2. 打开设置菜单(通常在右上角或通过键盘快捷键)
  3. 导航到MCP设置部分
  4. 点击添加新MCP服务器
  5. 填写服务器信息:
    • 名称:任意描述性名称(如"Figma MCP")
    • 类型:选择SSE(服务器发送事件)
    • URL:输入服务器地址(如http://localhost:3333
  6. 保存设置 20250330131903
# MCP Client使用
{
  "mcpServers": {
    "Figma MCP": {
      "command": "npx",
      "args": ["figma-mcp", "--figma-api-key=<your-figma-api-key>", "--stdio"]
    }
  }
}
# 本地使用
{
  "mcpServers": {
    "Figma MCP": {
      "url": "http://localhost:3333/sse",
      "env": {
        "API_KEY": "<your-figma-api-key>"
      }
    }
  }
}

成功连接后,服务器名称旁会显示绿色状态指示器。红色指示器表示连接失败,需要检查配置或服务器状态。 20250330131738

使用Figma-MCP生成代码

获取Figma设计链接

  1. 打开Figma项目,选择要实现的设计元素
  2. 右键点击选中的设计 > 选择复制/粘贴为 > 选择复制链接到选择
  3. 这个链接包含了设计的确切引用,允许AI通过MCP访问 20250330132054

使用Cursor Composer生成代码

  1. 在Cursor中打开Composer面板
  2. 启用Agent模式(这允许AI使用工具,包括MCP服务器)
  3. 粘贴之前复制的Figma链接
  4. 输入具体指令,如:
    • “使用React和Tailwind CSS实现这个设计”
    • “为这个导航栏组件生成Vue 3代码”
    • “分析这个设计并创建一个组件库结构”

Cursor将通过MCP服务器访问Figma设计,分析其结构、样式和属性,然后生成符合设计规范的代码。 20250330132438

设计稿规范
设计稿如果顺序、结构比较混乱,Cursor还原出来效果比较一般,可以先人工手动干预对设计稿进行一些合并图层、删除一些没有节点、图片都合并成一张,保证设计稿的规范性,这样Cursor还原出来的效果会更好。

Figma-MCP 接口返回格式

MCP工具返回的设计稿JSON格式如下,cursor获取到后,会根据设计稿生成代码:

{
  // 设计文件基本信息
  "name": "设计文件名称",
  "lastModified": "最后修改时间",
  "thumbnailUrl": "缩略图URL",

  // 节点数组,包含所有页面元素
  "nodes": [
    {
      // 节点基本信息
      "id": "节点ID,例如 1:156",
      "name": "节点名称",
      "type": "节点类型,如 FRAME, TEXT, RECTANGLE, GROUP 等",

      // 文本内容(仅文本节点有此属性)
      "text": "文本节点的内容",

      // CSS样式对象,包含节点的所有样式属性
      "cssStyles": {
        // 尺寸和位置
        "width": "100px",
        "height": "50px",
        "position": "absolute",
        "left": "10px",
        "top": "20px",

        // 文本样式(主要用于TEXT节点)
        "fontFamily": "Inter",
        "fontSize": "16px",
        "fontWeight": 500,
        "textAlign": "center",
        "lineHeight": "24px",
        "color": "#333333",

        // 背景和边框
        "backgroundColor": "#ffffff",
        "borderRadius": "8px",
        "border": "1px solid #eeeeee",

        // 特效
        "boxShadow": "0px 4px 8px rgba(0, 0, 0, 0.1)",

        // 其他CSS属性...
      },

      // 填充信息(渐变、图片等)
      "fills": [
        {
          "type": "SOLID",
          "color": "#ff0000",
          "opacity": 0.5
        }
      ],

      // 导出信息(用于图片和SVG节点)
      "exportInfo": {
        "type": "IMAGE",
        "format": "PNG",
        "nodeId": "节点ID",
        "fileName": "suggested-file-name.png"
      },

      // 子节点
      "children": [
        // 递归的节点对象...
      ]
    }
  ]
}

内置工具

服务器提供以下MCP工具:

get_figma_data 获取Figma文件或特定节点的信息。

参数:

  • fileKey:Figma文件的密钥
  • nodeId:节点ID(强烈推荐使用)
  • depth:遍历节点树的深度

download_figma_images 下载Figma文件中的图片和图标资源。

参数:

  • fileKey:包含节点的Figma文件密钥
  • nodes:要获取的图像节点数组
  • localPath:项目中存储图像的目录路径