Figma Forge

Figma Forge

An MCP server that bridges Claude Code to Figma, enabling AI-driven design creation, modification, and export via semantic tools and WebSocket communication.

Category
访问服务器

README

Figma Forge

AI 驱动的 Figma 设计引擎 — 让 Claude Code 直接在 Figma 中创造设计稿。

<p align="center"> <code>Claude Code</code> → <code>MCP</code> → <code>Bridge Server</code> → <code>WebSocket</code> → <code>Figma Plugin</code> </p>


为什么需要 Figma Forge

痛点 现状 Figma Forge
官方 API 限流 120 req/min,复杂文件频繁 429 Plugin API,无调用限制
只能读不能写 REST API 单向 完整的创建 / 修改 / 删除
每次调用走网络 高延迟、易超时 WebSocket 本地通信,毫秒级响应
手动设计效率低 重复操作、无法批量 AI 一次指令,52 个语义工具自动编排

架构

flowchart TD
    A["Claude Code<br/>AI 理解意图, 调用语义工具"]
    B["Figma Forge Bridge<br/>MCP Server · Semantic Layer · REST API"]
    C["Figma Plugin<br/>在 Figma 沙箱中执行 Plugin API"]
    D["Figma Desktop<br/>设计稿实时渲染"]

    A -- "MCP (stdio)" --> B
    B -- "WebSocket (localhost:37849)" --> C
    C -- "Plugin API" --> D

核心设计:AI 只说"做什么"(create_button({ variant: "primary" })),Bridge 负责"怎么做"(自动编排 createNode → setLayout → createText)。一次 Tool Call 完成复杂设计操作。


特性一览

<details> <summary><b>🎨 设计创建</b> — 19 个语义工具</summary>

一次调用即可生成完整的 UI 组件,无需手动拼装底层 API。

类别 工具
基础 create_container · create_text
UI 组件 create_button · create_card · create_input · create_avatar · create_icon · create_image · create_divider · create_badge
布局 create_header · create_sidebar · create_grid · create_list · create_form · create_modal · create_toast · create_navigation · create_hero

</details>

<details> <summary><b>✏️ 设计修改</b> — 6 个语义工具</summary>

支持按 ID 精确操作,也支持按语义标签批量操作。

工具 说明
update_node / update_by_semantic 更新属性(单个 / 批量)
delete_node / delete_by_semantic 删除节点(单个 / 批量)
move_node / reorder_by_semantic 移动与重排

</details>

<details> <summary><b>🔍 设计读取</b> — 6 个语义工具</summary>

工具 说明
get_document_info 文档名称、页面列表
get_node_tree 递归获取节点层级
get_node_properties 获取节点属性
find_nodes 按名称 / 类型 / 语义搜索
get_styles 样式信息
get_semantic_map 语义注册表

</details>

<details> <summary><b>🏗️ 高级能力</b> — 设计 Token · 变体 · Diff · 模板</summary>

能力 工具 说明
Variables create_variable_collection · create_variable · get_variables · update_variable · delete_variable 设计 Token CRUD,支持 light/dark 多模式
Variants create_component_set · create_variant_instance · update_variant · get_component_sets 组件变体的创建与实例化
Diff Engine diff_snapshot · diff_apply 增量更新,只发送变化的属性
Templates create_from_template · list_templates · save_as_template 预定义模板 + 参数化生成
Batch batch_execute 批量执行,失败自动回滚
Events start_event_listener · stop_event_listener · get_pending_events 实时监听文档变化
Export export_node · export_by_semantic 导出为 PNG / JPG / SVG / PDF

</details>


快速开始

前置条件

依赖 版本 说明
Figma Desktop ⚠️ Web 版不支持 Plugin API
Node.js ≥ 18 运行 Bridge Server
Claude Code CLI 或 VS Code 插件均可

安装

方式一:从 npm(推荐)

npx @figma-forge/core setup

方式二:从源码

git clone <repo-url> && cd Figma-Forge
pnpm install && pnpm build

在 Figma 中导入 Plugin

  1. 打开 Figma Desktop(不是 Web 版)
  2. PluginsDevelopmentImport plugin from manifest...
  3. 选择文件:
    • npm 安装 → ~/.figma-forge/plugin/manifest.json
    • 源码安装 → packages/plugin/manifest.json

开始使用

# 在项目目录启动 Claude Code(它会自动启动 Bridge Server)
cd <your-project>
claude

在 Figma 中右键 → Plugins → Figma Forge,看到 "Connected to Bridge" 后即可对话:

你: 帮我创建一个登录页面
Claude: (调用 create_form → create_button → create_input,Figma 中实时生成)

⚠️ 不要手动启动 Bridge Server。 Claude Code 通过 .mcp.json 自动管理其生命周期,手动启动会导致端口冲突。


工作区布局

使用时需要三个窗口同时工作:

flowchart LR
    subgraph T1["Terminal 1"]
        A["Claude Code<br/>输入设计需求<br/>AI 调用 Semantic Tools"]
    end
    subgraph APP["App Window"]
        B["Figma Desktop<br/>设计稿实时生成<br/>52 种组件可用"]
    end
    subgraph EMBED["Figma 内嵌"]
        C["Plugin Panel<br/>显示连接状态<br/>执行日志"]
    end

    A <--> B
    C -. "WebSocket" .-> B

Bridge Server 由 Claude Code 在后台自动启动,无需额外操作。


开发

pnpm build                  # 构建所有包
pnpm dev:bridge             # 单独调试 Bridge(⚠️ 不要和 Claude Code 同时使用)
node test-e2e.mjs           # 运行端到端测试

技术栈

层级 技术
Plugin TypeScript · Figma Plugin API
Bridge TypeScript · Node.js · @modelcontextprotocol/sdk · WebSocket (ws)
构建 esbuild + tsc · pnpm monorepo

REST API

Bridge Server 同时提供 HTTP 接口,可作为 MCP 的补充:

curl http://localhost:37850/health                                    # 健康检查
curl -X POST http://localhost:37850/tools/get_document_info           # 获取文档信息
curl -X POST http://localhost:37850/tools/create_container \
  -H "Content-Type: application/json" \
  -d '{"name": "my-frame", "direction": "VERTICAL", "padding": 16}'  # 创建容器

故障排查

问题 排查步骤
Plugin 显示 "Disconnected" ① 确认 Figma Desktop(非 Web) ② 确认 Claude Code 已启动 ③ 查看终端是否有 [Bridge] ✅ Plugin connected ④ 在 Plugin 面板等待自动重连
MCP server failed to start node --version ≥ 18 ② 在 .mcp.json 所在目录启动 Claude Code ③ 确认 pnpm build 已执行
端口冲突 EADDRINUSE 不要同时手动启动 Bridge 和 Claude Code。查找占用进程:lsof -i :37849(macOS/Linux)或 netstat -ano | findstr :37849(Windows)

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选