本项目实现了Cursor AI与Figma之间的模型上下文协议(MCP)集成,使Cursor能够通过编程方式读取Figma设计并进行修改。
https://github.com/user-attachments/assets/129a14d2-ed73-470f-9a4c-2240b2a4885c
src/talk_to_figma_mcp/
- 用于Figma集成的TypeScript MCP服务器src/cursor_mcp_plugin/
- 用于与Cursor通信的Figma插件src/socket.ts
- 促进MCP服务器与Figma插件之间通信的WebSocket服务器curl -fsSL https://bun.sh/install | bash
bun setup
bun socket
bunx cursor-talk-to-figma-mcp
批量文本内容替换
感谢@dusskapark贡献的批量文本替换功能。这里是演示视频。
实例覆盖属性传播
另一个来自@dusskapark的贡献
通过单个命令将组件实例的覆盖属性从一个源实例传播到多个目标实例。此功能在使用需要类似自定义的组件实例时,可以大幅减少重复的设计工作。查看我们的演示视频。
将服务器添加到~/.cursor/mcp.json
中的Cursor MCP配置:
{
"mcpServers": {
"TalkToFigma": {
"command": "bunx",
"args": ["cursor-talk-to-figma-mcp@latest"]
}
}
}

启动WebSocket服务器:
bun socket
src/cursor_mcp_plugin/manifest.json
文件powershell -c "irm bun.sh/install.ps1|iex"

src/socket.ts
中主机名0.0.0.0
的注释// 取消注释以允许Windows WSL中的连接
hostname: "0.0.0.0",

bun socket
join_channel
加入频道将插件连接到WebSocket服务器MCP服务器提供以下与Figma交互的工具:
get_document_info
- 获取当前Figma文档的信息get_selection
- 获取当前选择的信息read_my_design
- 无参数获取当前选择的详细节点信息get_node_info
- 获取特定节点的详细信息get_nodes_info
- 通过提供节点ID数组获取多个节点的详细信息get_annotations
- 获取当前文档或特定节点中的所有注释set_annotation
- 创建或更新带有Markdown支持的注释set_multiple_annotations
- 批量高效创建/更新多个注释scan_nodes_by_types
- 扫描具有特定类型的节点(用于查找注释目标很有用)get_reactions
- 获取节点的所有原型反应,并带有视觉高亮动画set_default_connector
- 将复制的FigJam连接器设置为创建连接的默认连接器样式(必须在创建连接之前设置)create_connections
- 基于原型流程或自定义映射在节点之间创建FigJam连接器线条create_rectangle
- 创建具有位置、大小和可选名称的新矩形create_frame
- 创建具有位置、大小和可选名称的新框架create_text
- 创建具有可定制字体属性的新文本节点scan_text_nodes
- 使用智能分块扫描文本节点,适用于大型设计set_text_content
- 设置单个文本节点的文本内容set_multiple_text_contents
- 批量高效更新多个文本节点set_layout_mode
- 设置框架的布局模式和换行行为(NONE、HORIZONTAL、VERTICAL)set_padding
- 为自动布局框架设置内边距值(上、右、下、左)set_axis_align
- 设置自动布局框架的主轴和对齐轴对齐方式set_layout_sizing
- 设置自动布局框架的水平和垂直尺寸模式(FIXED、HUG、FILL)set_item_spacing
- 设置自动布局框架中子项之间的距离set_fill_color
- 设置节点的填充颜色(RGBA)set_stroke_color
- 设置节点的描边颜色和粗细set_corner_radius
- 设置节点的圆角半径,可选择每个角的单独控制move_node
- 将节点移动到新位置resize_node
- 使用新尺寸调整节点大小delete_node
- 删除节点delete_multiple_nodes
- 高效地一次性删除多个节点clone_node
- 创建现有节点的副本,可选择位置偏移get_styles
- 获取本地样式的信息get_local_components
- 获取本地组件的信息create_component_instance
- 创建组件实例get_instance_overrides
- 从选定的组件实例中提取覆盖属性set_instance_overrides
- 将提取的覆盖应用到目标实例export_node_as_image
- 将节点导出为图像(PNG、JPG、SVG或PDF)- 目前图像仅支持以base64文本形式返回join_channel
- 加入特定频道以与Figma通信MCP服务器包含几个帮助提示,指导您完成复杂的设计任务:
design_strategy
- 使用Figma设计的最佳实践read_design_strategy
- 阅读Figma设计的最佳实践text_replacement_strategy
- 在Figma设计中替换文本的系统方法annotation_conversion_strategy
- 将手动注释转换为Figma原生注释的策略swap_overrides_instances
- 在Figma中组件实例之间转移覆盖的策略reaction_to_connector_strategy
- 使用'get_reactions'的输出将Figma原型反应转换为连接器线条的策略,并指导按顺序使用'create_connections'导航到Figma插件目录:
cd src/cursor_mcp_plugin
编辑code.js和ui.html
使用Figma MCP时:
get_document_info
获取文档概览get_selection
检查当前选择create_frame
用于容器create_rectangle
用于基本形状create_text
用于文本元素get_node_info
验证更改scan_text_nodes
中使用分块参数scan_nodes_by_types
查找注释所指的UI元素get_annotations
适当分类注释set_multiple_annotations
批量创建原生注释get_reactions
提取原型流程,set_default_connector
设置默认连接器,create_connections
生成连接器线条以进行清晰的视觉流程映射。MIT