1426 lines
25 KiB
Markdown
1426 lines
25 KiB
Markdown
# Cocos Creator MCP Server Feature Guide
|
|
|
|
## Overview
|
|
|
|
The Cocos Creator MCP Server is a comprehensive Model Context Protocol (MCP) server plugin designed for Cocos Creator 3.8+ that enables AI assistants to interact with the Cocos Creator editor through a standardized protocol.
|
|
|
|
This document provides detailed information about all available MCP tools and their usage.
|
|
|
|
## Tool Categories
|
|
|
|
The MCP server provides **80 tools** organized into 9 main categories:
|
|
|
|
1. [Scene Tools](#1-scene-tools)
|
|
2. [Node Tools](#2-node-tools)
|
|
3. [Component Tools](#3-component-tools)
|
|
4. [Prefab Tools](#4-prefab-tools)
|
|
5. [Project Tools](#5-project-tools)
|
|
6. [Debug Tools](#6-debug-tools)
|
|
7. [Preferences Tools](#7-preferences-tools)
|
|
8. [Server Tools](#8-server-tools)
|
|
9. [Broadcast Tools](#9-broadcast-tools)
|
|
|
|
---
|
|
|
|
## 1. Scene Tools
|
|
|
|
### 1.1 scene_get_current_scene
|
|
Get current scene information
|
|
|
|
**Parameters**: None
|
|
|
|
**Returns**: Current scene name, UUID, type, active state, and node count
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_get_current_scene",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 1.2 scene_get_scene_list
|
|
Get all scenes in the project
|
|
|
|
**Parameters**: None
|
|
|
|
**Returns**: List of all scenes in the project with name, path, and UUID
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_get_scene_list",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 1.3 scene_open_scene
|
|
Open a scene by path
|
|
|
|
**Parameters**:
|
|
- `scenePath` (string, required): The scene file path
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_open_scene",
|
|
"arguments": {
|
|
"scenePath": "db://assets/scenes/GameScene.scene"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 1.4 scene_save_scene
|
|
Save current scene
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_save_scene",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 1.5 scene_create_scene
|
|
Create a new scene asset
|
|
|
|
**Parameters**:
|
|
- `sceneName` (string, required): Name of the new scene
|
|
- `savePath` (string, required): Path to save the scene
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_create_scene",
|
|
"arguments": {
|
|
"sceneName": "NewLevel",
|
|
"savePath": "db://assets/scenes/NewLevel.scene"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 1.6 scene_save_scene_as
|
|
Save scene as new file
|
|
|
|
**Parameters**:
|
|
- `path` (string, required): Path to save the scene
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_save_scene_as",
|
|
"arguments": {
|
|
"path": "db://assets/scenes/GameScene_Copy.scene"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 1.7 scene_close_scene
|
|
Close current scene
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_close_scene",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 1.8 scene_get_scene_hierarchy
|
|
Get the complete hierarchy of current scene
|
|
|
|
**Parameters**:
|
|
- `includeComponents` (boolean, optional): Include component information, default is false
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "scene_get_scene_hierarchy",
|
|
"arguments": {
|
|
"includeComponents": true
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Node Tools
|
|
|
|
### 2.1 node_create_node
|
|
Create a new node in the scene
|
|
|
|
**Parameters**:
|
|
- `name` (string, required): Node name
|
|
- `parentUuid` (string, optional): Parent node UUID, if not provided, node will be created at current editor selection
|
|
- `nodeType` (string, optional): Node type, options: `Node`, `2DNode`, `3DNode`, default is `Node`
|
|
- `siblingIndex` (number, optional): Sibling index for ordering, -1 means append at end, default is -1
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_create_node",
|
|
"arguments": {
|
|
"name": "PlayerNode",
|
|
"nodeType": "2DNode",
|
|
"parentUuid": "parent-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.2 node_get_node_info
|
|
Get node information by UUID
|
|
|
|
**Parameters**:
|
|
- `uuid` (string, required): Node UUID
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_get_node_info",
|
|
"arguments": {
|
|
"uuid": "node-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.3 node_find_nodes
|
|
Find nodes by name pattern
|
|
|
|
**Parameters**:
|
|
- `pattern` (string, required): Name pattern to search
|
|
- `exactMatch` (boolean, optional): Exact match or partial match, default is false
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_find_nodes",
|
|
"arguments": {
|
|
"pattern": "Enemy",
|
|
"exactMatch": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.4 node_find_node_by_name
|
|
Find first node by exact name
|
|
|
|
**Parameters**:
|
|
- `name` (string, required): Node name to find
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_find_node_by_name",
|
|
"arguments": {
|
|
"name": "Player"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.5 node_get_all_nodes
|
|
Get all nodes in the scene with their UUIDs
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_get_all_nodes",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 2.6 node_set_node_property
|
|
Set node property value
|
|
|
|
**Parameters**:
|
|
- `uuid` (string, required): Node UUID
|
|
- `property` (string, required): Property name (e.g., position, rotation, scale, active)
|
|
- `value` (any, required): Property value
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_set_node_property",
|
|
"arguments": {
|
|
"uuid": "node-uuid-here",
|
|
"property": "position",
|
|
"value": {"x": 100, "y": 200, "z": 0}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.7 node_delete_node
|
|
Delete a node from scene
|
|
|
|
**Parameters**:
|
|
- `uuid` (string, required): Node UUID to delete
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_delete_node",
|
|
"arguments": {
|
|
"uuid": "node-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.8 node_move_node
|
|
Move node to new parent
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID to move
|
|
- `newParentUuid` (string, required): New parent node UUID
|
|
- `siblingIndex` (number, optional): Sibling index in new parent, default is -1
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_move_node",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"newParentUuid": "parent-uuid-here",
|
|
"siblingIndex": 0
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2.9 node_duplicate_node
|
|
Duplicate a node
|
|
|
|
**Parameters**:
|
|
- `uuid` (string, required): Node UUID to duplicate
|
|
- `includeChildren` (boolean, optional): Include children nodes, default is true
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "node_duplicate_node",
|
|
"arguments": {
|
|
"uuid": "node-uuid-here",
|
|
"includeChildren": true
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Component Tools
|
|
|
|
### 3.1 component_add_component
|
|
Add a component to a specific node
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Target node UUID
|
|
- `componentType` (string, required): Component type (e.g., cc.Sprite, cc.Label, cc.Button)
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_add_component",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"componentType": "cc.Sprite"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.2 component_remove_component
|
|
Remove a component from a node
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID
|
|
- `componentType` (string, required): Component type to remove
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_remove_component",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"componentType": "cc.Sprite"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.3 component_get_components
|
|
Get all components of a node
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_get_components",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.4 component_get_component_info
|
|
Get specific component information
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID
|
|
- `componentType` (string, required): Component type to get info for
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_get_component_info",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"componentType": "cc.Sprite"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.5 component_set_component_property
|
|
Set component property value
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID
|
|
- `componentType` (string, required): Component type
|
|
- `property` (string, required): Property name
|
|
- `value` (any, required): Property value
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_set_component_property",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"componentType": "cc.Sprite",
|
|
"property": "spriteFrame",
|
|
"value": "sprite-frame-uuid"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.6 component_attach_script
|
|
Attach a script component to a node
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Node UUID
|
|
- `scriptPath` (string, required): Script asset path
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_attach_script",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"scriptPath": "db://assets/scripts/PlayerController.ts"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.7 component_get_available_components
|
|
Get list of available component types
|
|
|
|
**Parameters**:
|
|
- `category` (string, optional): Component category filter, options: `all`, `renderer`, `ui`, `physics`, `animation`, `audio`, default is `all`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "component_get_available_components",
|
|
"arguments": {
|
|
"category": "ui"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Prefab Tools
|
|
|
|
### 4.1 prefab_get_prefab_list
|
|
Get all prefabs in the project
|
|
|
|
**Parameters**:
|
|
- `folder` (string, optional): Folder path to search, default is `db://assets`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_get_prefab_list",
|
|
"arguments": {
|
|
"folder": "db://assets/prefabs"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.2 prefab_load_prefab
|
|
Load a prefab by path
|
|
|
|
**Parameters**:
|
|
- `prefabPath` (string, required): Prefab asset path
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_load_prefab",
|
|
"arguments": {
|
|
"prefabPath": "db://assets/prefabs/Enemy.prefab"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.3 prefab_instantiate_prefab
|
|
Instantiate a prefab in the scene
|
|
|
|
**Parameters**:
|
|
- `prefabPath` (string, required): Prefab asset path
|
|
- `parentUuid` (string, optional): Parent node UUID
|
|
- `position` (object, optional): Initial position with x, y, z properties
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_instantiate_prefab",
|
|
"arguments": {
|
|
"prefabPath": "db://assets/prefabs/Enemy.prefab",
|
|
"parentUuid": "parent-uuid-here",
|
|
"position": {"x": 100, "y": 200, "z": 0}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.4 prefab_create_prefab
|
|
Create a prefab from a node
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Source node UUID
|
|
- `savePath` (string, required): Path to save the prefab
|
|
- `prefabName` (string, required): Prefab name
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_create_prefab",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"savePath": "db://assets/prefabs/",
|
|
"prefabName": "MyPrefab"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.5 prefab_create_prefab_from_node
|
|
Create a prefab from a node (alias for create_prefab)
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Source node UUID
|
|
- `prefabPath` (string, required): Path to save the prefab
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_create_prefab_from_node",
|
|
"arguments": {
|
|
"nodeUuid": "node-uuid-here",
|
|
"prefabPath": "db://assets/prefabs/MyPrefab.prefab"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.6 prefab_update_prefab
|
|
Update an existing prefab
|
|
|
|
**Parameters**:
|
|
- `prefabPath` (string, required): Prefab asset path
|
|
- `nodeUuid` (string, required): Node UUID with changes
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_update_prefab",
|
|
"arguments": {
|
|
"prefabPath": "db://assets/prefabs/Enemy.prefab",
|
|
"nodeUuid": "node-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.7 prefab_revert_prefab
|
|
Revert prefab instance to original
|
|
|
|
**Parameters**:
|
|
- `nodeUuid` (string, required): Prefab instance node UUID
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_revert_prefab",
|
|
"arguments": {
|
|
"nodeUuid": "prefab-instance-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.8 prefab_get_prefab_info
|
|
Get detailed prefab information
|
|
|
|
**Parameters**:
|
|
- `prefabPath` (string, required): Prefab asset path
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "prefab_get_prefab_info",
|
|
"arguments": {
|
|
"prefabPath": "db://assets/prefabs/Enemy.prefab"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Project Tools
|
|
|
|
### 5.1 project_run_project
|
|
Run the project in preview mode
|
|
|
|
**Parameters**:
|
|
- `platform` (string, optional): Target platform, options: `browser`, `simulator`, `preview`, default is `browser`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_run_project",
|
|
"arguments": {
|
|
"platform": "browser"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.2 project_build_project
|
|
Build the project
|
|
|
|
**Parameters**:
|
|
- `platform` (string, required): Build platform, options: `web-mobile`, `web-desktop`, `ios`, `android`, `windows`, `mac`
|
|
- `debug` (boolean, optional): Debug build, default is true
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_build_project",
|
|
"arguments": {
|
|
"platform": "web-mobile",
|
|
"debug": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.3 project_get_project_info
|
|
Get project information
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_get_project_info",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 5.4 project_get_project_settings
|
|
Get project settings
|
|
|
|
**Parameters**:
|
|
- `category` (string, optional): Settings category, options: `general`, `physics`, `render`, `assets`, default is `general`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_get_project_settings",
|
|
"arguments": {
|
|
"category": "physics"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.5 project_refresh_assets
|
|
Refresh asset database
|
|
|
|
**Parameters**:
|
|
- `folder` (string, optional): Specific folder to refresh
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_refresh_assets",
|
|
"arguments": {
|
|
"folder": "db://assets/textures"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.6 project_import_asset
|
|
Import an asset file
|
|
|
|
**Parameters**:
|
|
- `sourcePath` (string, required): Source file path
|
|
- `targetFolder` (string, required): Target folder in assets
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_import_asset",
|
|
"arguments": {
|
|
"sourcePath": "/path/to/image.png",
|
|
"targetFolder": "db://assets/textures"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.7 project_get_asset_info
|
|
Get asset information
|
|
|
|
**Parameters**:
|
|
- `assetPath` (string, required): Asset path
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_get_asset_info",
|
|
"arguments": {
|
|
"assetPath": "db://assets/textures/player.png"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.8 project_get_assets
|
|
Get assets by type
|
|
|
|
**Parameters**:
|
|
- `type` (string, optional): Asset type filter, options: `all`, `scene`, `prefab`, `script`, `texture`, `material`, `mesh`, `audio`, `animation`, default is `all`
|
|
- `folder` (string, optional): Folder to search in, default is `db://assets`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_get_assets",
|
|
"arguments": {
|
|
"type": "texture",
|
|
"folder": "db://assets/textures"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.9 project_get_build_settings
|
|
Get build settings
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_get_build_settings",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 5.10 project_open_build_panel
|
|
Open the build panel in the editor
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_open_build_panel",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 5.11 project_check_builder_status
|
|
Check if builder worker is ready
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_check_builder_status",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 5.12 project_start_preview_server
|
|
Start preview server
|
|
|
|
**Parameters**:
|
|
- `port` (number, optional): Preview server port, default is 7456
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_start_preview_server",
|
|
"arguments": {
|
|
"port": 8080
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.13 project_stop_preview_server
|
|
Stop preview server
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_stop_preview_server",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 5.14 project_create_asset
|
|
Create a new asset file or folder
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL
|
|
- `content` (string, optional): File content, null for folder
|
|
- `overwrite` (boolean, optional): Overwrite existing file, default is false
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_create_asset",
|
|
"arguments": {
|
|
"url": "db://assets/scripts/NewScript.ts",
|
|
"content": "// New TypeScript script\n",
|
|
"overwrite": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.15 project_copy_asset
|
|
Copy an asset to another location
|
|
|
|
**Parameters**:
|
|
- `source` (string, required): Source asset URL
|
|
- `target` (string, required): Target location URL
|
|
- `overwrite` (boolean, optional): Overwrite existing file, default is false
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_copy_asset",
|
|
"arguments": {
|
|
"source": "db://assets/textures/player.png",
|
|
"target": "db://assets/textures/backup/player.png",
|
|
"overwrite": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.16 project_move_asset
|
|
Move an asset to another location
|
|
|
|
**Parameters**:
|
|
- `source` (string, required): Source asset URL
|
|
- `target` (string, required): Target location URL
|
|
- `overwrite` (boolean, optional): Overwrite existing file, default is false
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_move_asset",
|
|
"arguments": {
|
|
"source": "db://assets/textures/old_player.png",
|
|
"target": "db://assets/textures/player.png",
|
|
"overwrite": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.17 project_delete_asset
|
|
Delete an asset
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL to delete
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_delete_asset",
|
|
"arguments": {
|
|
"url": "db://assets/textures/unused.png"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.18 project_save_asset
|
|
Save asset content
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL
|
|
- `content` (string, required): Asset content
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_save_asset",
|
|
"arguments": {
|
|
"url": "db://assets/scripts/GameManager.ts",
|
|
"content": "// Updated script content\n"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.19 project_reimport_asset
|
|
Reimport an asset
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL to reimport
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_reimport_asset",
|
|
"arguments": {
|
|
"url": "db://assets/textures/player.png"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.20 project_query_asset_path
|
|
Get asset disk path
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_query_asset_path",
|
|
"arguments": {
|
|
"url": "db://assets/textures/player.png"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.21 project_query_asset_uuid
|
|
Get asset UUID from URL
|
|
|
|
**Parameters**:
|
|
- `url` (string, required): Asset URL
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_query_asset_uuid",
|
|
"arguments": {
|
|
"url": "db://assets/textures/player.png"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.22 project_query_asset_url
|
|
Get asset URL from UUID
|
|
|
|
**Parameters**:
|
|
- `uuid` (string, required): Asset UUID
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "project_query_asset_url",
|
|
"arguments": {
|
|
"uuid": "asset-uuid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Debug Tools
|
|
|
|
### 6.1 debug_get_console_logs
|
|
Get editor console logs
|
|
|
|
**Parameters**:
|
|
- `limit` (number, optional): Number of recent logs to retrieve, default is 100
|
|
- `filter` (string, optional): Filter logs by type, options: `all`, `log`, `warn`, `error`, `info`, default is `all`
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_get_console_logs",
|
|
"arguments": {
|
|
"limit": 50,
|
|
"filter": "error"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 6.2 debug_clear_console
|
|
Clear editor console
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_clear_console",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 6.3 debug_execute_script
|
|
Execute JavaScript in scene context
|
|
|
|
**Parameters**:
|
|
- `script` (string, required): JavaScript code to execute
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_execute_script",
|
|
"arguments": {
|
|
"script": "console.log('Hello from MCP!');"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 6.4 debug_get_node_tree
|
|
Get detailed node tree for debugging
|
|
|
|
**Parameters**:
|
|
- `rootUuid` (string, optional): Root node UUID, uses scene root if not provided
|
|
- `maxDepth` (number, optional): Maximum tree depth, default is 10
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_get_node_tree",
|
|
"arguments": {
|
|
"rootUuid": "root-node-uuid",
|
|
"maxDepth": 5
|
|
}
|
|
}
|
|
```
|
|
|
|
### 6.5 debug_get_performance_stats
|
|
Get performance statistics
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_get_performance_stats",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 6.6 debug_validate_scene
|
|
Validate current scene for issues
|
|
|
|
**Parameters**:
|
|
- `checkMissingAssets` (boolean, optional): Check for missing asset references, default is true
|
|
- `checkPerformance` (boolean, optional): Check for performance issues, default is true
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_validate_scene",
|
|
"arguments": {
|
|
"checkMissingAssets": true,
|
|
"checkPerformance": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### 6.7 debug_get_editor_info
|
|
Get editor and environment information
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "debug_get_editor_info",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Preferences Tools
|
|
|
|
### 7.1 preferences_get_preferences
|
|
Get editor preferences
|
|
|
|
**Parameters**:
|
|
- `key` (string, optional): Specific preference key to get
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_get_preferences",
|
|
"arguments": {
|
|
"key": "editor.theme"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 7.2 preferences_set_preferences
|
|
Set editor preferences
|
|
|
|
**Parameters**:
|
|
- `key` (string, required): Preference key to set
|
|
- `value` (any, required): Preference value to set
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_set_preferences",
|
|
"arguments": {
|
|
"key": "editor.theme",
|
|
"value": "dark"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 7.3 preferences_get_global_preferences
|
|
Get global editor preferences
|
|
|
|
**Parameters**:
|
|
- `key` (string, optional): Global preference key to get
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_get_global_preferences",
|
|
"arguments": {
|
|
"key": "global.autoSave"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 7.4 preferences_set_global_preferences
|
|
Set global editor preferences
|
|
|
|
**Parameters**:
|
|
- `key` (string, required): Global preference key to set
|
|
- `value` (any, required): Global preference value to set
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_set_global_preferences",
|
|
"arguments": {
|
|
"key": "global.autoSave",
|
|
"value": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### 7.5 preferences_get_recent_projects
|
|
Get recently opened projects
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_get_recent_projects",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 7.6 preferences_clear_recent_projects
|
|
Clear recently opened projects list
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "preferences_clear_recent_projects",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Server Tools
|
|
|
|
### 8.1 server_get_server_info
|
|
Get server information
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_get_server_info",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.2 server_broadcast_custom_message
|
|
Broadcast a custom message
|
|
|
|
**Parameters**:
|
|
- `message` (string, required): Message name
|
|
- `data` (any, optional): Message data
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_broadcast_custom_message",
|
|
"arguments": {
|
|
"message": "custom_event",
|
|
"data": {"type": "test", "value": 123}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 8.3 server_get_editor_version
|
|
Get editor version information
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_get_editor_version",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.4 server_get_project_name
|
|
Get current project name
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_get_project_name",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.5 server_get_project_path
|
|
Get current project path
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_get_project_path",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.6 server_get_project_uuid
|
|
Get current project UUID
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_get_project_uuid",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.7 server_restart_editor
|
|
Request to restart the editor
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_restart_editor",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 8.8 server_quit_editor
|
|
Request to quit the editor
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "server_quit_editor",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Broadcast Tools
|
|
|
|
### 9.1 broadcast_get_broadcast_log
|
|
Get recent broadcast messages log
|
|
|
|
**Parameters**:
|
|
- `limit` (number, optional): Number of recent messages to return, default is 50
|
|
- `messageType` (string, optional): Filter by message type
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "broadcast_get_broadcast_log",
|
|
"arguments": {
|
|
"limit": 100,
|
|
"messageType": "scene_change"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 9.2 broadcast_listen_broadcast
|
|
Start listening for specific broadcast messages
|
|
|
|
**Parameters**:
|
|
- `messageType` (string, required): Message type to listen for
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "broadcast_listen_broadcast",
|
|
"arguments": {
|
|
"messageType": "node_created"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 9.3 broadcast_stop_listening
|
|
Stop listening for specific broadcast messages
|
|
|
|
**Parameters**:
|
|
- `messageType` (string, required): Message type to stop listening for
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "broadcast_stop_listening",
|
|
"arguments": {
|
|
"messageType": "node_created"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 9.4 broadcast_clear_broadcast_log
|
|
Clear the broadcast messages log
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "broadcast_clear_broadcast_log",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
### 9.5 broadcast_get_active_listeners
|
|
Get list of active broadcast listeners
|
|
|
|
**Parameters**: None
|
|
|
|
**Example**:
|
|
```json
|
|
{
|
|
"tool": "broadcast_get_active_listeners",
|
|
"arguments": {}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Usage Guidelines
|
|
|
|
### 1. Tool Call Format
|
|
|
|
All tool calls use JSON-RPC 2.0 format:
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "tools/call",
|
|
"params": {
|
|
"name": "tool_name",
|
|
"arguments": {
|
|
// Tool parameters
|
|
}
|
|
},
|
|
"id": 1
|
|
}
|
|
```
|
|
|
|
### 2. Common UUID Retrieval Methods
|
|
|
|
- Use `node_get_all_nodes` to get all node UUIDs
|
|
- Use `node_find_node_by_name` to find node UUID by name
|
|
- Use `scene_get_current_scene` to get scene UUID
|
|
- Use `prefab_get_prefab_list` to get prefab information
|
|
|
|
### 3. Asset Path Format
|
|
|
|
Cocos Creator uses `db://` prefixed asset URL format:
|
|
- Scenes: `db://assets/scenes/GameScene.scene`
|
|
- Prefabs: `db://assets/prefabs/Player.prefab`
|
|
- Scripts: `db://assets/scripts/GameManager.ts`
|
|
- Textures: `db://assets/textures/player.png`
|
|
|
|
### 4. Error Handling
|
|
|
|
If a tool call fails, it will return error information:
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"id": 1,
|
|
"error": {
|
|
"code": -32000,
|
|
"message": "Tool execution failed",
|
|
"data": {
|
|
"error": "Detailed error message"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5. Best Practices
|
|
|
|
1. **Query Before Modify**: Use query tools to get current state before modifying nodes or components
|
|
2. **Use UUIDs**: Prefer using UUIDs over names to reference nodes and assets
|
|
3. **Error Checking**: Always check tool call return values to ensure operations succeeded
|
|
4. **Asset Management**: Ensure no references exist before deleting or moving assets
|
|
5. **Performance Considerations**: Avoid frequent tool calls in loops, consider batch operations
|
|
|
|
---
|
|
|
|
## Technical Support
|
|
|
|
If you encounter issues while using the tools, you can:
|
|
|
|
1. Use `debug_get_console_logs` to view detailed error logs
|
|
2. Use `debug_validate_scene` to check for scene issues
|
|
3. Use `debug_get_editor_info` to get environment information
|
|
4. Check the MCP server's running status and logs
|
|
|
|
---
|
|
|
|
*This document is based on Cocos Creator MCP Server v1.0.0. Please refer to the latest version documentation for updates.* |