# Godot MCP (npm · @tugcantopaloglu/godot-mcp)

MCP server for full Godot 4.x engine control with 165 tools for AI-driven game development

- Trust score: 61/100 (medium)
- Change this week: +40
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `@tugcantopaloglu/godot-mcp`: 61/100 (this document), [markdown](https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp.md), [page](https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp)

## Channel facts

- Registry: `npm`
- Package: `@tugcantopaloglu/godot-mcp`
- Version: `1.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.6.0, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - Dependency health was assessed across the 47 of 48 dependencies we could resolve, so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 152 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 12471 tokens (~80/item across 154 items; 154 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add tugcantopaloglu-godot-mcp -- npx -y @tugcantopaloglu/godot-mcp
```

### Codex

```bash
codex mcp add tugcantopaloglu-godot-mcp -- npx -y @tugcantopaloglu/godot-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tugcantopaloglu-godot-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@tugcantopaloglu/godot-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add tugcantopaloglu-godot-mcp --command npx --arg -y --arg @tugcantopaloglu/godot-mcp
```

### Hermes

```yaml
mcp_servers:
  tugcantopaloglu-godot-mcp:
    command: "npx"
    args: ["-y", "@tugcantopaloglu/godot-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "tugcantopaloglu-godot-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@tugcantopaloglu/godot-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-05 (score 60, +1)

- [functional regression] Security disclosure: unverified → fail

### 2026-08-04 (score 59, +4)

- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 55, +50)

- [security regression] CVE-2025-66414 affects this package: high
- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-01 (score 5, −16)

- [functional regression] Tool coverage: 100 → unverified

### 2026-07-31 (score 21, +15)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −40)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (154)

### `launch_editor` (~29 tokens)

Launch Godot editor for a specific project

Input parameters:

- `projectPath` (string, required): Godot project path

### `run_project` (~42 tokens)

Run the Godot project and capture output

Input parameters:

- `projectPath` (string, required): Godot project path
- `scene` (string): Optional: Specific scene to run

### `get_debug_output` (~17 tokens)

Get the current debug output and errors

### `stop_project` (~16 tokens)

Stop the currently running Godot project

### `get_godot_version` (~18 tokens)

Get the installed Godot version

### `list_projects` (~45 tokens)

List Godot projects in a directory

Input parameters:

- `directory` (string, required): Directory to search for Godot projects
- `recursive` (boolean): Whether to search recursively (default: false)

### `get_project_info` (~29 tokens)

Retrieve metadata about a Godot project

Input parameters:

- `projectPath` (string, required): Godot project path

### `create_scene` (~73 tokens)

Create a new Godot scene file

Input parameters:

- `projectPath` (string, required): Godot project path
- `rootNodeType` (string): Type of the root node (e.g., Node2D, Node3D)
- `scenePath` (string, required): Path where the scene file will be saved (relative to project)

### `add_node` (~121 tokens)

Add a node to an existing scene

Input parameters:

- `nodeName` (string, required): Name for the new node
- `nodeType` (string, required): Type of node to add (e.g., Sprite2D, CollisionShape2D)
- `parentNodePath` (string): Path to the parent node (e.g., "root" or "root/Player")
- `projectPath` (string, required): Godot project path
- `properties` (object): Optional properties to set on the node
- `scenePath` (string, required): Scene file path (relative to project)

### `load_sprite` (~89 tokens)

Load a sprite into a Sprite2D node

Input parameters:

- `nodePath` (string, required): Path to the Sprite2D node (e.g., "root/Player/Sprite2D")
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)
- `texturePath` (string, required): Path to the texture file (relative to project)

### `export_mesh_library` (~90 tokens)

Export a scene as a MeshLibrary resource

Input parameters:

- `meshItemNames` (array): Optional: Names of specific mesh items to include (defaults to all)
- `outputPath` (string, required): Path where the mesh library (.res) will be saved
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Path to the scene file (.tscn) to export

### `save_scene` (~63 tokens)

Save changes to a scene file

Input parameters:

- `newPath` (string): Optional: New path to save the scene to (for creating variants)
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)

### `get_uid` (~65 tokens)

Get the UID for a specific file in a Godot project (for Godot 4.4+)

Input parameters:

- `filePath` (string, required): Path to the file (relative to project) for which to get the UID
- `projectPath` (string, required): Godot project path

### `update_project_uids` (~35 tokens)

Update UID references by resaving resources (4.4+)

Input parameters:

- `projectPath` (string, required): Godot project path

### `game_screenshot` (~19 tokens)

Screenshot the running game (returns base64 PNG)

### `game_click` (~70 tokens)

Click at a position in the running Godot game window

Input parameters:

- `button` (number): Mouse button (1=left, 2=right, 3=middle). Default: 1
- `x` (number, required): X coordinate to click
- `y` (number, required): Y coordinate to click

### `game_key_press` (~90 tokens)

Send a key press or input action to the running game

Input parameters:

- `action` (string): Godot input action name (e.g. "move_forward", "ui_accept")
- `key` (string): Key name (e.g. "W", "Space", "Escape", "Enter")
- `pressed` (boolean): Press (true) or release (false). Default: true (auto-release)

### `game_mouse_move` (~61 tokens)

Move the mouse in the running Godot game

Input parameters:

- `relative_x` (number): Relative X movement
- `relative_y` (number): Relative Y movement
- `x` (number, required): Absolute X position
- `y` (number, required): Absolute Y position

### `game_get_ui` (~18 tokens)

Get visible UI elements from the running game

### `game_get_scene_tree` (~19 tokens)

Get scene tree structure of the running game

### `game_eval` (~45 tokens)

Execute GDScript in the running game. Use "return" for values.

Input parameters:

- `code` (string, required): GDScript code to execute. Use "return" to return values.

### `game_get_property` (~73 tokens)

Get a property value from any node in the running game by its path

Input parameters:

- `nodePath` (string, required): Path to the node (e.g., "/root/Player", "/root/Main/Enemy")
- `property` (string, required): Property name to get (e.g., "position", "health", "visible")

### `game_set_property` (~79 tokens)

Set a property on a node in the running game

Input parameters:

- `nodePath` (string, required): Path to the node
- `property` (string, required): Property name to set
- `typeHint` (string): Optional type hint: "Vector2", "Vector3", "Color"
- `value` (required): Value to set. Use objects for vectors/colors

### `game_call_method` (~62 tokens)

Call a method on any node in the running game with optional arguments

Input parameters:

- `args` (array): Optional array of arguments to pass to the method
- `method` (string, required): Method name to call
- `nodePath` (string, required): Path to the node

### `game_get_node_info` (~44 tokens)

Get node info: class, properties, signals, methods, children

Input parameters:

- `nodePath` (string, required): Path to the node (e.g., "/root/Player")

### `game_instantiate_scene` (~74 tokens)

Load a PackedScene and add it as a child of a node in the running game

Input parameters:

- `parentPath` (string): Path to the parent node. Default: "/root"
- `scenePath` (string, required): Resource path to the scene (e.g., "res://scenes/enemy.tscn")

### `game_remove_node` (~35 tokens)

Remove and free a node from the running game's scene tree

Input parameters:

- `nodePath` (string, required): Path to the node to remove

### `game_change_scene` (~50 tokens)

Switch to a different scene file in the running game

Input parameters:

- `scenePath` (string, required): Resource path to the scene (e.g., "res://scenes/levels/level2.tscn")

### `game_pause` (~35 tokens)

Pause or unpause the running game

Input parameters:

- `paused` (boolean): True to pause, false to unpause. Default: true

### `game_performance` (~20 tokens)

Get performance metrics (FPS, memory, draw calls)

### `game_wait` (~33 tokens)

Wait N frames in the running game

Input parameters:

- `frames` (number): Number of frames to wait. Default: 1

### `read_scene` (~46 tokens)

Read scene file as JSON node tree (headless)

Input parameters:

- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)

### `modify_scene_node` (~91 tokens)

Modify node properties in a scene file (headless)

Input parameters:

- `nodePath` (string, required): Path to the node within the scene (e.g., "root/Player/Sprite2D")
- `projectPath` (string, required): Godot project path
- `properties` (object, required): Properties to set on the node as key-value pairs
- `scenePath` (string, required): Scene file path (relative to project)

### `remove_scene_node` (~72 tokens)

Remove a node from a scene file (headless)

Input parameters:

- `nodePath` (string, required): Path to the node to remove (e.g., "root/Player/OldNode")
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)

### `read_project_settings` (~30 tokens)

Read project.godot as structured JSON

Input parameters:

- `projectPath` (string, required): Godot project path

### `modify_project_settings` (~100 tokens)

Modify a project.godot setting

Input parameters:

- `key` (string, required): Setting key (e.g., "run/main_scene", "window/size/viewport_width")
- `projectPath` (string, required): Godot project path
- `section` (string, required): Section in project.godot (e.g., "application", "display", "rendering")
- `value` (string, required): Value to set (as a string, will be written as-is)

### `list_project_files` (~79 tokens)

List project files, optionally filtered by extension

Input parameters:

- `extensions` (array): Optional file extensions to filter by (e.g., [".gd", ".tscn"]). Include the dot.
- `projectPath` (string, required): Godot project path
- `subdirectory` (string): Optional subdirectory to search in (e.g., "scripts/player")

### `game_connect_signal` (~89 tokens)

Connect a signal from one node to a method on another node in the running game

Input parameters:

- `method` (string, required): Method name to call on the target node
- `nodePath` (string, required): Path to the source node that emits the signal
- `signalName` (string, required): Name of the signal to connect
- `targetPath` (string, required): Path to the target node that receives the signal

### `game_disconnect_signal` (~68 tokens)

Disconnect a signal connection in the running game

Input parameters:

- `method` (string, required): Method name on the target
- `nodePath` (string, required): Path to the source node
- `signalName` (string, required): Name of the signal
- `targetPath` (string, required): Path to the target node

### `game_emit_signal` (~64 tokens)

Emit a signal on a node in the running game, optionally with arguments

Input parameters:

- `args` (array): Optional arguments to pass with the signal
- `nodePath` (string, required): Path to the node
- `signalName` (string, required): Name of the signal to emit

### `game_play_animation` (~77 tokens)

Control an AnimationPlayer node: play, stop, pause, or list animations

Input parameters:

- `action` (string): Action: "play", "stop", "pause", or "get_list"
- `animation` (string): Animation name (required for "play" action)
- `nodePath` (string, required): Path to the AnimationPlayer node

### `game_tween_property` (~147 tokens)

Tween a node property in the running game

Input parameters:

- `duration` (number): Duration in seconds. Default: 1.0
- `easeType` (number): Tween.EaseType enum value. Default: 2 (IN_OUT)
- `finalValue` (required): Target value. Use {x,y} for Vector2, {x,y,z} for Vector3, {r,g,b,a} for Color
- `nodePath` (string, required): Path to the node
- `property` (string, required): Property to tween (e.g., "position", "modulate")
- `transType` (number): Tween.TransitionType enum value. Default: 0 (LINEAR)

### `game_get_nodes_in_group` (~47 tokens)

Get all nodes belonging to a specific group in the running game

Input parameters:

- `group` (string, required): Group name (e.g., "enemies", "player", "checkpoints")

### `game_find_nodes_by_class` (~71 tokens)

Find all nodes of a specific class type in the running game

Input parameters:

- `className` (string, required): Class name to search for (e.g., "CharacterBody3D", "Light3D")
- `rootPath` (string): Root node path to start searching from. Default: "/root"

### `game_reparent_node` (~72 tokens)

Move a node to a new parent in the running game's scene tree

Input parameters:

- `keepGlobalTransform` (boolean): Whether to keep the global transform. Default: true
- `newParentPath` (string, required): Path to the new parent node
- `nodePath` (string, required): Path to the node to move

### `attach_script` (~90 tokens)

Attach a GDScript to a scene node (headless)

Input parameters:

- `nodePath` (string, required): Path to the node within the scene (e.g., "root/Player")
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)
- `scriptPath` (string, required): Path to the .gd script file (relative to project)

### `create_resource` (~92 tokens)

Create a .tres resource file (headless)

Input parameters:

- `projectPath` (string, required): Godot project path
- `properties` (object): Optional properties to set on the resource
- `resourcePath` (string, required): Where to save the .tres file (relative to project)
- `resourceType` (string, required): Godot class name (e.g., "StandardMaterial3D", "Theme", "Environment")

### `read_file` (~44 tokens)

Read a text file from a Godot project

Input parameters:

- `filePath` (string, required): File path relative to project root
- `projectPath` (string, required): Godot project path

### `write_file` (~57 tokens)

Create or overwrite a text file in a Godot project

Input parameters:

- `content` (string, required): File content to write
- `filePath` (string, required): File path relative to project root
- `projectPath` (string, required): Godot project path

### `delete_file` (~43 tokens)

Delete a file from a Godot project

Input parameters:

- `filePath` (string, required): File path relative to project root
- `projectPath` (string, required): Godot project path

### `create_directory` (~43 tokens)

Create a directory inside a Godot project

Input parameters:

- `directoryPath` (string, required): Directory path relative to project root
- `projectPath` (string, required): Godot project path

### `game_get_errors` (~21 tokens)

Get new push_error/push_warning messages since last call

### `game_get_logs` (~21 tokens)

Get new print output from the running game since last call

### `game_key_hold` (~58 tokens)

Hold a key down without auto-releasing

Input parameters:

- `action` (string): Godot input action name (e.g. "move_forward")
- `key` (string): Key name (e.g. "W", "Space", "Shift")

### `game_key_release` (~40 tokens)

Release a previously held key

Input parameters:

- `action` (string): Godot input action name to release
- `key` (string): Key name to release

### `game_scroll` (~81 tokens)

Send mouse scroll wheel event at position

Input parameters:

- `amount` (number): Scroll amount (clicks). Default: 1
- `direction` (string): "up", "down", "left", or "right". Default: "up"
- `x` (number, required): X position for scroll event
- `y` (number, required): Y position for scroll event

### `game_mouse_drag` (~98 tokens)

Drag mouse between two points over N frames

Input parameters:

- `button` (number): Mouse button (1=left). Default: 1
- `fromX` (number, required): Start X coordinate
- `fromY` (number, required): Start Y coordinate
- `steps` (number): Number of frames for the drag. Default: 10
- `toX` (number, required): End X coordinate
- `toY` (number, required): End Y coordinate

### `game_gamepad` (~85 tokens)

Send gamepad button or axis input event

Input parameters:

- `device` (number): Gamepad device index. Default: 0
- `index` (number, required): Button or axis index
- `type` (string, required): "button" or "axis"
- `value` (number, required): Value: 0/1 for buttons, -1.0 to 1.0 for axes

### `create_project` (~44 tokens)

Create a new Godot project from scratch

Input parameters:

- `projectName` (string, required): Name of the project
- `projectPath` (string, required): Directory where the project will be created

### `manage_autoloads` (~93 tokens)

Add, remove, or list autoloads in a Godot project

Input parameters:

- `action` (string, required): "list", "add", or "remove"
- `name` (string): Autoload name (required for add/remove)
- `path` (string): Script/scene path (required for add, e.g. "res://globals.gd")
- `projectPath` (string, required): Godot project path

### `manage_input_map` (~106 tokens)

Add, remove, or list input actions and bindings

Input parameters:

- `action` (string, required): "list", "add", or "remove"
- `actionName` (string): Input action name (required for add/remove)
- `deadzone` (number): Deadzone for the action. Default: 0.5
- `key` (string): Key to bind (for add, e.g. "W", "Space")
- `projectPath` (string, required): Godot project path

### `manage_export_presets` (~100 tokens)

Create or modify export preset configuration

Input parameters:

- `action` (string, required): "list", "add", or "remove"
- `name` (string): Preset name (required for add/remove)
- `platform` (string): Platform (for add, e.g. "Windows Desktop", "Linux", "Web")
- `projectPath` (string, required): Godot project path
- `runnable` (boolean): Whether this preset is runnable. Default: false

### `game_get_camera` (~19 tokens)

Get active camera position, rotation, and size

### `game_set_camera` (~82 tokens)

Move or rotate the active camera

Input parameters:

- `fov` (number): Field of view for Camera3D
- `position` (object): {x,y} or {x,y,z} for camera position
- `rotation` (object): {x,y,z} rotation in degrees
- `zoom` (object): {x,y} zoom for Camera2D

### `game_raycast` (~70 tokens)

Cast a ray and return collision results

Input parameters:

- `collisionMask` (number): Collision mask. Default: 0xFFFFFFFF
- `from` (object, required): Start point {x,y} or {x,y,z}
- `to` (object, required): End point {x,y} or {x,y,z}

### `game_get_audio` (~17 tokens)

Get audio bus layout and playing streams

### `game_spawn_node` (~90 tokens)

Create a new node of any type at runtime

Input parameters:

- `name` (string): Name for the new node. Default: auto-generated
- `parentPath` (string): Parent node path. Default: "/root"
- `properties` (object): Properties to set on the new node
- `type` (string, required): Node class name (e.g. "Sprite2D", "CharacterBody3D")

### `game_set_shader_param` (~84 tokens)

Set a shader parameter on a node's material

Input parameters:

- `nodePath` (string, required): Path to the node with a ShaderMaterial
- `paramName` (string, required): Shader parameter name
- `typeHint` (string): Optional type hint (e.g. "Color", "Vector2")
- `value` (required): Value to set (number, object, array, etc.)

### `game_audio_play` (~118 tokens)

Play, stop, or pause an AudioStreamPlayer node

Input parameters:

- `action` (string): Action: play, stop, pause, resume
- `bus` (string): Audio bus name
- `fromPosition` (number): Start position in seconds
- `nodePath` (string, required): Path to AudioStreamPlayer/2D/3D node
- `pitch` (number): Pitch scale
- `stream` (string): Optional res:// path to load a new stream
- `volume` (number): Volume (linear 0-1)

### `game_audio_bus` (~71 tokens)

Set volume, mute, or solo on an audio bus

Input parameters:

- `busName` (string): Bus name. Default: "Master"
- `mute` (boolean): Mute the bus
- `solo` (boolean): Solo the bus
- `volume` (number): Volume (linear 0-1)

### `game_navigate_path` (~70 tokens)

Query a navigation path between two points

Input parameters:

- `end` (object, required): End point {x,y} or {x,y,z}
- `optimize` (boolean): Use string-pulling optimization. Default: true
- `start` (object, required): Start point {x,y} or {x,y,z}

### `game_tilemap` (~117 tokens)

Get or set cells in a TileMapLayer node

Input parameters:

- `action` (string, required): Action: set_cells, get_cell, erase_cells, get_used_cells
- `cells` (array): Array of cell objects for set_cells/erase_cells
- `nodePath` (string, required): Path to TileMapLayer node
- `sourceId` (number): Filter by source_id (for get_used_cells)
- `x` (number): Cell X coordinate (for get_cell)
- `y` (number): Cell Y coordinate (for get_cell)

### `game_add_collision` (~108 tokens)

Add a collision shape to a physics body node

Input parameters:

- `collisionLayer` (number): Collision layer bitmask
- `collisionMask` (number): Collision mask bitmask
- `disabled` (boolean): Start disabled
- `parentPath` (string, required): Path to CollisionBody/Area node
- `shapeParams` (object): Shape dimensions (e.g. {radius, height})
- `shapeType` (string, required): Shape: box, sphere/circle, capsule, cylinder, ray, segment

### `game_environment` (~278 tokens)

Get or set environment and post-processing settings

Input parameters:

- `action` (string): Action: get or set. Default: set
- `ambientLightColor` (object): Ambient light color {r,g,b,a}
- `ambientLightEnergy` (number): Ambient light energy
- `backgroundColor` (object): Background color {r,g,b,a}
- `backgroundMode` (number): 0=clear, 1=custom_color, 2=sky, 3=canvas
- `brightness` (number): Brightness adjustment
- `contrast` (number): Contrast adjustment
- `fogDensity` (number): Fog density
- `fogEnabled` (boolean): Enable fog
- `fogLightColor` (object): Fog light color {r,g,b,a}
- `glowBloom` (number): Glow bloom
- `glowEnabled` (boolean): Enable glow
- `glowIntensity` (number): Glow intensity
- `saturation` (number): Saturation adjustment
- `ssaoEnabled` (boolean): Enable SSAO
- `ssaoIntensity` (number): SSAO intensity
- `ssaoRadius` (number): SSAO radius
- `ssrEnabled` (boolean): Enable SSR
- `tonemapMode` (number): 0=linear, 1=reinhardt, 2=filmic, 3=aces

### `game_manage_group` (~61 tokens)

Add or remove a node from a group, or list groups

Input parameters:

- `action` (string, required): Action: add, remove, get_groups, clear_group
- `group` (string): Group name
- `nodePath` (string): Path to the node

### `game_create_timer` (~94 tokens)

Create a Timer node with configuration

Input parameters:

- `autostart` (boolean): Auto-start the timer. Default: false
- `name` (string): Optional timer node name
- `oneShot` (boolean): One-shot mode. Default: false
- `parentPath` (string): Parent node path. Default: "/root"
- `waitTime` (number): Timer duration in seconds. Default: 1.0

### `game_set_particles` (~130 tokens)

Configure GPUParticles2D/3D node properties

Input parameters:

- `amount` (number): Number of particles
- `emitting` (boolean): Enable/disable emission
- `explosiveness` (number): Explosiveness ratio (0-1)
- `lifetime` (number): Particle lifetime in seconds
- `nodePath` (string, required): Path to GPUParticles node
- `oneShot` (boolean): One-shot mode
- `processMaterial` (object): ParticleProcessMaterial settings
- `randomness` (number): Randomness ratio (0-1)
- `speedScale` (number): Speed scale

### `game_create_animation` (~109 tokens)

Create an animation with tracks and keyframes

Input parameters:

- `animationName` (string, required): Name for the new animation
- `length` (number): Animation length in seconds. Default: 1.0
- `library` (string): Animation library name. Default: ""
- `loopMode` (number): 0=none, 1=linear, 2=pingpong
- `nodePath` (string, required): Path to AnimationPlayer node
- `tracks` (array): Array of track definitions

### `export_project` (~69 tokens)

Export a Godot project using a preset

Input parameters:

- `debug` (boolean): Use debug export. Default: false
- `outputPath` (string, required): Output file path for the exported build
- `presetName` (string, required): Export preset name
- `projectPath` (string, required): Godot project path

### `game_serialize_state` (~83 tokens)

Save or load node tree state as JSON

Input parameters:

- `action` (string): Action: save or load. Default: save
- `data` (object): State data to restore (for load)
- `maxDepth` (number): Max tree depth to serialize. Default: 5
- `nodePath` (string): Root node path. Default: "/root"

### `game_physics_body` (~159 tokens)

Configure physics body properties (mass, velocity, etc.)

Input parameters:

- `angularDamp` (number): Angular damping
- `angularVelocity`: Angular velocity (float for 2D, {x,y,z} for 3D)
- `bounce` (number): Physics material bounce
- `freeze` (boolean): Freeze the body
- `friction` (number): Physics material friction
- `gravityScale` (number): Gravity scale
- `linearDamp` (number): Linear damping
- `linearVelocity` (object): Linear velocity {x,y} or {x,y,z}
- `mass` (number): Body mass
- `nodePath` (string, required): Path to physics body node
- `sleeping` (boolean): Put body to sleep

### `game_create_joint` (~162 tokens)

Create a physics joint between two bodies

Input parameters:

- `damping` (number): Spring damping (spring_2d)
- `jointType` (string, required): Joint type: pin_2d, spring_2d, groove_2d, pin_3d, hinge_3d, cone_3d, slider_3d
- `length` (number): Length (spring_2d, groove_2d)
- `nodeAPath` (string): Path to first body
- `nodeBPath` (string): Path to second body
- `parentPath` (string, required): Parent node path for the joint
- `softness` (number): Softness (pin_2d)
- `stiffness` (number): Spring stiffness (spring_2d)

### `game_bone_pose` (~120 tokens)

Get or set bone poses on a Skeleton3D node

Input parameters:

- `action` (string): Action: list, get, or set. Default: list
- `boneIndex` (number): Bone index
- `boneName` (string): Bone name (alternative to index)
- `nodePath` (string, required): Path to Skeleton3D node
- `position` (object): Bone position {x,y,z}
- `rotation` (object): Bone rotation quaternion {x,y,z,w}
- `scale` (object): Bone scale {x,y,z}

### `game_ui_theme` (~46 tokens)

Apply theme overrides to a Control node

Input parameters:

- `nodePath` (string, required): Path to Control node
- `overrides` (object, required): Theme overrides: {colors, constants, fontSizes}

### `game_viewport` (~136 tokens)

Create or configure a SubViewport node

Input parameters:

- `action` (string): Action: create, configure, or get
- `height` (number): Viewport height
- `msaa` (number): MSAA level (0=disabled, 1=2x, 2=4x, 3=8x)
- `name` (string): Viewport name (for create)
- `nodePath` (string): SubViewport path (for configure/get)
- `parentPath` (string): Parent path (for create)
- `transparentBg` (boolean): Transparent background
- `width` (number): Viewport width

### `game_debug_draw` (~142 tokens)

Draw debug lines, spheres, or boxes in 3D

Input parameters:

- `action` (string, required): Action: line, sphere, box, or clear
- `center` (object): Sphere/box center {x,y,z}
- `color` (object): Draw color {r,g,b,a}. Default: red
- `duration` (number): Frames to persist (0=permanent)
- `from` (object): Line start {x,y,z}
- `radius` (number): Sphere radius. Default: 0.5
- `size` (object): Box size {x,y,z}
- `to` (object): Line end {x,y,z}

### `game_http_request` (~90 tokens)

HTTP GET/POST/PUT/DELETE with headers and body

Input parameters:

- `body` (string): Request body string
- `headers` (object): Request headers as key-value pairs
- `method` (string): HTTP method: GET, POST, PUT, DELETE. Default: GET
- `timeout` (number): Timeout in seconds. Default: 30
- `url` (string, required): Request URL

### `game_websocket` (~60 tokens)

WebSocket client connect/disconnect/send messages

Input parameters:

- `action` (string, required): Action: connect, disconnect, send, status
- `message` (string): Message to send (for send)
- `url` (string): WebSocket URL (for connect)

### `game_multiplayer` (~90 tokens)

ENet multiplayer create server/client/disconnect

Input parameters:

- `action` (string, required): Action: create_server, create_client, disconnect, status
- `address` (string): Server address for client. Default: 127.0.0.1
- `maxClients` (number): Max clients for server. Default: 32
- `port` (number): Server port. Default: 7000

### `game_rpc` (~99 tokens)

Call or configure RPC methods on nodes

Input parameters:

- `action` (string, required): Action: call, configure
- `args` (array): Arguments for the RPC call
- `channel` (number): Transfer channel
- `method` (string, required): Method name
- `mode` (string): RPC mode: any_peer, authority
- `nodePath` (string, required): Path to the node
- `sync` (string): Sync mode: call_local, call_remote

### `game_touch` (~109 tokens)

Simulate touch press/release/drag and gestures

Input parameters:

- `action` (string, required): Action: press, release, drag
- `index` (number): Touch index. Default: 0
- `steps` (number): Drag steps. Default: 10
- `toX` (number): Drag end X (for drag)
- `toY` (number): Drag end Y (for drag)
- `x` (number, required): Touch X position
- `y` (number, required): Touch Y position

### `game_input_state` (~79 tokens)

Query pressed keys, mouse position, connected pads

Input parameters:

- `action` (string): Action: query, warp_mouse, set_mouse_mode
- `mouseMode` (string): Mode: visible, hidden, captured, confined
- `x` (number): Mouse X (for warp_mouse)
- `y` (number): Mouse Y (for warp_mouse)

### `game_input_action` (~77 tokens)

Manage runtime InputMap actions and strength

Input parameters:

- `action` (string, required): Action: set_strength, add_action, remove_action, list
- `actionName` (string): Input action name
- `key` (string): Key name (for add_action)
- `strength` (number): Action strength 0.0-1.0

### `game_list_signals` (~31 tokens)

List all signals on a node with connections

Input parameters:

- `nodePath` (string, required): Path to the node

### `game_await_signal` (~58 tokens)

Await a signal with timeout and return args

Input parameters:

- `nodePath` (string, required): Path to the node
- `signalName` (string, required): Signal name to await
- `timeout` (number): Timeout in seconds. Default: 10

### `game_script` (~73 tokens)

Attach, detach, or get source of node scripts

Input parameters:

- `action` (string, required): Action: attach, detach, get_source
- `className` (string): Class the script extends
- `nodePath` (string, required): Path to the node
- `source` (string): GDScript source code (for attach)

### `game_window` (~107 tokens)

Get/set window size, fullscreen, title, position

Input parameters:

- `action` (string): Action: get or set. Default: get
- `borderless` (boolean): Borderless mode
- `fullscreen` (boolean): Fullscreen mode
- `height` (number): Window height
- `position` (object): Window position {x, y}
- `title` (string): Window title
- `vsync` (boolean): Enable vsync
- `width` (number): Window width

### `game_os_info` (~21 tokens)

Get platform, locale, screen, adapter, memory info

### `game_time_scale` (~48 tokens)

Get/set Engine.time_scale and timing info

Input parameters:

- `action` (string): Action: get or set. Default: get
- `timeScale` (number): Time scale value (for set)

### `game_process_mode` (~54 tokens)

Set node process mode (pausable/always/disabled)

Input parameters:

- `mode` (string, required): Mode: inherit, pausable, when_paused, always, disabled
- `nodePath` (string, required): Path to the node

### `game_world_settings` (~73 tokens)

Get/set gravity, physics FPS, and world settings

Input parameters:

- `action` (string): Action: get or set. Default: get
- `gravity` (number): Gravity magnitude
- `gravityDirection` (object): Gravity direction vector {x,y,z}
- `physicsFps` (number): Physics ticks per second

### `game_csg` (~150 tokens)

Create/configure CSG nodes with boolean operations

Input parameters:

- `action` (string, required): Action: create or configure
- `csgType` (string): CSG type: box, sphere, cylinder, mesh, combiner
- `height` (number): Height (cylinder)
- `material` (string): Material resource path
- `name` (string): Node name
- `nodePath` (string): Node path (for configure)
- `operation` (string): Boolean op: union, intersection, subtraction
- `parentPath` (string): Parent node path
- `radius` (number): Radius (sphere/cylinder)
- `size` (object): Size {x,y,z} (box)

### `game_multimesh` (~133 tokens)

Create/configure MultiMeshInstance3D for instancing

Input parameters:

- `action` (string, required): Action: create, set_instance, get_info
- `count` (number): Instance count
- `index` (number): Instance index (for set_instance)
- `meshType` (string): Mesh: box, sphere, cylinder, quad
- `name` (string): Node name
- `nodePath` (string): Node path (for set_instance/get_info)
- `parentPath` (string): Parent node path
- `transform` (object): Transform {origin:{x,y,z}, rotation:{x,y,z}}

### `game_procedural_mesh` (~102 tokens)

Generate meshes via ArrayMesh from vertex data

Input parameters:

- `indices` (array): Triangle indices [i0,i1,i2,...]
- `name` (string): Node name
- `normals` (array): Vertex normals [[x,y,z],...]
- `parentPath` (string, required): Parent node path
- `uvs` (array): UV coordinates [[u,v],...]
- `vertices` (array, required): Vertex positions [[x,y,z],...]

### `game_light_3d` (~148 tokens)

Create/configure 3D lights (directional/omni/spot)

Input parameters:

- `action` (string, required): Action: create or configure
- `color` (object): Light color {r,g,b}
- `energy` (number): Light energy/intensity
- `lightType` (string): Type: directional, omni, spot
- `name` (string): Node name
- `nodePath` (string): Node path (for configure)
- `parentPath` (string): Parent node path
- `range` (number): Light range (omni/spot)
- `shadows` (boolean): Enable shadow casting
- `spotAngle` (number): Spot cone angle in degrees

### `game_mesh_instance` (~103 tokens)

Create MeshInstance3D with primitive meshes

Input parameters:

- `height` (number): Mesh height
- `material` (string): Material resource path or color hex
- `meshType` (string, required): Mesh: box, sphere, cylinder, capsule, plane, quad
- `name` (string): Node name
- `parentPath` (string, required): Parent node path
- `radius` (number): Mesh radius
- `size` (object): Mesh size {x,y,z}

### `game_gridmap` (~104 tokens)

GridMap set/get/clear cells and query used cells

Input parameters:

- `action` (string, required): Action: set_cell, get_cell, clear, get_used
- `item` (number): MeshLibrary item index
- `nodePath` (string, required): Path to GridMap node
- `orientation` (number): Cell orientation index
- `x` (number): Cell X coordinate
- `y` (number): Cell Y coordinate
- `z` (number): Cell Z coordinate

### `game_3d_effects` (~82 tokens)

Create ReflectionProbe, Decal, or FogVolume

Input parameters:

- `effectType` (string, required): Type: reflection_probe, decal, fog_volume
- `intensity` (number): Effect intensity
- `name` (string): Node name
- `parentPath` (string, required): Parent node path
- `size` (object): Effect size {x,y,z}

### `game_gi` (~72 tokens)

Create/configure VoxelGI or LightmapGI

Input parameters:

- `giType` (string, required): Type: voxel_gi or lightmap_gi
- `name` (string): Node name
- `parentPath` (string, required): Parent node path
- `size` (object): Extents size {x,y,z}

### `game_path_3d` (~110 tokens)

Create Path3D/Curve3D and manage curve points

Input parameters:

- `action` (string, required): Action: create, add_point, set_points, get_points
- `name` (string): Node name
- `nodePath` (string): Path3D node path (for add/set/get)
- `parentPath` (string): Parent node path
- `point` (object): Single point {x,y,z}
- `points` (array): Array of points [{x,y,z},...]

### `game_sky` (~100 tokens)

Create/configure Sky with procedural/physical sky

Input parameters:

- `action` (string, required): Action: create or configure
- `bottomColor` (object): Horizon bottom color {r,g,b}
- `groundColor` (object): Ground color {r,g,b}
- `skyType` (string): Type: procedural or physical
- `sunEnergy` (number): Sun energy/brightness
- `topColor` (object): Sky top color {r,g,b}

### `game_camera_attributes` (~110 tokens)

Configure DOF, exposure, auto-exposure on camera

Input parameters:

- `action` (string): Action: get or set
- `autoExposure` (boolean): Enable auto exposure
- `autoExposureScale` (number): Auto exposure scale
- `dofBlurAmount` (number): DOF blur amount
- `dofBlurFar` (number): DOF far blur distance
- `dofBlurNear` (number): DOF near blur distance
- `exposureMultiplier` (number): Exposure multiplier

### `game_navigation_3d` (~101 tokens)

Create/configure NavigationRegion3D and bake

Input parameters:

- `action` (string, required): Action: create, bake, configure
- `agentHeight` (number): Agent height
- `agentRadius` (number): Agent radius
- `cellSize` (number): Navigation cell size
- `name` (string): Node name
- `nodePath` (string): Node path (for bake/configure)
- `parentPath` (string): Parent node path

### `game_physics_3d` (~97 tokens)

Area3D queries and point/shape intersection tests

Input parameters:

- `action` (string, required): Action: overlap, point_query, shape_query, ray
- `collisionMask` (number): Collision mask bitmask
- `from` (object): Ray/point origin {x,y,z}
- `nodePath` (string): Area3D/node path (for overlap)
- `to` (object): Ray end {x,y,z}

### `game_canvas` (~93 tokens)

Create/configure CanvasLayer and CanvasModulate

Input parameters:

- `action` (string, required): Action: create_layer, create_modulate, configure
- `color` (object): Modulate color {r,g,b,a}
- `layer` (number): Canvas layer number
- `name` (string): Node name
- `nodePath` (string): Node path (for configure)
- `parentPath` (string): Parent node path

### `game_canvas_draw` (~182 tokens)

2D drawing: line/rect/circle/polygon/text/clear

Input parameters:

- `action` (string, required): Action: line, rect, circle, polygon, text, clear
- `center` (object): Center point {x,y}
- `color` (object): Draw color {r,g,b,a}
- `filled` (boolean): Fill shape. Default: true
- `from` (object): Start point {x,y}
- `parentPath` (string): Parent node path for draw node
- `points` (array): Polygon points [{x,y},...]
- `radius` (number): Circle radius
- `rect` (object): Rectangle {x,y,w,h}
- `text` (string): Text to draw
- `to` (object): End point {x,y}
- `width` (number): Line width. Default: 2

### `game_light_2d` (~110 tokens)

Create/configure 2D lights and light occluders

Input parameters:

- `action` (string, required): Action: create_point, create_directional, create_occluder
- `color` (object): Light color {r,g,b,a}
- `energy` (number): Light energy
- `name` (string): Node name
- `nodePath` (string): Node path (for configure)
- `parentPath` (string): Parent node path
- `range` (number): Light texture range

### `game_parallax` (~106 tokens)

Create/configure ParallaxBackground and layers

Input parameters:

- `action` (string, required): Action: create_background, add_layer, configure
- `mirroring` (object): Mirroring {x,y}
- `motionOffset` (object): Motion offset {x,y}
- `motionScale` (object): Motion scale {x,y}
- `name` (string): Node name
- `nodePath` (string): Node path (for configure)
- `parentPath` (string): Parent node path

### `game_shape_2d` (~107 tokens)

Line2D/Polygon2D point manipulation

Input parameters:

- `action` (string, required): Action: add_point, set_points, clear, get_points
- `color` (object): Color {r,g,b,a}
- `nodePath` (string, required): Path to Line2D/Polygon2D node
- `point` (object): Single point {x,y}
- `points` (array): Array of points [{x,y},...]
- `width` (number): Line width

### `game_path_2d` (~107 tokens)

Path2D/Curve2D management and AnimatedSprite2D

Input parameters:

- `action` (string, required): Action: create, add_point, set_points, get_points
- `name` (string): Node name
- `nodePath` (string): Path2D node path
- `parentPath` (string): Parent node path (for create)
- `point` (object): Single point {x,y}
- `points` (array): Array of points [{x,y},...]

### `game_physics_2d` (~99 tokens)

Area2D queries and 2D point/shape intersections

Input parameters:

- `action` (string, required): Action: overlap, point_query, shape_query, ray
- `collisionMask` (number): Collision mask bitmask
- `from` (object): Origin point {x,y}
- `nodePath` (string): Area2D/node path (for overlap)
- `to` (object): End point {x,y} (for ray)

### `game_animation_tree` (~80 tokens)

AnimationTree state machine travel and params

Input parameters:

- `action` (string, required): Action: travel, set_param, get_state, get_params
- `nodePath` (string, required): Path to AnimationTree node
- `paramName` (string): Parameter name
- `paramValue`: Parameter value
- `stateName` (string): State name (for travel)

### `game_animation_control` (~83 tokens)

AnimationPlayer seek/queue/speed/info control

Input parameters:

- `action` (string, required): Action: seek, queue, set_speed, get_info, stop
- `animationName` (string): Animation name
- `nodePath` (string, required): Path to AnimationPlayer node
- `position` (number): Seek position in seconds
- `speed` (number): Playback speed scale

### `game_skeleton_ik` (~65 tokens)

SkeletonIK3D start/stop/set target position

Input parameters:

- `action` (string, required): Action: start, stop, set_target
- `nodePath` (string, required): Path to SkeletonIK3D node
- `target` (object): Target position {x,y,z}

### `game_audio_effect` (~90 tokens)

Add/remove/configure audio bus effects

Input parameters:

- `action` (string, required): Action: add, remove, configure, list
- `busName` (string): Audio bus name. Default: Master
- `effectType` (string): Effect: reverb, delay, chorus, eq, compressor, limiter
- `index` (number): Effect index
- `properties` (object): Effect properties to set

### `game_audio_bus_layout` (~72 tokens)

Create/remove/reorder audio buses and routing

Input parameters:

- `action` (string, required): Action: add, remove, move, set_send, list
- `busName` (string): Bus name
- `index` (number): Target index (for move)
- `sendTo` (string): Send target bus name

### `game_audio_spatial` (~101 tokens)

Configure AudioStreamPlayer3D spatial properties

Input parameters:

- `action` (string, required): Action: configure, get_info
- `attenuationModel` (string): Model: inverse, inverse_square, logarithmic
- `maxDb` (number): Maximum volume in dB
- `maxDistance` (number): Maximum audible distance
- `nodePath` (string, required): Path to AudioStreamPlayer3D
- `unitSize` (number): Unit size for distance attenuation

### `rename_file` (~59 tokens)

Rename or move a file within the project

Input parameters:

- `filePath` (string, required): Current file path (relative to project)
- `newPath` (string, required): New file path (relative to project)
- `projectPath` (string, required): Godot project path

### `manage_resource` (~68 tokens)

Read or modify .tres/.res resource files

Input parameters:

- `action` (string, required): Action: read or modify
- `projectPath` (string, required): Godot project path
- `properties` (object): Properties to modify
- `resourcePath` (string, required): Resource file path (relative to project)

### `create_script` (~97 tokens)

Create a GDScript file from a template

Input parameters:

- `className` (string): Optional class_name
- `extends` (string): Base class to extend. Default: Node
- `methods` (array): Method stubs to include
- `projectPath` (string, required): Godot project path
- `scriptPath` (string, required): Script file path (relative to project)
- `source` (string): Full source code (overrides template)

### `manage_scene_signals` (~104 tokens)

List/add/remove signal connections in .tscn files

Input parameters:

- `action` (string, required): Action: list, add, remove
- `method` (string): Target method name
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)
- `signalName` (string): Signal name
- `sourcePath` (string): Source node path
- `targetPath` (string): Target node path

### `manage_layers` (~85 tokens)

List/set named layer definitions in project

Input parameters:

- `action` (string, required): Action: list or set
- `layer` (number): Layer number (1-32)
- `layerType` (string): Type: render, physics_2d, physics_3d, navigation
- `name` (string): Layer name
- `projectPath` (string, required): Godot project path

### `manage_plugins` (~52 tokens)

List/enable/disable editor plugins

Input parameters:

- `action` (string, required): Action: list, enable, disable
- `pluginName` (string): Plugin name
- `projectPath` (string, required): Godot project path

### `manage_shader` (~86 tokens)

Create or read .gdshader files

Input parameters:

- `action` (string, required): Action: create or read
- `projectPath` (string, required): Godot project path
- `shaderPath` (string, required): Shader file path (relative to project)
- `shaderType` (string): Type: spatial, canvas_item, particles, sky
- `source` (string): Shader source code (for create)

### `manage_theme_resource` (~71 tokens)

Create/read/modify Theme .tres resources

Input parameters:

- `action` (string, required): Action: create, read, modify
- `projectPath` (string, required): Godot project path
- `properties` (object): Theme properties to set
- `resourcePath` (string, required): Theme file path (relative to project)

### `set_main_scene` (~45 tokens)

Set the main scene in project.godot

Input parameters:

- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene path (relative to project)

### `manage_scene_structure` (~103 tokens)

Rename/duplicate/move nodes within .tscn scenes

Input parameters:

- `action` (string, required): Action: rename, duplicate, move
- `newName` (string): New name (for rename)
- `newParentPath` (string): New parent path (for move)
- `nodePath` (string, required): Source node path in scene
- `projectPath` (string, required): Godot project path
- `scenePath` (string, required): Scene file path (relative to project)

### `manage_translations` (~54 tokens)

List/add/remove translation files in project

Input parameters:

- `action` (string, required): Action: list, add, remove
- `projectPath` (string, required): Godot project path
- `translationPath` (string): Translation file path

### `game_locale` (~61 tokens)

Set/get locale and translate strings at runtime

Input parameters:

- `action` (string, required): Action: get, set, translate
- `key` (string): Translation key (for translate)
- `locale` (string): Locale code (e.g. en, es, fr)

### `game_ui_control` (~101 tokens)

Set focus, anchors, tooltip, mouse filter on Control

Input parameters:

- `action` (string, required): Action: configure, grab_focus, release_focus, get_info
- `anchorPreset` (number): Anchor preset value
- `minSize` (object): Minimum size {x,y}
- `mouseFilter` (string): Mouse filter: stop, pass, ignore
- `nodePath` (string, required): Path to Control node
- `tooltip` (string): Tooltip text

### `game_ui_text` (~94 tokens)

LineEdit/TextEdit/RichTextLabel text operations

Input parameters:

- `action` (string, required): Action: get, set, append, clear, select, bbcode
- `caretPosition` (number): Caret column position
- `nodePath` (string, required): Path to text control
- `selectionFrom` (number): Selection start
- `selectionTo` (number): Selection end
- `text` (string): Text content

### `game_ui_popup` (~86 tokens)

Show/hide/popup for Popup/Dialog/Window nodes

Input parameters:

- `action` (string, required): Action: popup_centered, popup, hide, get_info
- `nodePath` (string, required): Path to Popup/Dialog/Window
- `size` (object): Popup size {x,y}
- `text` (string): Dialog body text
- `title` (string): Dialog title text

### `game_ui_tree` (~93 tokens)

Tree control: get/select/collapse/add/remove items

Input parameters:

- `action` (string, required): Action: get_items, select, collapse, expand, add, remove
- `column` (number): Column index. Default: 0
- `itemPath` (string): Item path (slash-separated indices)
- `nodePath` (string, required): Path to Tree control
- `text` (string): Item text (for add)

### `game_ui_item_list` (~77 tokens)

ItemList/OptionButton: get/select/add/remove items

Input parameters:

- `action` (string, required): Action: get_items, select, add, remove, clear
- `index` (number): Item index
- `nodePath` (string, required): Path to ItemList/OptionButton
- `text` (string): Item text (for add)

### `game_ui_tabs` (~70 tokens)

TabContainer/TabBar: get/set current tab

Input parameters:

- `action` (string, required): Action: get_tabs, set_current, set_title
- `index` (number): Tab index
- `nodePath` (string, required): Path to TabContainer/TabBar
- `title` (string): Tab title

### `game_ui_menu` (~93 tokens)

PopupMenu/MenuBar: add/remove/get menu items

Input parameters:

- `action` (string, required): Action: get_items, add, remove, set_checked, clear
- `checked` (boolean): Checked state
- `id` (number): Item ID
- `index` (number): Item index
- `nodePath` (string, required): Path to PopupMenu/MenuBar
- `text` (string): Item text (for add)

### `game_ui_range` (~108 tokens)

ProgressBar/Slider/SpinBox/ColorPicker get/set

Input parameters:

- `action` (string, required): Action: get or set
- `color` (object): Color {r,g,b,a} (for ColorPicker)
- `maxValue` (number): Maximum value
- `minValue` (number): Minimum value
- `nodePath` (string, required): Path to Range/ColorPicker node
- `step` (number): Step value
- `value` (number): Value (for Range nodes)

### `game_render_settings` (~145 tokens)

Get/set MSAA, FXAA, TAA, scaling mode/scale

Input parameters:

- `action` (string): Action: get or set
- `fxaa` (boolean): Enable FXAA
- `msaa2d` (number): MSAA 2D mode (0-3)
- `msaa3d` (number): MSAA 3D mode (0-3)
- `scalingMode` (number): Scaling mode (0=bilinear, 1=FSR1, 2=FSR2)
- `scalingScale` (number): Render scale (0.0-1.0)
- `taa` (boolean): Enable TAA

### `game_resource` (~72 tokens)

Runtime resource load, save, or preload

Input parameters:

- `action` (string, required): Action: load, save, exists
- `nodePath` (string): Node path (for save - saves node resource)
- `path` (string, required): Resource path (res://)
- `property` (string): Property name holding the resource

### `game_visual_shader` (~185 tokens)

Create and edit VisualShader graphs: add/connect/disconnect nodes

Input parameters:

- `action` (string, required): Action: create, add_node, connect, disconnect, get_nodes, apply
- `fromNode` (number): Source node ID (for connect/disconnect)
- `fromPort` (number): Source port index
- `nodeClass` (string): VisualShaderNode class name (for add_node)
- `nodePath` (string): Target node path (for apply)
- `position` (object): Node position {x, y} (for add_node)
- `shaderId` (number): Shader resource ID (for multi-shader scenes)
- `shaderType` (string): Shader type: spatial, canvas_item, particles, sky, fog
- `toNode` (number): Destination node ID (for connect/disconnect)
- `toPort` (number): Destination port index

### `game_terrain` (~194 tokens)

Create/modify terrain meshes from heightmap data

Input parameters:

- `action` (string, required): Action: create, modify, get_height, paint
- `color` (object): Vertex color {r,g,b,a} (for paint)
- `depth` (number): Terrain depth in vertices
- `heightData` (array): Array of float height values (for create)
- `heightDelta` (number): Height change amount (for modify)
- `maxHeight` (number): Maximum terrain height
- `name` (string): Node name
- `nodePath` (string): Terrain node path
- `parentPath` (string): Parent node path
- `radius` (number): Brush radius (for modify/paint)
- `width` (number): Terrain width in vertices
- `x` (number): X position (for modify/get_height/paint)
- `z` (number): Z position (for modify/get_height/paint)

### `game_video` (~144 tokens)

Video playback control: play, pause, stop, seek on VideoStreamPlayer

Input parameters:

- `action` (string, required): Action: create, play, pause, stop, seek, get_status
- `autoplay` (boolean): Auto-play on ready
- `loop` (boolean): Enable looping
- `name` (string): Node name (for create)
- `nodePath` (string): Path to VideoStreamPlayer node
- `parentPath` (string): Parent node path (for create)
- `position` (number): Seek position in seconds
- `videoPath` (string): res:// path to video file
- `volume` (number): Volume (linear 0-1)

### `manage_ci_pipeline` (~87 tokens)

Create/read GitHub Actions workflow for automated Godot exports

Input parameters:

- `action` (string, required): Action: create or read
- `godotVersion` (string): Godot version (e.g. 4.3-stable)
- `platforms` (array): Target platforms: windows, linux, macos, web
- `projectPath` (string, required): Absolute path to Godot project

### `manage_docker_export` (~98 tokens)

Create Dockerfile for headless Godot export

Input parameters:

- `action` (string, required): Action: create or read
- `baseImage` (string): Base Docker image (default: ubuntu:22.04)
- `exportPreset` (string): Export preset name
- `godotVersion` (string): Godot version (e.g. 4.3-stable)
- `projectPath` (string, required): Absolute path to Godot project

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp#diagnostics

## Score history

- 2026-08-07: 61
- 2026-08-06: 60
- 2026-08-05: 60
- 2026-08-04: 59
- 2026-08-03: 55
- 2026-08-02: 55
- 2026-08-01: 5
- 2026-07-31: 21
- 2026-07-30: 6
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@tugcantopaloglu/godot-mcp
- Socket report: https://socket.dev/npm/package/@tugcantopaloglu/godot-mcp
- Repository: https://github.com/tugcantopaloglu/godot-mcp
- Changelog RSS feed: https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp.json
- HTML version of this page: https://verifymcp.io/servers/tugcantopaloglu-godot-mcp/tugcantopaloglu-godot-mcp
