figma飞行员mcp
](https://github.com/chicunic/figma-pilot-mcp)  ](https://bun.sh/)
一个MCP服务器,使AI能够完全控制Figma——轻松读取、创建和修改设计。
特性
- 全Figma控制:创建、读取、修改和删除设计元素
- WebSocket通信:MCP服务器和Figma插件之间的实时双向通信
- 批量操作:使用结果引用按顺序执行多个命令
- 灵活部署:运行一体化,或将MCP和WebSocket拆分为单独的进程
先决条件
入门指南
- 安装依赖项并构建插件:
bunx figma-pilot init- 将插件导入Figma桌面:
- 插件 → 发展 → 从清单导入插件。.. - 选择 dist/plugin/manifest.json 在此项目文件夹中
- 配置您的AI代理 (参见 在......下面)
- 运行插件并连接:
- 在中打开设计文件 设计模式,跑 插件 → 发展 → Figma飞行员MCP - 插件UI显示频道名称(例如。, figma-pilot-abc123) - 在您的AI代理中,使用 pilot_connect 带有频道名称
配置您的AI代理
模式1:一体式(推荐)
graph LR
A[AI Agent] B[MCP + WS Server] C[Figma Plugin]{
"mcpServers": {
"figma-pilot": {
"command": "bunx",
"args": ["figma-pilot", "start"]
}
}
}模式2:独立的WS+MCP(多代理)
graph LR
A[AI Agent A] C[MCP only]
B[AI Agent B] D[MCP only]
C E[WS Server]
D E
E F[Figma Plugin]- 启动WebSocket服务器:
bunx figma-pilot start --mode=ws- 配置AI代理:
{
"mcpServers": {
"figma-pilot": {
"command": "bunx",
"args": ["figma-pilot", "start", "--mode=mcp"]
}
}
}参考
模式摘要
|模式|CLI|MCP|WS服务器|WS客户端|用例| | - | - | - | - | - | - | | all | --mode=all |是|是|否|单一代理| | mcp | --mode=mcp |是|否|是|多代理/远程WS| | ws | --mode=ws |否|是|否|独立继电器|
命令行命令
|命令|描述| | - | - | | bunx figma-pilot init |安装依赖项并构建插件| | bunx figma-pilot build |重建Figma插件| | bunx figma-pilot start |启动服务器(默认:一体化模式)| | bunx figma-pilot doctor |运行诊断检查|
配置
|变量|默认值|描述| | - | - | - | | FIGMA_WS_PORT | 3846 |WebSocket端口| | FIGMA_WS_HOST | localhost |WebSocket主机| | FIGMA_REQUEST_TIMEOUT | 30000 |请求超时(ms)| | FIGMA_PILOT_MODE | write-only |刀具模式: write-only / read-write | | FIGMA_RUN_MODE | all |运行模式: all / mcp / ws |
可用工具
连接
|工具|说明| | - | - | | pilot_connect |通过WebSocket连接到Figma插件| | pilot_disconnect |断开与Figma插件的连接| | pilot_status |获取WebSocket连接状态|
创造
|工具|说明| | - | - | | pilot_create_shape |创建形状(框架/矩形/椭圆/多边形/星形/直线/矢量)| | pilot_create_text |创建文本节点| | pilot_create_component |创建空组件| | pilot_create_component_from_node |将节点转换为组件| | pilot_create_instance |创建组件实例| | pilot_create_page |创建新页面| | pilot_create_section |创建部分| | pilot_create_slice |创建导出切片| | pilot_create_from_svg |从SVG字符串创建节点| | pilot_create_image |从base64或URL创建图像(带可选过滤器)| | pilot_create_table |创建表格(FigJam)| | pilot_create_sticky |创建FigJam便利贴| | pilot_create_connector |在节点之间创建FigJam连接器| | pilot_create_shape_with_text |使用文本创建FigJam形状| | pilot_create_node_tree |在一次调用中创建嵌套节点树|
文本
|工具|说明| | - | - | | pilot_set_text |设置文本属性(内容/字体/颜色/间距/对齐)\[批\]|
修改
|工具|说明| | - | - | | pilot_set_fill |设置填充:纯色或渐变\[批次\]| | pilot_set_stroke |设置笔划:纯色或渐变\[批次\]| | pilot_set_corners |设置角半径(统一或单独)\[批次\]| | pilot_move_node |将节点移动到位置| | pilot_resize_node |调整节点大小\[BATCH\]| | pilot_set_rotation |设置旋转\[批次\]| | pilot_set_opacity |设置不透明度\[批次\]| | pilot_set_blend_mode |设置混合模式\[批次\]| | pilot_set_visible |设置可见性\[批次\]| | pilot_set_locked |设置锁定状态\[批次\]| | pilot_set_name |设置节点名称| | pilot_set_effect |添加阴影/模糊或清晰效果\[批处理\]| | pilot_set_auto_layout |在框架上设置自动布局\[BATCH\]| | pilot_set_constraints |设置约束\[批次\]| | pilot_delete_node |删除节点\[BATCH\]| | pilot_clone_node |克隆节点| | pilot_group_nodes |组节点| | pilot_ungroup_node |取消分组节点| | pilot_flatten_nodes |展平为单矢量| | pilot_boolean |布尔运算(UNION/SUBTRACT/INTERSECT/EXCLUDE)| | pilot_set_current_page |设置当前页面| | pilot_set_viewport |设置视口中心/缩放| | pilot_scroll_to_node |滚动到节点| | pilot_set_selection |设置选择| | pilot_notify |显示通知| | pilot_set_image_fill |在节点上设置图像填充(hash/base64/URL)| | pilot_set_image_filters |在现有的图像填充\[批次\]上设置过滤器|
布局
|工具|说明| | - | - | | pilot_set_layout_child |为布局子项\[BATCH\]设置大小/对齐/定位| | pilot_set_layout_wrap |设置布局环绕模式| | pilot_set_clips_content |设置帧剪辑内容\[批\]| | pilot_set_overflow |设置溢出方向\[批次\]| | pilot_set_guides |在框架/页面上设置指南|
节点层次结构
|工具|说明| | - | - | | pilot_move_child |在父级中附加/插入/重新排序子级|
实例操作
|工具|说明| | - | - | | pilot_detach_instance |从组件中分离实例| | pilot_reset_overrides |重置实例覆盖| | pilot_swap_component |将实例交换到不同的组件|
风格
|工具|说明| | - | - | | pilot_create_style |创建绘画/文字/效果/网格样式| | pilot_apply_style |将样式应用于节点| | pilot_move_style |在列表中重新排序样式|
变量和属性
|工具|说明| | - | - | | pilot_create_variable_collection |创建变量集合| | pilot_create_variable |创建变量| | pilot_set_variable_value |为模式设置变量值| | pilot_create_variable_alias |创建变量别名| | pilot_bind_variable |将变量绑定到属性/绘制/效果/网格| | pilot_set_component_properties |设置实例属性|
团队库
|工具|说明| | - | - | | pilot_import_library |从库中导入组件/样式/变量| | pilot_import_style_by_key |按关键字导入样式| | pilot_import_variable_by_key |按键导入变量|
出口和原型
|工具|说明| | - | - | | pilot_set_export_settings |设置导出设置| | pilot_set_reactions |设置原型反应|
阅读
|工具|说明| | - | - | | pilot_get_node |按ID获取节点信息(包括localPosition)| | pilot_get_selection |获取当前选择| | pilot_find_nodes |按类型/名称模式查找节点| | pilot_get_children |获取节点的子节点| | pilot_get_top_frame |获取包含节点的顶级框架| | pilot_get_current_page |获取当前页面信息| | pilot_get_pages |获取所有页面| | pilot_get_local_styles |获取当地风格| | pilot_get_local_components |获取本地组件| | pilot_get_local_variables |获取局部变量| | pilot_get_variable_collections |获取变量集合| | pilot_get_viewport |获取当前视口| | pilot_export_node |将节点导出为PNG/JPG/SVG/PDF| | pilot_get_component_properties |获取组件/实例属性| | pilot_get_export_settings |获取节点的导出设置| | pilot_get_reactions |获取节点的原型反应| | pilot_get_library_variable_collections |获取库变量集合| | pilot_get_library_variables |按集合获取库变量| | pilot_get_component_set_variants |获取库组件集的变体| | pilot_get_image |通过哈希获取图像信息/字节| | pilot_list_available_fonts |列出可用字体(带搜索)| | pilot_get_selection_colors |从选择中获取颜色| | pilot_parse_color |将颜色字符串解析为RGB/RGBA| | pilot_get_event_subscriptions |获取事件订阅状态|
活动和实用程序
|工具|说明| | - | - | | pilot_event |订阅/取消订阅活动| | pilot_create_solid_paint |创建实体绘制对象| | pilot_combine_as_variants |将组件组合为变体|
批次
|工具|说明| | - | - | | pilot_batch |按顺序执行多个命令|
许可证
麻省理工学院
