Token导航 LogoToken导航TokenDH.com
Cocos Creator MCP logo
运维云端未说明官方级别未说明来源级核验

Cocos Creator MCP

MCP Server

Cocos Creator MCP是一个为Cocos Creator 3.8+设计的编辑器扩展,通过AI助手(如Claude)实现编辑器自动化控制,包括场景编辑、节点管理、资源操作等功能。

工具数

164

提示词数

0

GitHub Stars

24

资源数

0
TypeScriptClaude云端部署ClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

harady

提供方

harady

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Cocos创建者MCP

MCP(模型上下文协议) Cocos Creator 3.8+的服务器扩展。

像Claude这样的人工智能助手可以通过这个扩展来控制Cocos Creator编辑器——创建节点、编辑场景、管理预制件、构建项目等等。

特性

  • 164工具 跨越13个类别——全面的编辑器自动化
  • 流式HTTP(SSE) --原生支持MCP的流式HTTP传输
  • JSON-RPC 2.0 --符合标准MCP协议
  • 预制性能持久性 --保存预制件时,组件属性得到正确保留
  • 在编辑器中预览 --以编程方式启动编辑器预览(无需手动点击按钮)
  • 电脑屏幕截图工具 --捕获编辑器窗口和游戏预览屏幕截图(WebP/PNG)
  • 视频录制 --通过预览录制器面板将游戏预览画布录制为视频(MP4/WebM)
  • 游戏命令控制 --发送命令以运行游戏预览(截图、点击、导航、状态、检查)
  • 客户端脚本 --插入TypeScript文件以集成游戏预览(client/)
  • 自动启动 --当扩展加载时,服务器会自动启动
  • 工具调用记录 --所有工具调用都记录了调试时间
  • UUID验证 --输入验证助手以获得更好的错误消息
  • 国际化 --英语、日语、中文
  • 回归测试 --涵盖核心工具流的200多个断言

快速开始

1.安装

将此扩展复制或符号链接到您的Cocos Creator项目中 extensions/ 目录:

# Windows (Junction — no admin required)
mklink /J "your-project\extensions\cocos-creator-mcp" "path\to\cocos-creator-mcp"

# macOS / Linux
ln -s /path/to/cocos-creator-mcp your-project/extensions/cocos-creator-mcp

2.建造

cd cocos-creator-mcp
npm install
npm run build

3.在Cocos Creator中启用

  1. 在Cocos Creator中打开您的项目
  2. 首选 扩展>扩展管理器
  3. 启用 Cocos创建者MCP
  4. 打开面板: 扩展>Cocos Creator MCP>打开面板
  5. 点击 启动服务器 (或设置 autoStart: true 在配置中)

4.从克劳德代码连接

从下面两种运输方式中选择一种。

选项A--stdio桥(建议用于Claude Code VSCode扩展)

Claude Code VSCode扩展目前有一个错误,它无条件地 尝试为HTTP类型的MCP服务器进行OAuth动态客户端注册,但失败 和 SDK auth failed (见上游问题 #26917, #38102, #29697). 为了完全避免这种情况,请使用捆绑的stdio网桥。它在上讲JSON-RPC stdin/stdout并在内部转发到HTTP服务器。

{
  "mcpServers": {
    "cocos-creator-mcp": {
      "command": "node",
      "args": [
        "/cocos-creator-mcp/client/stdio-bridge.js"
      ]
    }
  }
}

可选环境变量: COCOS_MCP_URL (默认值 http://127.0.0.1:3000/mcp).

选项B——直接HTTP

适用于Claude Code CLI、Cursor、Cline和其他不强制执行的客户端 HTTP MCP上的OAuth。服务器提供最少的虚拟OAuth端点 (/.well-known/oauth-*, /oauth/register|authorize|token)因此OAuth要求 客户端仍然可以在本地主机上完成形式流。

{
  "mcpServers": {
    "cocos-creator-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}
一旦上游问题出现,虚拟OAuth端点将被删除 (#26917, #38102) 或者引入真正的身份验证。

5.验证

curl http://127.0.0.1:3000/health
# {"status":"ok","tools":164}

可用工具(164)

Scene (6) — Scene lifecycle and hierarchy

工具说明
scene_get_hierarchy获取节点树(包含可选组件信息)
scene_open通过UUID或db://path打开场景
scene_save保存当前场景
scene_get_list列出所有.scene文件
scene_close关闭当前场景
scene_get_current获取当前场景的名称和UUID

Scene Advanced (30) — Undo, clipboard, queries, property manipulation

工具说明
scene_execute_script执行自定义场景脚本方法
scene_snapshot拍摄快照以进行撤消
scene_snapshot_abort中止当前撤消快照
scene_begin_undo开始记录撤消操作
scene_end_undo结束撤消录制
scene_cancel_undo取消撤消录制
scene_query_dirty检查场景是否有未保存的更改
scene_query_ready检查场景是否已完全加载
scene_query_classes列出所有可用的组件类
scene_query_components节点的查询组件
scene_query_component_has_script检查组件是否有脚本文件
scene_query_node_tree从编辑器获取原始节点树
scene_query_node获取节点的完整属性转储
scene_query_component获取组件的完整属性转储
scene_query_nodes_by_asset查找引用资源的节点
scene_query_scene_bounds获取场景边界矩形
scene_soft_reload软重载场景
scene_reset_node_transform将转换重置为默认值
scene_reset_property将特定属性重置为默认值
scene_reset_component将组件重置为默认值
scene_copy_node将节点复制到剪贴板
scene_paste_node从剪贴板粘贴节点
scene_cut_node将节点剪切到剪贴板
scene_create创建新的空场景
scene_save_as将场景保存到新文件
scene_set_parent使用官方API重新修复节点
scene_restore_prefab将预制节点恢复到原始状态
scene_execute_component_method调用组件上的方法
scene_move_array_element重新排序数组属性元素
scene_remove_array_element删除数组属性元素

Scene View (19) — Gizmo, camera, grid, viewport

工具说明
view_change_gizmo_tool切换小控件工具(移动/旋转/缩放/定向)
view_query_gizmo_tool获取当前小控件工具
view_change_gizmo_pivot更改枢轴模式(中心/枢轴)
view_query_gizmo_pivot获取当前枢轴模式
view_change_gizmo_coordinate更改坐标系(局部/全局)
view_query_gizmo_coordinate获取当前坐标系
view_change_mode_2d_3d切换二维/三维视图
view_query_mode_2d_3d获取当前视图模式
view_set_grid_visible显示/隐藏网格
view_query_grid_visible检查网格可见性
view_set_icon_gizmo_3d切换3D图标小控件
view_query_icon_gizmo_3d检查3D图标小控件状态
view_set_icon_gizmo_size设置图标小控件大小
view_query_icon_gizmo_size获取图标小控件大小
view_focus_on_node将相机聚焦在节点上
view_align_with_view将节点与摄影机视图对齐
view_align_view_with_node将相机与节点对齐
view_get_status一次获取所有视图设置
view_reset将场景视图重置为默认值

Node (14) — Create, edit, move, delete nodes

工具说明
node_create创建节点(带可选组件)
node_get_info获取节点详细信息(位置、比例、组件)
node_find_by_name按名称查找节点
node_set_property设置节点属性
node_set_transform立即设置位置/旋转/比例
node_set_active设置节点可见性
node_set_layer设置节点层
node_delete删除节点
node_move将节点移动到新父节点
node_duplicate重复节点
node_get_all列出所有节点
node_detect_type检测节点类型(2D/3D/node)
node_create_tree在一次调用中创建节点层次结构(v1.6)
node_set_layout立即设置UITransform+Widget+颜色/不透明度(v1.13)

Component (8) — Add, remove, configure components

工具说明
component_add添加组件(例如。 cc.Label, cc.Sprite)
component_remove移除组件
component_get_components列出节点上的组件
component_set_property设置组件属性(Label.string、fontSize等)
component_get_info通过UUID获取完整的组件转储
component_get_available列出所有可用的组件类
component_auto_bind自动匹配 @property 按名称将字段转换为节点(v1.12)
component_query_enum查询组件属性的枚举值(v1.6)

Prefab (12) — Prefab lifecycle and validation

工具说明
prefab_list列出所有预制件
prefab_create从节点创建预制件(保留特性)
prefab_instantiate将预制件实例化到场景中
prefab_get_info获取预制资产信息
prefab_update应用预制更改
prefab_revert将预制实例还原为原始实例
prefab_duplicate将预制件复制到新路径
prefab_validate验证预制件是否有损坏的引用
prefab_open打开前言进行编辑(v1.5)
prefab_close关闭预制编辑模式并返回场景(v1.5)
prefab_create_and_replace在一次调用中创建预制件并替换实例(v1.5)
prefab_create_from_spec一次调用创建节点树+自动绑定+prefab_Create(v1.12)

Asset (18) — CRUD, queries, metadata, dependencies

工具说明
asset_create创建新资产
asset_delete删除资产
asset_move移动/重命名资源
asset_copy复制资产
asset_save保存资产
asset_reimport再进口资产
asset_import将外部文件导入项目
asset_query_path获取UUID的文件路径
asset_query_uuid获取路径的UUID
asset_query_url获取UUID的URL
asset_get_details获取资产元数据
asset_get_dependencies获取资产依赖关系
asset_open_external在外部编辑器中打开
asset_save_meta保存资产元/导入器设置
asset_generate_available_url生成不冲突的资产路径
asset_query_ready检查资产数据库是否准备就绪
asset_query_users查找引用此资产的资产
asset_query_missing检查缺少的参考文献

Project (8) — Project info, settings, engine

工具说明
project_get_info获取项目名称和路径
project_refresh_assets刷新资产数据库
project_get_asset_info通过UUID获取资产信息
project_find_asset按glob模式查找资产
project_get_settings获取项目设置
project_set_settings设置项目设置
project_get_engine_info获取引擎版本和路径
project_query_scripts查询所有脚本插件

Preferences (4) — Editor preferences

工具说明
preferences_get获取偏好值
preferences_set设置首选项值
preferences_get_all获取协议的所有首选项
preferences_reset将首选项重置为默认值

Debug (22) — Editor info, logs, preview, screenshots, recording, game control

工具说明
debug_get_editor_info获取编辑器版本和环境
debug_list_messages列出可用编辑器消息
debug_execute_script执行场景脚本方法
debug_get_console_logs获取控制台日志条目(场景+游戏预览)
debug_clear_console清除编辑器控制台和日志缓冲区
debug_preview在编辑器中开始预览(播放按钮)
debug_clear_code_cache清除代码缓存(开发人员>缓存)
debug_screenshot捕获编辑器窗口截图
debug_game_command发送命令到游戏预览(截图/点击/导航/状态/检查)
debug_batch_screenshot导航到多个页面并对每个页面进行截图
debug_record_start开始录制游戏预览画布(webm/mp4)
debug_record_stop停止录制并保存视频文件
debug_reload_extension重新加载此MCP扩展(构建后)
debug_list_extensions列出已安装的扩展
debug_get_extension_info获取扩展详细信息
debug_get_project_logs读取项目日志条目
debug_search_project_logs项目日志中的搜索模式
debug_get_log_file_info获取日志文件元数据
debug_validate_scene验证场景中的常见问题
debug_query_devices列出已连接的设备
debug_open_url在系统浏览器中打开URL
debug_wait_compile等待TypeScript编译完成(v1.12)

Server (7) — Editor server and network

工具说明
server_query_ip_list获取编辑器服务器IP
server_query_port获取编辑器服务器端口
server_get_status获取完整服务器状态
server_check_connectivity检查编辑器服务器是否可访问
server_get_network_interfaces获取网络接口详细信息
server_get_build_hash获取MCP dist文件的构建哈希(v1.6)
server_check_code_sync检查运行时是否与dist-hash(v1.6)匹配

Builder (5) — Build and preview

工具说明
builder_open_panel打开“构建”面板
builder_get_settings获取构建配置
builder_query_tasks查询活动生成任务
builder_run_preview启动预览服务器
builder_stop_preview停止预览服务器

Reference Image (11) — Scene overlay images

工具说明
refimage_add添加参考图像
refimage_remove删除参考图像
refimage_list列出所有参考图像
refimage_clear_all删除所有参考图像
refimage_switch切换活动参考图像
refimage_set_position设置图像位置
refimage_set_scale设置图像比例
refimage_set_opacity设置图像不透明度
refimage_query_config获取参考图像配置
refimage_query_current获取当前活动图像信息
refimage_refresh刷新图像显示

客户端脚本

client/ 目录包含用于游戏预览和MCP服务器之间运行时通信的TypeScript文件。由于扩展安装在 extensions/,这些文件可以直接导入,无需复制。

McpConsoleCapture

捕获 console.log/warn/error 并将它们发送到MCP服务器。

// Import from extensions/ (adjust relative path as needed)
import { initMcpConsoleCapture } from "../../extensions/cocos-creator-mcp/client/McpConsoleCapture";
initMcpConsoleCapture();

McpDebugClient

启用AI驱动的游戏控制:屏幕截图、节点点击和自定义命令。

import { initMcpDebugClient } from "../../extensions/cocos-creator-mcp/client/McpDebugClient";

initMcpDebugClient({
    customCommands: {
        // Add project-specific commands
        state: () => ({ success: true, data: { dump: MyDb.dump() } }),
        navigate: async (args) => {
            await MyRouter.goTo(args.page);
            return { success: true };
        },
    },
});

内置命令 (无需设置):

  • screenshot --通过RenderTexture捕获游戏屏幕
  • click --按名称单击节点

自定义命令 (项目特定):

  • 通过注册任何处理程序 customCommands 选项
  • 通过拨打电话 debug_game_command MCP工具

当MCP服务器未运行时,这两个脚本都会自动忽略,因此它们可以安全地留在开发版本中。

控制台日志捕获(详细信息)

debug_get_console_logs 从两个来源捕获日志:

场景处理日志(自动)

场景脚本的控制台输出(console.log/warn/error 在场景渲染过程中)被自动捕获。无需设置。

游戏预览日志(选择加入)

游戏代码在预览期间在浏览器中运行,这是一个单独的过程。要捕获游戏预览日志,您的游戏代码需要将日志发送到MCP服务器 /log 终点。

设置:

将控制台捕获脚本添加到您的游戏项目中:

const MCP_LOG_URL = "http://127.0.0.1:3000/log";
const FLUSH_INTERVAL = 500;

let buffer: Array = [];

function hook(level: string, original: (...args: any[]) => void) {
    return function (...args: any[]) {
        original.apply(console, args);
        buffer.push({
            timestamp: new Date().toISOString(),
            level,
            message: args.map(a => typeof a === "string" ? a : JSON.stringify(a)).join(" "),
        });
    };
}

console.log = hook("log", console.log);
console.warn = hook("warn", console.warn);
console.error = hook("error", console.error);

setInterval(() => {
    if (buffer.length === 0) return;
    const entries = buffer.splice(0, 50);
    fetch(MCP_LOG_URL, {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify(entries),
    }).catch(() => {}); // silently ignore if MCP server is not running
}, FLUSH_INTERVAL);

POST /log 格式:

[
  { "timestamp": "2026-03-26T12:00:00.000Z", "level": "log", "message": "Hello" },
  { "timestamp": "2026-03-26T12:00:01.000Z", "level": "error", "message": "Something failed" }
]

当通过以下方式检索时,场景和游戏日志都会按时间顺序合并 debug_get_console_logs每个日志条目都包含一个 source 现场("scene""game")以区分起源。

配置

设置存储在 {project}/settings/cocos-creator-mcp.json:

{
  "port": 3000,
  "autoStart": true
}
选项默认值描述
port3000HTTP服务器端口
autoStartfalse加载扩展时自动启动服务器

测试

node test/regression.mjs         # default port 3000
node test/regression.mjs 3001    # custom port

版本历史记录

  • v0.1 --MCP服务器+场景/节点工具(13个工具)
  • v0.5 --组件、预制件、项目、调试工具(27个工具)
  • v1.0 --全工具覆盖(145个工具,13个类别,224个测试断言)
  • v1.1 --控制台日志捕获(场景过程自动捕获+游戏预览 /log 端点)
  • v1.2 --AI自主开发:在编辑器中预览、截图、游戏命令控制、代码缓存清除、场景保存修复。用于游戏预览集成的客户端脚本(client/)
  • v1.3scene:set-property 对于prefab保存支持,prefab_create覆盖保护,参数别名(componentcomponentType)
  • v1.5prefab_create_and_replace,批次 set_property, prefab_open
  • v1.6debug_batch_screenshot中的小部件支持 create_tree, component_query_enum, server_check_code_sync
  • v1.8.0 --预览记录器面板: debug_record_start / debug_record_stop (通过canvas.captureStream、MP4/WebM、质量预设的MediaRecorder)
  • v1.8.1 --修复: component_set_property 未指定类型时,cc.资产引用(cc.Font等)回退到cc.Node
  • v1.8.2 --预览录制器:屏幕截图按钮(webp/png切换,最大宽度),基于部分的UI布局
  • v1.9.0 --预览记录器自动存档旧记录+飞行前“预览未运行”检查
  • v1.10.0scene_create 资产数据库回退、字符串化参数预防性验证、测试覆盖率扩展
  • v1.11.0 --HTTP MCP OAuth解决方法(stdio桥+克劳德代码VSCode上游错误的虚拟OAuth端点)+场景切换工具的对话预防(force 参数, ensureSceneSafeToSwitch, safeSaveScene)+两者的回归测试
  • v1.12.0 --预制创作效率: component_auto_bind (自动匹配 @property 字段到节点名称), debug_wait_compile (等待TS编译完成), prefab_create_from_spec (在一次调用中创建节点树+自动绑定+prefab_create)
  • v1.13.0nodeName 组件/组件/自动绑定上的参数(不需要UUID), screenshot 自动返回选项打开 component_set_property / node_set_layout, node_set_layout 统一工具(UITransform+Widget+颜色/不透明度在一次调用中),无标题+脏场景的对话框自动响应,共享截图/节点解析实用程序
  • v1.14.0 --小工具 _alignFlags 自动重新计算错误修复: setProperty / setProperties / node_set_layout 现在重新查询 isAlign* 场景值和重建 _alignFlags isAlign更新后的位掩码(编辑器错误,位掩码未自动更新,导致序言保存为 _alignFlags: 45 卡住状态)。此外 node_create 组件添加现在等待编辑器反射(waitForComponent)修复片状测试

发展

npm run watch   # Watch mode
npm run build   # One-time build

构建完成后,在Cocos Creator中重新加载扩展:

  • 扩展管理器 --禁用然后重新启用
  • 开发者>重新加载 --重新加载主进程
  • 完全重新启动 --场景脚本或新类别更改所需

需求

  • Cocos Creator 3.8+
  • Node.js 18+

已知限制

  • scene_create:在Cocos Creator 3.8.x上不起作用,因为底层 scene:new-scene 该版本上未显示编辑器消息。作为解决方法,创建 .scene JSON文件直接位于 db://assets/ 并呼叫 project_refresh_assets 所以编辑把它捡了起来。看 #13 了解详情。
  • prefab_create_from_spec --资产引用保存为原始UUID字符串:

当规格 properties 包含资产引用,如 cc.Sprite.spriteFramecc.Prefab 字段,它们被序列化为生成的 .prefab 作为原始UUID字符串,而不是必需的 {__uuid__, __expectedType__} 对象形式。Cocos运行时无法解析它们(例如。 Simple.updateUVs 抛出具有未解析spriteFrame的Sprite的每一帧)。解决方法:对生成的数据进行后处理 .prefab 用于包装资源引用的文件。

修复脚本示例:

  // fix-prefab-asset-refs.js — run after prefab_create_from_spec
  const re = /"_spriteFrame":\s*"([a-f0-9\-]+(?:@[a-z0-9]+)?)"/g;
  content = content.replace(re, (_, uuid) =>
    `"_spriteFrame": { "__uuid__": "${uuid}", "__expectedType__": "cc.SpriteFrame" }`
  );

设置时也适用相同的模式 cc.Prefab 字段通过 component_set_property --忽略值对象表单,并写入原始UUID。直接的 .prefab JSON编辑是可靠的解决方法,直到修复。

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaude云端部署编辑器自动化本地部署AI控制场景编辑节点管理资源操作

支持客户端

ClaudeCursorCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

164

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP