通过 MCP (Model Context Protocol) 或 CLI,让 AI 编程 Agent(如 Cursor、Claude、Codex、VS Code 等)以结构化指令直接操作 FairyGUI Editor,实现自动拼 UI 界面、动效制作与一键发布。
v0.8.8 · 队列协议 1.0 · 已验证 FairyGUI Editor 6.1.4 · 本地 JSON 队列 + MCP stdio
说明:Bridge 仓库与业务 FairyGUI 工程分开存放。FairyGUI 工程只需安装轻量插件;在宿主 IDE 中可按需安装 Skill 提高 AI 操作准确率。
graph LR
Agent["AI Agent / IDE<br>(Cursor / Claude / Codex / VSCode)"]
-->|MCP stdio| Bridge["FairyGUI Agent Bridge<br>(Python CLI / MCP Server)"]
Bridge -->|读写 .agent/ 队列| Plugin["Editor 插件<br>(plugins/agent-bridge)"]
Plugin -->|FairyGUI API| Editor["FairyGUI Editor<br>(运行中的 UI 工程)"]
安装完成后,在支持 MCP / Skill 的 AI 对话框中直接输入类似以下指令:
帮我制作一个登录界面,包含账号输入框、密码输入框和登录按钮根据蓝湖 MCP 导出的切图帮我拼出这个背包界面帮我给 MainMenu 界面的 StartBtn 添加一个弹出的缩放动画效果
若安装了 Skill,也可以通过
/fgui-agent-bridge 帮我制作一个登录界面精准触发。
- Python
3.10+ - uv 包管理器
- FairyGUI Editor(推荐
6.1.4)
将下面的提示词发送给能够操作本地终端和文件的 AI 编程 Agent(如 Cursor、Claude Code、Codex 等):
请帮我在这台电脑上完整安装 FairyGUI Agent Bridge。你可以执行终端命令和编辑本地文件,请实际完成安装,不要只给操作说明。
源仓库:https://github.com/Wilson520403/fgui-agent-bridge.git
目标 FairyGUI 工程:优先从当前工作区自动查找 .fairy 文件;找不到或找到多个时停下来询问我。
目标代码仓库:当前工作区;
git clone https://github.com/Wilson520403/fgui-agent-bridge.git
cd fgui-agent-bridge
uv sync --frozen运行同步脚本,在弹出的窗口中选择你的 FairyGUI 工程目录:
uv run python scripts/sync_to_project.py --choose-project --apply也可以直接通过命令行指定路径安装:
uv run python scripts/sync_to_project.py \
--project /ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT \
--apply注意:
- 插件将安装到目标工程的
plugins/agent-bridge/。- 安装完成后,请重新打开 FairyGUI 工程以加载插件。
- 插件运行时目录
.agent/会在工程内自动创建,请将其加入.gitignore,不要提交到 Git。
你可以根据所使用的 AI 客户端添加 MCP 配置。通用配置格式如下(可参考 .mcp.example.json):
{
"mcpServers": {
"fgui": {
"command": "uv",
"args": [
"run",
"--project",
"/ABSOLUTE/PATH/TO/fgui-agent-bridge",
"fgui-agent-mcp"
],
"env": {
"FGUI_PROJECT_PATH": "/ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT"
}
}
}
}常见客户端配置入口:
- Cursor:在
~/.cursor/mcp.json或项目根目录.cursor/mcp.json中粘贴上述配置。 - Claude Desktop:编辑
claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\)。 - Codex CLI:
codex mcp add fgui \ --env FGUI_PROJECT_PATH=/ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT \ -- uv run --project /ABSOLUTE/PATH/TO/fgui-agent-bridge fgui-agent-mcp
- VS Code (Cline / Roo Code):在扩展的 MCP Settings 中添加名为
fgui的 stdio 服务。
启动 FairyGUI Editor 并打开目标工程,然后执行:
uv run --project /ABSOLUTE/PATH/TO/fgui-agent-bridge \
fgui-agent --project /ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT ping若返回 {"status": "ok", ...} 则表明连接成功。
Skill 可以让 AI 更好地遵循 FairyGUI 的属性规范与动画约定。使用同步脚本可一键将 Skill 同步至目标业务代码仓库:
uv run python scripts/sync_to_project.py \
--project /ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT \
--skill-root /ABSOLUTE/PATH/TO/YOUR-CODE-REPOSITORY \
--apply或手动将 .agents/skills/fgui-agent-bridge/ 目录复制到目标代码仓库的 .agents/skills/ 目录下。
一条命令即可从源仓库安全拉取最新代码(git pull --ff-only)、同步 Python 环境(uv sync),并将最新插件与 Skill 刷新到目标工程:
# 从源仓库拉取最新代码并同步到 FairyGUI 工程与业务代码仓库
uv run python scripts/sync_to_project.py \
--pull \
--project /ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT \
--skill-root /ABSOLUTE/PATH/TO/YOUR-CODE-REPOSITORY \
--apply
# 或通过 CLI update 子命令执行
uv run fgui-agent --project /ABSOLUTE/PATH/TO/FAIRYGUI-PROJECT update --pull --apply提示:
- 也可以直接对 AI Agent 说
“/fgui-agent-bridge 帮我更新”。fgui_status会自动比对 Bridge 服务端与编辑器内插件版本,不一致时返回updateWarning。- 若插件文件被更新,请重新打开 FairyGUI 工程加载新版插件;只有当 Bridge 仓库路径或启动命令变更时才需更新 MCP 配置。
在 fgui-agent-bridge 仓库根目录下执行(也可以通过 --project PATH 指定工程):
# 状态与连接检查
uv run fgui-agent status
uv run fgui-agent ping
# 查看工程与资源结构
uv run fgui-agent packages
uv run fgui-agent tree
# 保存与发布
uv run fgui-agent save
uv run fgui-agent publish --scope active更多命令与参数见 uv run fgui-agent --help。
| 类别 | 工具名称 | 功能描述 |
|---|---|---|
| 连接与定位 | fgui_status、fgui_ping、fgui_use_project、fgui_get_project、fgui_list_packages、fgui_list_items |
检查连接状态、动态切换工程、查看包列表与包内资源 |
| 文档与对象 | fgui_open_document、fgui_get_active_document、fgui_get_tree、fgui_select_object、fgui_insert_object、fgui_set_property、fgui_remove_object |
打开组件、查看对象树、选中元件、修改属性及增删显示对象 |
| 资源创建/导入 | fgui_create_component、fgui_create_button、fgui_import_image、fgui_import_font、fgui_import_sound |
新建组件/按钮,从本地绝对路径导入图片、字体与声音 |
| MovieClip 序列帧 | fgui_create_movieclip、fgui_get_movieclip、fgui_update_movieclip、fgui_remove_movieclip |
从本地图片序列创建/更新序列帧动画(直接嵌入 .jta) |
| Transition 动效 | fgui_list_transitions、fgui_get_transition、fgui_upsert_transition、fgui_remove_transition、fgui_add_transition_item、fgui_update_transition_item、fgui_remove_transition_item |
声明式增改整段过渡动效,或原子化修改特定轨道关键帧 |
| 动画预览 | fgui_preview_animation |
在编辑器中实时播放、暂停、停止、跳帧预览 Transition 或 MovieClip |
| 保存与事务 | fgui_get_history、fgui_undo、fgui_redo、fgui_save_document、fgui_save_all、fgui_discard_document |
属性与操作撤销/重做、保存文档或放弃全部未保存修改 |
| 验证与资源引用 | fgui_verify_document、fgui_replace_object_resource、fgui_get_text_style、fgui_set_text_style |
比对预期属性或整个对象树(expected.children 递归比对)、替换 Image/Loader 资源引用、读写文本样式 |
| 布局与控制器 | fgui_set_list_layout、fgui_set_group_layout、fgui_set_relation、fgui_set_gear_display、fgui_list_controllers、fgui_set_controller |
修改 List/Group 布局字段、整体替换 Relation 绑定、设置 gearDisplay 联动、增删改组件 Controller |
| 发布 | fgui_get_publish_settings、fgui_publish |
查询发布设置、执行资源发布(支持活动包/指定包/全部包) |
- Transition 动效:覆盖全部原生轨道,时间单位为帧,支持声明式整段更新与关键帧原子修改,均可撤销/重做。
- MovieClip 序列帧:从有序本地图片序列直接嵌入
.jta,不会在包内产生散图ui://资源。 - 大图独立图集:达到
1920×1080或任一边达到2048的图片自动标记为alone纹理集,发布时自动纠正历史大图配置。 - 写操作验证:写操作支持保存后磁盘 XML 比对,以及「关闭重开再比对」的强持久化验证。
- 对象树比对:
fgui_verify_document的expected可携带递归childrenspec,逐层比对名称、类型和关键属性;childrenMode支持exact(按位置全等)与subset(按 id/name/index 定位、允许多余节点),磁盘比对覆盖当前组件 XML 序列化范围。 - 布局与联动(0.8.8):List/Group 布局字段经类型化校验写入(对象模型未暴露的属性回退
GetProperty/SetProperty);fgui_set_relation为整体替换语义;fgui_set_gear_display的pages接受页面 id 或名称;fgui_set_controller的pages整体替换会重新分配页面 id。五个写 Action 沿用save/verify/external_reload验证梯子,序列化缺省的枚举属性计入verification.xmlSkippedKeys,不虚报验证覆盖。
| 异常现象 | 可能原因 | 解决办法 |
|---|---|---|
ping 提示超时或未连接 |
1. FairyGUI Editor 未启动 2. 目标工程未打开 3. 插件未安装或未生效 |
1. 打开 FairyGUI Editor 并加载目标工程; 2. 检查工程下 plugins/agent-bridge/main.js 是否存在;3. 重新打开 FairyGUI 工程以重新加载插件; 4. 查看工程根目录 .agent/bridge.log。 |
| MCP 客户端找不到工具 | 1. MCP 配置中的绝对路径填写错误 2. 客户端未重启会话 |
1. 检查 MCP 配置文件中的 fgui-agent-bridge 和工程绝对路径;2. 新建 Agent 对话或重启 IDE 重新加载 MCP。 |
| 导入资源失败 | 传入了相对路径或文件不存在 | 确保传入的图片/音频路径为本地绝对路径。 |
| 发布操作阻塞超时 | 发布正在进行中或发生了并发请求 | 发布期间部分读写操作会被锁定,请勿并发调用发布;等待完成后检查发布日志。 |
- 兼容基线:以 FairyGUI Editor
6.1.4为主要验证版本。 - 动画类型:专注于 FairyGUI 原生 Transition 与 MovieClip,不支持 Spine、DragonBones、Loader3D、SWF 等第三方动画格式。
- 资源管理边界:暂不支持通用包内资源的任意重命名与跨包移动;MovieClip 删除需带引用校验与
force=true。 - 平台环境:macOS 已做完整端到端验证;Windows 建议在标准命令提示符/PowerShell 下验证路径格式。
- 插件 TypeScript 源码:
plugin/main.ts - 插件运行时编译文件:
plugin/main.js - Python MCP & CLI:
src/fairygui_agent/ - Agent Skill:
.agents/skills/fgui-agent-bridge/ - 同步脚本:
scripts/sync_to_project.py
维护注意:修改
plugin/main.ts后必须重新生成并提交plugin/main.js;版本升级需同步修改plugin/package.json、pyproject.toml、Python__version__以及插件源码版本号。
- 蓝湖 MCP (lanhu-mcp):配合本工具,可以让 AI 编程 Agent 自动从蓝湖设计稿下载切图、导出标注,并直接在 FairyGUI 中拼装好 UI 界面并发布。