使用说明
Figma MCP服务器
最小本地MCP(模型上下文协议)服务器,通过stdio向LLM客户端公开一些与Figma相关的工具(例如Claude Desktop、Cursor)。它可以列出项目/文件,获取文件JSON(或节点),并从Figma框架生成一个简单的React+Vite前端。
快速摘要
- 通过stdio公开4个工具:
- list_projects--列出Figma团队的项目
- list_project_files——Figma项目中的列表文件
- get_file--获取完整文件JSON或指定节点
- generate_front——从Figma框架生成简单的React+Vite文件
- 使用@modelcontextprotocol/sdk和Zod构建模式。
- 旨在由通过stdio使用MCP的LLM客户端启动。
先决条件
- Node.js 18+(本机获取)
- npm
- Figma个人访问令牌(可选用于发现;访问Figma的调用需要)
- Claude Desktop/另一个支持MCP的客户端来生成进程
安装
从项目根:
npm install
可选择创建 .env:
FIGMA_TOKEN=your_figma_personal_access_token
运行(手动)
- Windows cmd:
set FIGMA_TOKEN=your_token
node server.js
- PowerShell:
$env:FIGMA_TOKEN = "your_token"
node server.js
注意:该过程将打开stdio传输并等待LLM客户端连接;它不公开HTTP端口。
配置克劳德桌面(stdio传输)
- 在Claude Desktop中添加新的MCP服务器条目。
- 程序/命令:
node - 论据:
["C:\\Users\\PawarMrHimanshuMahes\\Desktop\\Projects\\Figma_MCP\\server.js"] - 工作目录:
C:\Users\PawarMrHimanshuMahes\Desktop\Projects\Figma_MCP - 确保客户端生成进程(stdio)。如果工具未出现:
- 跑
node server.js手动验证流程是否保持运行并且不会立即发出错误。 - 确认节点>=18。
- 确认路径/args正确,并在connect()之前注册工具。
- 跑
工具参考
-
list_项目
- 输入:{team_id:string,token?:string}
- 输出:{项目:〔{id:string,名称:string,last_modified?:string}〕}
-
list_project_files
- 输入:{project_id:字符串,令牌?:字符串}
- 输出:{文件:〔{id:string,名称:string,thumbnailUrl?:string}〕}
-
获取文件
- 输入:{file_id:string,node_ids?:string[],token?:string}
- 输出:{file:any}-完整的Figma文件JSON或节点响应
-
generate_front
- 输入:{file_id:字符串,node_id?:字符串,token?:字符串、framework?:“react”|“html”}
- 输出:{files:记录<string,string>}--生成的文件名→ 内容
处理程序同时返回以下两个值:
- content:LLM视图的文本块
- 结构化内容:客户端UI的验证数据
stdio/MCP握手是如何工作的(高级)
- 客户端启动
node server.js并打开stdio管道。 - 服务器实例化McpServer,注册工具(使用Zod模式),然后调用
server.connect(transport). - 客户端发送初始化;服务器使用名称/版本和工具元数据进行应答。
- 客户电话
tools/list发现工具(从Zod模式序列化)。 - 当调用工具时(
tools/call),SDK验证输入,运行处理程序,并返回内容+结构化内容。
重要提示:调用前注册工具 server.connect() 所以发现是有效的。
故障排除
- 客户端“无工具”:
- 确保输入/输出模式是Zod对象(z.object(…))——格式错误的模式会破坏发现。
- 确认registerTool调用在之前运行
server.connect. - 跑
node server.js手动捕获启动错误。
- 图API错误:
- 确保
FIGMA_TOKEN有效且已传递(env或每次调用)。 - 检查Figma速率限制和错误有效载荷。
- 确保
- 节点问题:
- 使用节点18+,以便获取可用;该项目是ESM(
"type":"module"在package.json中)。
- 使用节点18+,以便获取可用;该项目是ESM(
开发说明
- 密钥生成器助手位于
server.js:- figmaFetch、颜色工具、findFrameNode、nodeToJsx、traverseAndGenerate、reactAppFromFrame、从FigmaFile生成文件。
- 为了提高保真度:
- 扩展nodeToJsx以支持更多Figma节点类型、字体和布局行为。
- 为处理程序入口/出口和Figma响应添加日志记录(控制台或记录器)。
- 要在本地进行测试:通过支持MCP的客户端调用工具,或临时添加一个直接调用处理程序的CLI/测试工具。
运行生成的前端
- generate_front返回文件(App.jsx、index.html、package.json等)。
- 要运行生成的React应用程序:
- 将文件保存到新目录,运行
npm install然后npm run dev(快)。 - 打开开发URL(通常http://localhost:5173).
- 将文件保存到新目录,运行
感兴趣的文件
- server.js——MCP服务器+工具实现和Figma助手
- package.json与package-lock.json的依赖关系
- readme.md--此文档
许可证
麻省理工学院