A Cocos Creator 3.8.x MCP bridge for code agents. The editor extension runs a local TCP socket server, and a Python MCP server (stdio) forwards tools over that socket. This mirrors the Blender MCP architecture.
- Editor extension (TS):
packages/cocos-mcpstarts a TCP server inside Cocos Creator. - MCP server (Python):
python/cocos_mcp_server.pyexposes tools over stdio and talks to the editor socket.
MCP Client (Claude Code / Cursor)
↕ stdio (MCP protocol)
Python MCP Server (cocos_mcp_server.py)
↕ TCP socket (JSON-RPC, port 8787)
Cocos Editor Extension (packages/cocos-mcp)
↕ Editor.Message / scene script APIs
Cocos Creator Engine
- Copy
packages/cocos-mcpinto your Cocos project:- Preferred:
extensions/cocos-mcp - Legacy:
packages/cocos-mcp
- Preferred:
- Restart Cocos Creator and enable the extension in Extension Manager.
- Optional: set port via env var before launching editor:
COCOS_MCP_PORT=8787
If you change TypeScript, rebuild:
npx tsc -p packages/cocos-mcp/tsconfig.jsoncd python && uv synccd python && uv run cocos-mcp-server --host 127.0.0.1 --port 8787Cocos MCP 完整支持 Claude Code —— Anthropic 官方的 CLI 编程工具。连接后,Claude Code 可以直接通过自然语言操控 Cocos Creator 编辑器:创建/删除节点、修改属性、管理资源、搭建 UI、配置物理和动画等。
claude mcp add cocos-mcp-server uvx cocos-mcp-server项目根目录包含 .mcp.json 配置文件。在此目录下启动 Claude Code 时会自动发现并连接 MCP 服务器,无需额外配置。
cd /path/to/cocos-mcp
claude也可以将配置手动添加到 Claude Code 的设置中:
项目级别(.claude/settings.json):
{
"mcpServers": {
"cocos-mcp": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/cocos-mcp/python", "cocos-mcp-server", "--port", "8787"]
}
}
}全局级别(~/.claude/settings.json),适用于所有项目:
{
"mcpServers": {
"cocos-mcp": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/cocos-mcp/python", "cocos-mcp-server", "--port", "8787"]
}
}
}- 启动 Cocos Creator 并打开包含
cocos-mcp扩展的项目 - 确认编辑器控制台输出
[cocos-mcp] TCP server listening on 127.0.0.1:8787 - 在终端启动 Claude Code
- Claude Code 会自动连接 MCP 服务器,所有 43 个工具立即可用
> 列出当前场景的所有节点
> 创建一个名为 Player 的节点,位置设为 (0, 1, 0)
> 给 Player 节点添加一个 RigidBody 和 BoxCollider
> 在场景中创建一个 Button,文字为"开始游戏"
> 把 Player 节点保存为 prefab 到 db://assets/prefabs/Player.prefab
> 查找项目中所有 prefab 资源
Cursor、Windsurf 等支持 MCP 协议的工具也可以使用相同的配置格式接入。
scene_get_active– Get the active scene name and UUIDscene_list_nodes– List all nodes as a tree structurescene_create_node– Create a new empty nodescene_delete_node– Delete a node and its childrenscene_duplicate_node– Deep clone a nodescene_move_node– Reparent a nodescene_get_node_props– Read node properties (position, rotation, scale, etc.)scene_set_node_props– Set node propertiesscene_add_component– Add a component to a nodescene_remove_component– Remove a component from a nodescene_get_component_props– Read component propertiesscene_set_component_props– Set component properties
editor_save_scene– Save the current sceneeditor_query_dirty– Check if scene has unsaved changeseditor_open_scene– Open a scene by UUIDeditor_undo– Undo last operationeditor_redo– Redo last undone operation
scene_create_ui_node– Create a complete UI node (Button, Label, Sprite, Layout, etc.)scene_configure_widget– Configure Widget alignment on a nodescene_configure_layout– Configure Layout component on a node
scene_add_animation– Add Animation component to a nodescene_play_animation– Play animation on a nodescene_stop_animation– Stop animation on a node
scene_set_material_property– Set material uniform on MeshRendererscene_get_material_property– Read material uniform from MeshRendererscene_add_physics_body– Add RigidBody + Collider in one stepscene_configure_particle_system– Configure ParticleSystem on a node
editor_instantiate_prefab– Instantiate a Prefab asset into the sceneeditor_create_prefab– Create a Prefab asset from a scene nodescene_get_prefab_info– Query prefab metadata on a node
assets_find– Search assets by glob patternassets_get_info– Get asset metadata by UUIDassets_create– Create a new assetassets_import– Import an external file as an assetassets_move– Move an asset to a new pathassets_rename– Rename an assetassets_delete– Delete an assetassets_get_dependencies– List asset dependenciesassets_reveal– Reveal asset in OS file explorerassets_request– Raw asset-db message passthrough
execute(scope, code, args)– Run arbitrary JS insceneormainscope
- Make sure Cocos Creator is running and the project with the extension is open.
- Check that the extension is enabled in Extension Manager.
- Verify the port matches (default 8787). Check the editor console for
[cocos-mcp] TCP server listening on 127.0.0.1:8787.
- Another instance may be using port 8787. Set a different port:
COCOS_MCP_PORT=8788 # set before launching Cocos Creator python python/cocos_mcp_server.py --port 8788
- Ensure
package.jsonhas"package_version": 2and"editor": ">=3.8.0". - The extension folder must be named
cocos-mcp(matching thenamefield). - Check the editor console for error messages.
- Open a scene in the editor before calling scene tools.
- Asset operations map to common
asset-dbmessage names (e.g.query-assets). If your editor build differs, useassets_requestwith the exact method name. - Scene modifications via MCP do not currently trigger the editor's undo system. Save your scene before making bulk changes.