分享一个用于 Cocos Creator 的 MCP 桥接插件

mark~标记一下

佬,啥时候支持一下3.x~~~

3.x已经有开源的mcp了,暂时应该不会支持

预制体全生命周期编辑与状态流转修复 (2026-03-08)

1. save_prefabclose_prefab 原生化改造

  • 问题: AI 尝试从 McpTestPrefab.prefab 等文件中通过 scene:save-prefabscene:close-prefab 保存并退出预制体模式时,报错找不到事件。分析源码发现,这些直觉上的 IPC 消息实际上并不存在,导致一旦用 open_prefab 进入隔离的编辑空间后,无法正确将修改落盘,且无法安全退出返回原大场景。
  • 修复:
    1. 直接调用内部 API: 完全废弃尝试通过常规 IPC 发送伪装指令的想法。在 scene-script.js 内部直接 require("scene://edit-mode"),获取到负责管理场景所有状态机(如大场景模式、预制体模式、动画编辑模式)的核心模块。
    2. 真实状态机驱动:
      • 对于 save_prefab,直接调用无参的 editMode.save()。这100%等同于人工点击编辑器左上角的“保存”按钮。也因此移除了多余的 rootNodeId 参数限制。
      • 对于 close_prefab,直接调用 editMode.pop()。彻底将当前编辑的预制体上下文从堆栈中弹出,干净利落地回落回原始场景,并自动更新引擎各面板 (Inspector、层级管理器等) 状态。
  • 意义: 到目前为止,涵盖创建 (create_prefab) -> 打开 (open_prefab) -> 修改 -> (可选)保存 (save_prefab) -> 退出 (close_prefab) 的完整大模型端到端自动化预制体流水线被彻底打通。没有任何妥协,一切就像是有一个看不见的高手坐在引擎主控面板前帮你点按按钮。

6666标记一下!!

终极嵌套资源创建修复 (V8 Atomic Cascade Import) (2026-03-13)

1.根除微秒级fs目录竞态引发的 UUID 碰撞

  • *问题*:在用 MCP 创建包含多级未注册目录深度的子资源资产(如 、manage_texture、 创建含
    、SpriteFrame的图片)时,Editor.assetdb.create无跨级建目录能力且伴随异步崩溃。早期替代方案 (V6) 使用 Node、fs.mkdirSync、预建物理文件夹,但不可避免地与底层 DB Watcher 监视器发生微秒级竞态,导致 UUID 互相倾轧爆错,资产被抛弃退化为根目录孤儿节点。
  • *修复*:彻底抛弃物理空间直接侵入式的节点创建。设计了终极的 V8"原子级联导入"体系 (Atomic Cascade Import’):
    1.通过向上迭代查询,精确找出当前 AssetDB 内部真实且已有的最底端锚点文件夹。
    2.巧妙使用操作系统级垃圾区、os.tmpdir()、建立起与 Cocos Watcher 彻底隔离的沙盒。在这个沙盒内放肆地 1:1 建立缺失的长效目录树及写入资源本体。
    3.通过Editor.assetdb.import、 这个原生且专用于"处理纯外部未处理拖拽"的超级接口,将包含资源本体的微型假树完整、一次性原子化导入至定好锚点的真实路径下。引擎的任务管线会自然屏蔽掉内部过程并生成所有附带的UUID 与、subMetas`。
  • ***效果*:实现对包含材质、Shader、贴图和预制体的极深级并发跨层级矩阵测试,**100% 免疫竞态引发的任何错误和冲突*。至此,"UUID Collision"与is not
    exists"的历史遗留疑难杂症彻底清盘。

大佬,我用的trae,怎么感觉没有连接上

你现在的配置文件是啥样子的

大佬牛逼 膜拜

不好意思, 太菜了, 完全不知道要怎么配置并生效, 和怎么使用

VS code

你都用ai了 你把文档给ai 让ai给你配就好 :grinning: 感觉你都思维定势了

发现一个问题 不能修改节点的显影 AI修改如下 修复后正常
update-node-transform 没有处理 active 参数,需要加上。
if (args.active !== undefined) {
node.active = !!args.active;
}

完整如下

● Update(packages\mcp-bridge\src\scene-script.js)
⎿ Added 3 lines
198 if (args.skewY !== undefined) {
199 node.skewY = Number(args.skewY);
200 }
201 + if (args.active !== undefined) {
202 + node.active = !!args.active;
203 + }
204
205 Editor.Ipc.sendToMain(“scene:dirty”);
206 Editor.Ipc.sendToAll(“scene:node-changed”, { uuid: id });

● 插件代码改好了,但 Cocos 编辑器需要重新加载插件才能生效。你在编辑器里执行一下:

你是直接使用的Github Copilot?还是vscode里面其他的AI插件,比如Cline

cursor的找到了,但是vscode里不知道应该放哪里,比如通义灵码或者Trae

找到了,应该是这样的, 随便测试一个工具也可以使用了

有个小问题,使用create_scene工具时填具体的场景名反而创建不出来,只能放空{}然后会创建出一个undefined的场景出来

我这是这样说的


大哥,怎么用?我也配置对了。效果不理想

这个是我测试用的工具很久没更新了,你自己要创建的时候让AI来帮你操作就好了