Godot MCP - Full Control
The Godot MCP - Full Control server provides AI assistants with 157 tools for comprehensive control over the Godot game engine, spanning nearly every aspect of game development and runtime interaction.
Project & File Management
Create, open, run, and stop Godot projects (including .NET/C#)
Read/modify
project.godotsettings; list and filter project filesRead, write, delete files and create directory structures
Manage autoloads, input maps, export presets, and plugins
Scene Management
Create scenes, add/remove/rename/reparent nodes, load sprites
Save scenes and export as MeshLibrary resources
Headless operations (no running game): read
.tscnfiles as JSON, modify node properties, attach scripts, create.tresresource files
Runtime Interaction
Execute arbitrary GDScript (
game_eval) withawaitsupport and return valuesGet/set properties, call methods, and fully introspect any node
Instantiate/remove/reparent nodes and change scenes at runtime
Connect, disconnect, emit, and await signals with configurable timeouts
Capture screenshots, errors, warnings, and print output from the running game
Input Simulation
Mouse clicks, movement, drag, scroll; key press/hold/release
Gamepad button/axis input, touch events and gestures
Query input state (pressed keys, mouse position, connected gamepads)
Manage runtime InputMap actions
Animation & Tweening
Control AnimationPlayer (play, stop, pause, seek, queue)
Tween properties with configurable easing/transitions
Manage AnimationTree state machines, SkeletonIK3D, and bone poses
Create animations with tracks and keyframes
Audio
Play, stop, pause audio streams; manage audio buses (volume, mute, solo, effects)
Configure AudioStreamPlayer3D spatial properties; create/remove/reorder buses
Camera, Physics & Navigation
Get/set 2D/3D camera properties (position, rotation, FOV, zoom)
Physics raycasts (auto-detects 2D/3D), Area2D/Area3D queries
Add collision shapes, configure physics bodies (mass, velocity, damping) and joints (pin, spring, hinge, cone, slider)
Query navigation paths (2D/3D)
3D Rendering & Geometry
CSG nodes with boolean ops, MultiMeshInstance3D, procedural meshes
Lights (directional, omni, spot), MeshInstance3D with primitive meshes
GridMap, ReflectionProbe, Decal, FogVolume
VoxelGI/LightmapGI, Path3D/Curve3D, Sky, camera DOF/exposure
NavigationRegion3D, post-processing (fog, glow, SSAO, tonemap)
2D Systems
CanvasLayer/CanvasModulate, 2D drawing (line, rect, circle, polygon, text)
2D lights/occluders, ParallaxBackground, Line2D/Polygon2D, Path2D, AnimatedSprite2D
TileMapLayer cell get/set
UI Controls
Focus, anchors, tooltips, mouse filter on Control nodes
LineEdit/TextEdit/RichTextLabel operations; popups and dialogs
Tree, ItemList, OptionButton, TabContainer, MenuBar, range widgets
Apply theme overrides to Control nodes
Scripting & Diagnostics
Create GDScript and C# scripts from templates
Validate single or batch GDScript files for syntax/type errors (headless)
Attach, detach, or get the source of node scripts at runtime
Networking
HTTP GET/POST/PUT/DELETE with headers and body
WebSocket client connect/disconnect/send
ENet multiplayer server/client creation; RPC method calls
System & Window
Get/set window size, fullscreen, title, position
OS/platform info (locale, screen, adapter, memory)
Engine time scale, node process modes, gravity, physics FPS, world settings
Game Control & Debugging
Pause/unpause; get performance metrics (FPS, memory, draw calls)
Wait a specified number of frames; query nodes by group or class
Draw debug geometry (lines, spheres, boxes) in 3D
Save/load entire node tree state as JSON
Editor & Project Tools
Rename/move files; manage
.tres/.resresources; manage signals in.tscnfilesNamed layer definitions, shaders (
.gdshader), themes, translations, localeSet the main scene; enable/disable editor plugins
Export projects using presets (CI/CD ready)
Get/set MSAA, FXAA, TAA, and scaling settings
Provides full control over the Godot game engine, including scene manipulation, runtime code execution, animation, physics, audio, networking, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Godot MCP - Full ControlSpawn a new enemy at position (100, 200)"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Godot MCP - Full Control
A comprehensive Model Context Protocol (MCP) server that gives AI assistants full control over the Godot game engine. 157 tools spanning networking, 3D/2D rendering, UI controls, audio effects, animation trees, file I/O, runtime code execution, property inspection, scene manipulation, signal management, physics, project creation, and more.
Acknowledgments
This project is built upon and extends godot-mcp by Solomon Elias (Coding-Solo). The original project provided the foundational architecture including the TypeScript MCP server, headless GDScript operations system, and TCP-based runtime interaction server. Thank you for making this possible with your excellent open-source work!
Related MCP server: Gear
What's New (Improvements Over Original)
The original godot-mcp provided 20 tools for basic project management and scene creation. This fork extends it to 157 tools with the following major additions:
New in 3.1
validate_scriptautoload resolution - Script validation now compiles the target through aSceneTreeat_initialize()(after project autoloads are registered) instead of--check-onlyat_init(). References to autoload singletons no longer produce falseIdentifier not founderrors, while real syntax/type errors are still caught. Verified building a full game whose scripts reference several autoloads.manage_input_mapevent merging - Adding a second key to an existing input action now merges it into that action'seventsarray (withphysical_keycodede-duplication) instead of writing a duplicateactionname=line, which previously leftproject.godotmalformed and silently dropped earlier bindings.
New in 3.0
.NET / C# support - Scaffold C# projects and generate C# scripts (
create_projectwithdotnet: true,create_csharp_script); the.csprojSDK version is matched to your installed Godot.GDScript diagnostics - Validate scripts for syntax and type errors without running the game (
validate_script, andvalidate_scriptsfor all git-changed or project-wide files).Correctness and robustness fixes across the headless scene operations and the runtime interaction server (resource-typed properties now persist, reparenting works, runtime commands are correlated by request id, and the tools survive projects with warnings-as-errors). Requires Godot 4.4 or later; tested and working with the latest Godot 4.7.
Runtime Code Execution
game_eval- Execute arbitrary GDScript code in the running game with return valuesFull
awaitsupport for async GDScript codeWorks even when the game is paused (
PROCESS_MODE_ALWAYS)
Runtime Node Inspection & Manipulation
game_get_property/game_set_property- Read/write any property on any node by pathgame_call_method- Call any method on any node with argumentsgame_get_node_info- Full node introspection: properties, signals, methods, childrengame_instantiate_scene- Dynamically add scenes to the running gamegame_remove_node- Remove nodes at runtimegame_change_scene- Switch scenes at runtimegame_reparent_node- Move nodes between parents
Signal System
game_connect_signal- Wire up signal connections at runtimegame_disconnect_signal- Remove signal connectionsgame_emit_signal- Emit signals with arguments
Animation & Tweening
game_play_animation- Control AnimationPlayer (play, stop, pause, list)game_tween_property- Smooth property animation with configurable easing
Game Control & Debugging
game_pause- Pause/unpause the gamegame_performance- FPS, frame time, memory, object counts, draw callsgame_wait- Wait N frames (timing-sensitive operations)game_get_nodes_in_group- Query nodes by groupgame_find_nodes_by_class- Find all nodes of a specific class
Headless Scene Operations (No Running Game Needed)
read_scene- Parse any .tscn file and get full node tree with properties as JSONmodify_scene_node- Change node properties in scene filesremove_scene_node- Remove nodes from scene filesattach_script- Attach GDScript files to nodes in scenescreate_resource- Create .tres resource files (materials, themes, etc.)
Project Management
read_project_settings- Parse project.godot as structured JSONmodify_project_settings- Change project settings programmaticallylist_project_files- List and filter project files by extension
File I/O
read_file/write_file/delete_file- Full file system access within Godot projectscreate_directory- Create directory structures for scripts, scenes, assets
Error & Log Capture
game_get_errors- Get new push_error/push_warning messages since last callgame_get_logs- Get new print output from the running game since last call
Enhanced Input
game_key_hold/game_key_release- Hold keys down for movement testing (WASD etc.)game_scroll- Mouse scroll wheel eventsgame_mouse_drag- Drag between two points over multiple framesgame_gamepad- Gamepad button and axis input events
Project Creation & Configuration
create_project- Create a new Godot project from scratch (passdotnet: trueto scaffold a .NET/C# project)create_csharp_script- Create a C# script in a Godot .NET projectmanage_autoloads- Add, remove, or list autoloadsmanage_input_map- Add, remove, or list input actions and key bindingsmanage_export_presets- Create or modify export preset configuration
.NET / C# Support
create_projectwithdotnet: true- Scaffold a Godot .NET project (.csprojwithGodot.NET.Sdkmatched to your Godot version, plus the"C#"feature flag)create_csharp_script- Generate an idiomatic C# script (partial class, correct_Ready/_Processoverride signatures); the class name is kept in sync with the file name so Godot can attach itget_project_inforeports anisDotnetfield
GDScript Diagnostics
validate_script- Check a single GDScript file for syntax and type errors headlessly, returning{ valid, errors: [{ message, file, line }] }validate_scripts- Batch-validate all git-changed.gdfiles (or the whole project), so an agent can verify its edits before running the game
Camera, Physics & Audio
game_get_camera/game_set_camera- Query and control 2D/3D camerasgame_raycast- Cast physics rays (auto-detects 2D vs 3D)game_get_audio- Get audio bus layout and playing streamsgame_spawn_node- Create any node type at runtime with propertiesgame_set_shader_param- Set shader parameters on materialsgame_audio_play/game_audio_bus- Full audio playback and bus controlgame_navigate_path- Query navigation paths (2D/3D)game_tilemap- Get/set TileMapLayer cellsgame_add_collision- Add collision shapes to physics bodiesgame_environment- Configure post-processing (fog, glow, SSAO, tonemap, etc.)game_manage_group- Add/remove nodes from groupsgame_create_timer- Create timer nodes programmaticallygame_set_particles- Configure GPUParticles2D/3D properties and process materialsgame_create_animation- Create animations with value/method/bezier/audio tracks and keyframesexport_project- Trigger headless project export builds (CI/CD ready)game_serialize_state- Save/load entire node tree state as JSONgame_physics_body- Configure mass, velocity, damping, friction, bouncegame_create_joint- Create physics joints (pin, spring, hinge, cone, slider)game_bone_pose- Get/set skeleton bone poses for character animationgame_ui_theme- Apply color, constant, and font size theme overridesgame_viewport- Create/configure SubViewport nodesgame_debug_draw- Draw debug geometry (lines, spheres, boxes)
Networking
game_http_request- HTTP GET/POST/PUT/DELETE with headers and bodygame_websocket- WebSocket client connect/disconnect/send messagesgame_multiplayer- ENet multiplayer create server/client/disconnectgame_rpc- Call or configure RPC methods on nodes
System & Window Control
game_script- Attach, detach, or get source of node scripts at runtimegame_window- Get/set window size, fullscreen, title, positiongame_os_info- Get platform, locale, screen, adapter, memory infogame_time_scale- Get/set Engine.time_scale and timing infogame_process_mode- Set node process mode (pausable/always/disabled)game_world_settings- Get/set gravity, physics FPS, and world settings
Advanced Signals & Input
game_list_signals- List all signals on a node with connectionsgame_await_signal- Await a signal with timeout and return argsgame_touch- Simulate touch press/release/drag and gesturesgame_input_state- Query pressed keys, mouse position, connected padsgame_input_action- Manage runtime InputMap actions and strength
3D Rendering & Geometry
game_csg- Create/configure CSG nodes with boolean operationsgame_multimesh- Create/configure MultiMeshInstance3D for instancinggame_procedural_mesh- Generate meshes via ArrayMesh from vertex datagame_light_3d- Create/configure 3D lights (directional/omni/spot)game_mesh_instance- Create MeshInstance3D with primitive meshesgame_gridmap- GridMap set/get/clear cells and query used cellsgame_3d_effects- Create ReflectionProbe, Decal, or FogVolumegame_gi- Create/configure VoxelGI or LightmapGIgame_path_3d- Create Path3D/Curve3D and manage curve pointsgame_sky- Create/configure Sky with procedural/physical skygame_camera_attributes- Configure DOF, exposure, auto-exposure on cameragame_navigation_3d- Create/configure NavigationRegion3D and bakegame_physics_3d- Area3D queries and point/shape intersection tests
2D Systems
game_canvas- Create/configure CanvasLayer and CanvasModulategame_canvas_draw- 2D drawing: line/rect/circle/polygon/text/cleargame_light_2d- Create/configure 2D lights and light occludersgame_parallax- Create/configure ParallaxBackground and layersgame_shape_2d- Line2D/Polygon2D point manipulationgame_path_2d- Path2D/Curve2D management and AnimatedSprite2Dgame_physics_2d- Area2D queries and 2D point/shape intersections
Advanced Animation
game_animation_tree- AnimationTree state machine travel and paramsgame_animation_control- AnimationPlayer seek/queue/speed/info controlgame_skeleton_ik- SkeletonIK3D start/stop/set target position
Advanced Audio
game_audio_effect- Add/remove/configure audio bus effectsgame_audio_bus_layout- Create/remove/reorder audio buses and routinggame_audio_spatial- Configure AudioStreamPlayer3D spatial properties
Editor & Project Tools
rename_file- Rename or move a file within the projectmanage_resource- Read or modify .tres/.res resource filescreate_script- Create a GDScript file from a templatevalidate_script- Check a GDScript file for syntax/type errors headlessly (no run needed)validate_scripts- Batch-check GDScript files: git-changed ones by default, or allmanage_scene_signals- List/add/remove signal connections in .tscn filesmanage_layers- List/set named layer definitions in projectmanage_plugins- List/enable/disable editor pluginsmanage_shader- Create or read .gdshader filesmanage_theme_resource- Create/read/modify Theme .tres resourcesset_main_scene- Set the main scene in project.godotmanage_scene_structure- Rename/duplicate/move nodes within .tscn scenesmanage_translations- List/add/remove translation files in projectgame_locale- Set/get locale and translate strings at runtime
UI Controls
game_ui_control- Set focus, anchors, tooltip, mouse filter on Controlgame_ui_text- LineEdit/TextEdit/RichTextLabel text operationsgame_ui_popup- Show/hide/popup for Popup/Dialog/Window nodesgame_ui_tree- Tree control: get/select/collapse/add/remove itemsgame_ui_item_list- ItemList/OptionButton: get/select/add/remove itemsgame_ui_tabs- TabContainer/TabBar: get/set current tabgame_ui_menu- PopupMenu/MenuBar: add/remove/get menu itemsgame_ui_range- ProgressBar/Slider/SpinBox/ColorPicker get/set
Rendering & Resources
game_render_settings- Get/set MSAA, FXAA, TAA, scaling mode/scalegame_resource- Runtime resource load, save, or preload
Robustness Improvements
Reentrancy guard - Prevents concurrent command processing during async operations
Full type conversion - Supports Vector2/3, Color, Quaternion, Basis, Transform2D/3D, AABB, Rect2, and all packed array types
Smart property type detection - Uses node's
get_property_list()for automatic type conversionPackedArray serialization - Proper JSON arrays instead of string fallback
Graceful error handling - Scene read fallback to raw .tscn text on missing dependencies
All 157 Tools
Project Management (7 tools)
Tool | Description |
| Launch Godot editor for a project |
| Run a Godot project and capture output |
| Stop the running project |
| Get console output and errors |
| Get installed Godot version |
| Find Godot projects in a directory |
| Get project metadata |
Scene Management (7 tools)
Tool | Description |
| Create a new scene with a root node type |
| Add a node to an existing scene |
| Load a texture into a Sprite2D node |
| Export a scene as MeshLibrary |
| Save a scene (with optional variant path) |
| Get UID for a file (Godot 4.4+) |
| Resave resources to update UIDs |
Headless Scene Operations (5 tools)
Tool | Description |
| Read full scene tree as JSON |
| Modify node properties in a scene file |
| Remove a node from a scene file |
| Attach a GDScript to a scene node |
| Create a .tres resource file |
Project Settings (3 tools)
Tool | Description |
| Parse project.godot as JSON |
| Change a project setting |
| List/filter project files |
Runtime Input (4 tools)
Tool | Description |
| Capture a screenshot (base64 PNG) |
| Click at a position |
| Send key press or input action |
| Move the mouse |
Runtime Inspection (3 tools)
Tool | Description |
| Get all visible UI elements |
| Get full scene tree structure |
| Detailed node introspection |
Runtime Code Execution (1 tool)
Tool | Description |
| Execute arbitrary GDScript with return values |
Runtime Node Manipulation (7 tools)
Tool | Description |
| Get any node property |
| Set any node property (auto type conversion) |
| Call any method on a node |
| Add a PackedScene to the running tree |
| Remove a node from the tree |
| Switch to a different scene |
| Move a node to a new parent |
Runtime Signals (5 tools)
Tool | Description |
| Connect a signal to a method |
| Disconnect a signal |
| Emit a signal with arguments |
| List all signals on a node with connections |
| Await a signal with timeout and return args |
Runtime Animation (2 tools)
Tool | Description |
| Control AnimationPlayer |
| Tween a property with easing |
Runtime Utilities (5 tools)
Tool | Description |
| Pause/unpause the game |
| Get FPS, memory, draw calls |
| Wait N frames |
| Query nodes by group |
| Find nodes by class type |
File I/O (4 tools)
Tool | Description |
| Read a text file from a Godot project |
| Create or overwrite a text file |
| Delete a file from a project |
| Create a directory inside a project |
Error & Log Capture (2 tools)
Tool | Description |
| Get new errors/warnings since last call |
| Get new print output since last call |
Enhanced Input (8 tools)
Tool | Description |
| Hold a key down (no auto-release) |
| Release a held key |
| Mouse scroll wheel event |
| Drag between two points over N frames |
| Gamepad button or axis input |
| Simulate touch press/release/drag and gestures |
| Query pressed keys, mouse position, connected pads |
| Manage runtime InputMap actions and strength |
Project Creation (5 tools)
Tool | Description |
| Create a new Godot project (supports |
| Create a C# script in a Godot .NET project |
| Add, remove, or list autoloads |
| Add, remove, or list input actions |
| Create or modify export presets |
Advanced Runtime (24 tools)
Tool | Description |
| Get active camera position/rotation/zoom |
| Move or rotate the active camera |
| Cast a ray and return collision results |
| Get audio bus layout and playing streams |
| Create a new node of any type at runtime |
| Set a shader parameter on a node's material |
| Play, stop, or pause an AudioStreamPlayer node |
| Set volume, mute, or solo on an audio bus |
| Query a navigation path between two points |
| Get or set cells in a TileMapLayer node |
| Add a collision shape to a physics body node |
| Get or set environment and post-processing settings |
| Add or remove a node from a group, or list groups |
| Create a Timer node with configuration |
| Configure GPUParticles2D/3D node properties |
| Create an animation with tracks and keyframes |
| Save or load node tree state as JSON |
| Configure physics body properties (mass, velocity) |
| Create a physics joint between two bodies |
| Get or set bone poses on a Skeleton3D node |
| Apply theme overrides to a Control node |
| Create or configure a SubViewport node |
| Draw debug lines, spheres, or boxes in 3D |
Build & Export (1 tool)
Tool | Description |
| Export a Godot project using a preset |
Networking (4 tools)
Tool | Description |
| HTTP GET/POST/PUT/DELETE with headers and body |
| WebSocket client connect/disconnect/send messages |
| ENet multiplayer create server/client/disconnect |
| Call or configure RPC methods on nodes |
System & Window (6 tools)
Tool | Description |
| Attach, detach, or get source of node scripts |
| Get/set window size, fullscreen, title, position |
| Get platform, locale, screen, adapter, memory info |
| Get/set Engine.time_scale and timing info |
| Set node process mode (pausable/always/disabled) |
| Get/set gravity, physics FPS, and world settings |
3D Rendering & Geometry (13 tools)
Tool | Description |
| Create/configure CSG nodes with boolean operations |
| Create/configure MultiMeshInstance3D for instancing |
| Generate meshes via ArrayMesh from vertex data |
| Create/configure 3D lights (directional/omni/spot) |
| Create MeshInstance3D with primitive meshes |
| GridMap set/get/clear cells and query used cells |
| Create ReflectionProbe, Decal, or FogVolume |
| Create/configure VoxelGI or LightmapGI |
| Create Path3D/Curve3D and manage curve points |
| Create/configure Sky with procedural/physical sky |
| Configure DOF, exposure, auto-exposure on camera |
| Create/configure NavigationRegion3D and bake |
| Area3D queries and point/shape intersection tests |
2D Systems (7 tools)
Tool | Description |
| Create/configure CanvasLayer and CanvasModulate |
| 2D drawing: line/rect/circle/polygon/text/clear |
| Create/configure 2D lights and light occluders |
| Create/configure ParallaxBackground and layers |
| Line2D/Polygon2D point manipulation |
| Path2D/Curve2D management and AnimatedSprite2D |
| Area2D queries and 2D point/shape intersections |
Advanced Animation (3 tools)
Tool | Description |
| AnimationTree state machine travel and params |
| AnimationPlayer seek/queue/speed/info control |
| SkeletonIK3D start/stop/set target position |
Advanced Audio (3 tools)
Tool | Description |
| Add/remove/configure audio bus effects |
| Create/remove/reorder audio buses and routing |
| Configure AudioStreamPlayer3D spatial properties |
Editor & Project Tools (14 tools)
Tool | Description |
| Rename or move a file within the project |
| Read or modify .tres/.res resource files |
| Create a GDScript file from a template |
| Check a GDScript file for syntax/type errors (headless) |
| Batch-check GDScript files (git-changed by default, or all) |
| List/add/remove signal connections in .tscn files |
| List/set named layer definitions in project |
| List/enable/disable editor plugins |
| Create or read .gdshader files |
| Create/read/modify Theme .tres resources |
| Set the main scene in project.godot |
| Rename/duplicate/move nodes within .tscn scenes |
| List/add/remove translation files in project |
| Set/get locale and translate strings at runtime |
UI Controls (8 tools)
Tool | Description |
| Set focus, anchors, tooltip, mouse filter on Control |
| LineEdit/TextEdit/RichTextLabel text operations |
| Show/hide/popup for Popup/Dialog/Window nodes |
| Tree control: get/select/collapse/add/remove items |
| ItemList/OptionButton: get/select/add/remove items |
| TabContainer/TabBar: get/set current tab |
| PopupMenu/MenuBar: add/remove/get menu items |
| ProgressBar/Slider/SpinBox/ColorPicker get/set |
Rendering & Resources (2 tools)
Tool | Description |
| Get/set MSAA, FXAA, TAA, scaling mode/scale |
| Runtime resource load, save, or preload |
Requirements
Godot Engine 4.4 or later (the headless operations script and UID features require 4.4+); tested and working with the latest Godot 4.7
(Optional) .NET SDK 8.0+ and the Godot .NET (C#) build, only if you use
create_project'sdotnet: trueflag orcreate_csharp_scriptNode.js >= 18.0.0
An AI assistant that supports MCP (Claude Code, Cline, Cursor, etc.)
Installation
git clone https://github.com/tugcantopaloglu/godot-mcp.git
cd godot-mcp
npm install
npm run buildConfiguration
Claude Code
Add to your Claude Code MCP settings:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"],
"env": {
"GODOT_PATH": "/path/to/godot",
"DEBUG": "true"
}
}
}
}Cline (VS Code)
Add to your Cline MCP settings (cline_mcp_settings.json):
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"],
"disabled": false
}
}
}Cursor
Create .cursor/mcp.json in your project:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"]
}
}
}Runtime Tools Setup
To use the game_* runtime tools, your Godot project needs the MCP interaction server autoload. Copy build/scripts/mcp_interaction_server.gd to your project and register it as an autoload:
Copy
build/scripts/mcp_interaction_server.gdto your project's scripts folderIn Godot: Project > Project Settings > Autoload
Add the script with the name
McpInteractionServer
The server listens on 127.0.0.1:9090 and accepts JSON commands over TCP when the game is running.
Environment Variables
Variable | Description |
| Path to the Godot executable (overrides auto-detection) |
| Set to |
| Optional. Restrict |
Architecture
The server uses two communication channels:
Headless CLI - For operations that don't need a running game (scene reading, modification, resource creation). Runs Godot with
--headless --script godot_operations.gd <operation> <json_params>.TCP Socket - For runtime interaction with a running game. The
mcp_interaction_server.gdautoload listens on port 9090 and processes JSON commands sent by the TypeScript MCP server.
Source layout
Path | Description |
| MCP server, tool definitions, and all handlers |
| Pure utility functions (parameter mapping, validation, error helpers) |
| Headless GDScript operations runner |
| TCP interaction server autoload |
| Vitest test suite |
Testing
The project uses Vitest with 446 tests across 5 files:
File | Tests | What it covers |
| 31 | Parameter mappings, normalization, path validation, error responses, version detection |
| 163 | All 155 tools defined, schemas valid, names unique, descriptions < 80 chars |
| 225 | Game command arg transforms, required-param validation, headless op path checks, source structure |
| 20 | .NET feature flag, .csproj generation, C# script template generation, identifier validation |
| 12 | GDScript diagnostic parsing + git-changed file collection |
npm test # run once
npm run test:watch # watch modeExample Prompts
"Run my Godot project and check for errors"
"Eval this in my running game: return get_tree().current_scene.name"
"Get the player's position in the running game"
"Set the player's health to 100"
"Read the test_level.tscn scene and show me the node tree"
"Change the player's speed property in the player.tscn scene file"
"List all .gd files in my project"
"Connect the enemy's 'died' signal to the game manager's 'on_enemy_died' method"
"Tween the camera's position to (0, 10, -5) over 2 seconds with ease-out"
"Get performance metrics - what's my FPS and draw call count?"
"Pause the game and take a screenshot"
"Find all CharacterBody3D nodes in the scene"
"Create a new Godot project called 'MyGame' and write a player script"
"Create a new C# (.NET) Godot project and add a CharacterBody2D script"
"Validate player.gd for errors"
"Check all my changed GDScript files for syntax errors before I run the game"
"Hold down the W key for 2 seconds to test walking"
"Cast a ray from the player downward to check for ground"
"Get the camera position and move it to look at the player"
"Show me the latest error messages from the running game"License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Original project: godot-mcp by Solomon Elias (Coding-Solo) - provided the foundational MCP server architecture, headless operations system, and TCP interaction framework
Extended by: Tugcan Topaloglu - extended to 157 tools covering networking, 3D/2D rendering, UI controls, audio effects, animation trees, file I/O, runtime code execution, node manipulation, signals, project creation, camera control, physics, and comprehensive type conversion
Available Tools
157 toolsadd_nodeC
Add a node to an existing scene
| Name | Required | Description | Default |
|---|---|---|---|
| nodeName | Yes | Name for the new node | |
| nodeType | Yes | Type of node to add (e.g., Sprite2D, CollisionShape2D) | |
| scenePath | Yes | Scene file path (relative to project) | |
| properties | No | Optional properties to set on the node | |
| projectPath | Yes | Godot project path | |
| parentNodePath | No | Path to the parent node (e.g., "root" or "root/Player") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the addition of a node and does not disclose whether the scene file is modified on disk, whether saving is required, how existing nodes are affected, or any side effects beyond the add action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise and free of fluff, which is structurally positive. However, it is so minimal that it under-specifies critical contextual details, so brevity comes at the cost of usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, no annotations, and many sibling tools, the description is far too thin. It fails to explain where the node is added, how parentNodePath is used, whether this is a persistent file edit or runtime operation, or how it relates to game_spawn_node and modify_scene_node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema and the description adds no additional semantic value. The baseline of 3 applies because the description does not compensate with extra context such as default parent behavior or how properties are applied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add') and a resource ('a node') with a target context ('an existing scene'), making the core operation clear. It is not merely a tautology, though it could more explicitly distinguish itself from runtime spawning or scene-file editing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as game_spawn_node, game_instantiate_scene, or modify_scene_node. The description implies design-time scene editing but never states exclusions or conditions, leaving the agent to guess when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_scriptB
Attach a GDScript to a scene node (headless)
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node within the scene (e.g., "root/Player") | |
| scenePath | Yes | Scene file path (relative to project) | |
| scriptPath | Yes | Path to the .gd script file (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals that the operation runs headless and implies a mutation, but it does not state that the scene file is modified, whether an existing script attachment is replaced, or whether the change is persistent. For a mutating tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; 'Attach a GDScript to a scene node' immediately conveys the operation and '(headless)' adds the key execution mode. The brevity is appropriate for a tool whose parameters are fully documented in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with full schema coverage the basic call is well specified, and 'headless' provides useful execution context. However, the lack of side-effect disclosure—what gets written, whether the operation can overwrite—and the absence of an output schema leaves the agent without a complete mental model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented with meaningful descriptions. The tool description adds no additional parameter semantics, and the baseline of 3 applies because the schema does the necessary work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: attaching a GDScript to a scene node. The 'headless' qualifier and the verb distinguish it from sibling tools like create_script and modify_scene_node, so an agent can tell it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as create_script or modify_scene_node, and no mention of prerequisites like the script already existing or the scene being open. The only hint is 'headless', which implies non-interactive use rather than a clear selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_csharp_scriptA
Create a C# script file in a Godot .NET project
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Full source code (overrides template) | |
| methods | No | Method stubs (e.g. _Ready, _Process) to include | |
| baseClass | No | Godot base class to extend. Default: Node | |
| className | No | C# class name. Default: derived from the file name | |
| scriptPath | Yes | Script file path relative to project (e.g. "scripts/Player.cs") | |
| projectPath | Yes | Godot .NET project path (must contain a .csproj) | |
| namespaceName | No | Optional C# namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as whether existing files are overwritten, if permissions are required, or side effects. With no annotations provided, the description carries the full burden for safety information but fails to address key behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It is front-loaded and efficient, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file creation tool, the description is minimal. It does not explain what happens on conflict, whether a template is used, or require the .csproj context. The schema covers parameter details, but overall completeness is average.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning. The baseline of 3 is appropriate as the schema already handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a C# script file in a Godot .NET project, using a specific verb and resource. It distinguishes itself from sibling tools like 'create_script' which is likely for GDScript, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a general context (C# script for Godot .NET) but does not explicitly state when to use this tool vs alternatives like 'create_script' or 'attach_script'. It lacks guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_directoryC
Create a directory inside a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Godot project path | |
| directoryPath | Yes | Directory path relative to project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the creation action and does not reveal what happens if the directory already exists, whether parent directories are created automatically, or whether the operation is reversible. For a mutation operation, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant restatement. It is appropriately brief for a simple tool, though the brevity trades away behavioral context that would have made it more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core invocation details are present through the schema, and the description gives the tool's domain. However, with no annotations and no output schema, the description leaves open questions about idempotence, recursive directory creation, and success/failure reporting. It is minimally usable but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description does not add format or semantic details beyond the schema, but the schema already documents projectPath and directoryPath as a project path and a relative directory path. No additional parameter elaboration is critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and object: creating a directory within a Godot project. The resource type 'directory' makes the tool distinguishable from file, scene, or resource creation siblings, though it does not explicitly name any alternative. It is clear but relies on the reader to infer the separation from related creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of related siblings like create_resource, create_scene, or write_file, and no mention of preconditions or exclusions. The only contextual hint is 'inside a Godot project,' which is already implied by the tool domain. An agent is left to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectB
Create a new Godot project from scratch
| Name | Required | Description | Default |
|---|---|---|---|
| dotnet | No | Scaffold a .NET (C#) project (.csproj + "C#" feature). Default: false | |
| projectName | Yes | Name of the project | |
| projectPath | Yes | Directory where the project will be created |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only says 'from scratch' but fails to mention side effects (e.g., directory creation, file overwriting), permissions, or error conditions. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—one short sentence with no wasted words. It is front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description provides adequate purpose but lacks details on return values, prerequisites, and potential side effects. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with descriptions for all three parameters. The description adds no additional semantic value beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('new Godot project'), and the scope ('from scratch'), effectively distinguishing it from sibling tools like create_scene or create_resource which deal with sub-components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. For example, it does not mention that for creating a scene, one should use create_scene instead. The purpose is implied but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_resourceB
Create a .tres resource file (headless)
| Name | Required | Description | Default |
|---|---|---|---|
| properties | No | Optional properties to set on the resource | |
| projectPath | Yes | Godot project path | |
| resourcePath | Yes | Where to save the .tres file (relative to project) | |
| resourceType | Yes | Godot class name (e.g., "StandardMaterial3D", "Theme", "Environment") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but only states that a .tres file is created. It does not disclose whether existing files are overwritten, whether directories are created, what happens with invalid resource types, or what the function returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler, and the key distinction (.tres resource file) is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all four parameters adequately, so an agent can construct valid arguments. However, with no annotations or output schema, the description leaves out behavior (overwrite semantics, errors, return values) and usage context, making it only minimally complete for a file-creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: projectPath, resourceType, resourcePath, and properties all have descriptions. The tool description adds no parameter-level semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and object: 'Create a .tres resource file (headless)'. It clearly identifies the resource type (.tres) and distinguishes this from sibling tools like create_scene, create_script, or save_scene without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as manage_resource, create_scene, or save_scene. The phrase 'headless' hints at a CI/automation context but no explicit when/when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sceneC
Create a new Godot scene file
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Path where the scene file will be saved (relative to project) | |
| projectPath | Yes | Godot project path | |
| rootNodeType | No | Type of the root node (e.g., Node2D, Node3D) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the write nature of the operation but says nothing about whether an existing file at scenePath is overwritten, whether the .tscn extension is appended automatically, what root node is created when rootNodeType is omitted, or whether the project must already exist. For a file-writing tool this is a significant risk-surface gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is waste-free and front-loads the purpose with no filler. However, for a write tool with 3 parameters, no annotations, and no output schema, one sentence is under-specification rather than appropriately sized — genuinely useful detail is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a moderate-complexity tool (file creation, optional third parameter, no output schema) covered only by a single sentence. The description never addresses what the tool returns, whether existing files are overwritten, how the scene path extension is handled, or what happens when rootNodeType is omitted. An agent knows what the tool does but not how to invoke it safely in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (projectPath, scenePath, rootNodeType) already documented in the schema. The description adds nothing about parameters beyond naming the operation, so the schema does the heavy lifting and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('create') and resource ('Godot scene file'), and the word 'new' signals this is distinct from save_scene. However, it does not explicitly name or contrast sibling tools like save_scene, add_node, or modify_scene_node, leaving the boundary implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus save_scene (saving an existing scene), add_node (adding a node to a live scene), or modify_scene_node (editing an existing scene). There are no preconditions, exclusions, or routing hints — an agent must infer usage entirely from the tool name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scriptB
Create a GDScript file from a template
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Full source code (overrides template) | |
| extends | No | Base class to extend. Default: Node | |
| methods | No | Method stubs to include | |
| className | No | Optional class_name | |
| scriptPath | Yes | Script file path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the primary action. It does not disclose whether an existing script is overwritten, whether directories are created, whether the project must be open, or what the command returns. For a file-creating mutation, these are material side effects an agent should know about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters but only two required, and the schema describes all of them; the action is conceptually simple. However, with no annotations and no output schema, the description leaves important invocation details unsaid, such as overwrite behavior and template semantics, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already well documented. The description adds only the template context; it does not add meaning to source, extends, methods, or className beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: create a GDScript file, and adds the 'from a template' qualifier, so an agent can tell it apart from generic write_file or create_scene. It does not explicitly distinguish it from attach_script, which could also be script-related, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose statement implies the usage context: when a GDScript file needs to be generated from a template. There is no explicit guidance about when not to use it or which sibling, such as attach_script or write_file, should be used instead, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileB
Delete a file from a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | File path relative to project root | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It reveals the destructive nature implicitly through the word 'Delete' but does not clarify whether deletion is permanent, what happens if the file does not exist, or whether directory deletion is supported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler words or redundant details. It front-loads the core action and resource, earning its place fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two required parameters and a well-covered schema, but it is destructive and has no annotations or output schema. The description leaves out important operational details like reversibility, missing-file handling, and whether only files (not directories) are deleted, making it minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds only the 'Godot project' context and does not provide additional meaning about path handling, validation, or side effects beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('a file from a Godot project'), clearly distinguishing it from sibling tools like write_file, read_file, and rename_file. The scope is immediately understandable and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor mention of caution for destructive operations. The description states the action but does not help an agent decide between delete_file and related file-management siblings like rename_file or write_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_mesh_libraryB
Export a scene as a MeshLibrary resource
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Path to the scene file (.tscn) to export | |
| outputPath | Yes | Path where the mesh library (.res) will be saved | |
| projectPath | Yes | Godot project path | |
| meshItemNames | No | Optional: Names of specific mesh items to include (defaults to all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that a scene is exported into a MeshLibrary resource, but does not mention side effects such as file overwriting, whether the scene is modified, whether directories are created, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly conveys the tool's purpose. It contains no filler or redundant phrasing and is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is too sparse to be considered complete. It does not explain expected return values, default behavior when meshItemNames is omitted (though the schema does), overwrite behavior, or any constraints on the scene or output paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters including scenePath, outputPath, projectPath, and meshItemNames. The description adds no extra parameter meaning beyond what the schema provides, which fits the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Export') on a specific resource (a scene) with a clear output type (MeshLibrary resource). It is easily distinguished from sibling tools like export_project and create_resource even without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as export_project, create_resource, or manage_resource. There is no mention of prerequisites, when not to use it, or how it compares to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_projectC
Export a Godot project using a preset
| Name | Required | Description | Default |
|---|---|---|---|
| debug | No | Use debug export. Default: false | |
| outputPath | Yes | Output file path for the exported build | |
| presetName | Yes | Export preset name | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Export' implies producing a build artifact, but the description doesn't disclose blocking behavior, whether outputPath is overwritten, error handling, or whether the editor/Godot binary must be running. For a tool with side effects (file creation), this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single seven-word sentence with zero wasted words and the core action front-loaded. It is efficient and appropriately minimal given the schema covers parameter details, though it forgoes the opportunity to add brief usage context without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the sole source of behavioral context, yet it omits prerequisites (a valid preset must exist), side effects (file overwrite at outputPath), and invocation expectations. For a build/export operation that produces a file artifact, the agent is left to guess at critical behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (projectPath, presetName, outputPath, debug) are documented in the schema, including the debug default. The description's 'using a preset' loosely maps to presetName but adds no meaning beyond the schema. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export'), a clear resource ('Godot project'), and the mechanism ('using a preset'). It is readily distinguishable from siblings like export_mesh_library (different resource) and manage_export_presets (manages presets rather than performing exports), though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It doesn't mention that an export preset must already exist (e.g., created via manage_export_presets), that run_project is for executing rather than building, or any prerequisites or exclusions. An agent must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_3d_effectsB
Create ReflectionProbe, Decal, or FogVolume
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| size | No | Effect size {x,y,z} | |
| intensity | No | Effect intensity | |
| effectType | Yes | Type: reflection_probe, decal, fog_volume | |
| parentPath | Yes | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavior. It only says 'Create', which implies mutation but does not explain side effects, required parent hierarchy, effect-specific constraints, or what happens to the scene after the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, direct sentence with no wasted words. It is efficient and front-loaded, though it could include a bit more context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description is too sparse. It does not explain the effect semantics, how the created node attaches to the parent path, or how parameters like size and intensity map to each effect type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds little beyond naming the effect types; it does not clarify how size or intensity behave differently per effect type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, 'Create', and names the exact resources it handles: ReflectionProbe, Decal, or FogVolume. This clearly distinguishes it from the many sibling tools that target other node types or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this tool when you want to create one of the three listed 3D effect types. However, it gives no explicit guidance about alternatives or when not to use this tool, leaving comparison to siblings like game_spawn_node or add_node unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_add_collisionC
Add a collision shape to a physics body node
| Name | Required | Description | Default |
|---|---|---|---|
| disabled | No | Start disabled | |
| shapeType | Yes | Shape: box, sphere/circle, capsule, cylinder, ray, segment | |
| parentPath | Yes | Path to CollisionBody/Area node | |
| shapeParams | No | Shape dimensions (e.g. {radius, height}) | |
| collisionMask | No | Collision mask bitmask | |
| collisionLayer | No | Collision layer bitmask |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the immediate action without explaining whether this mutates the scene tree, whether an existing collision shape is replaced or additional shapes are stacked, whether the change is persistent, or what happens if the parent node is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the operation, and it is appropriately short for a straightforward mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, a nested object, no annotations, and no output schema, the description is too thin. It does not explain how shapeParams relate to shapeType, whether required parameters are sufficient in all cases, or what the agent should expect after the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description adds no parameter-level meaning beyond the schema, and the nested shapeParams object—whose contents likely vary by shapeType—is not elaborated in the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('collision shape to a physics body node'), making the core operation clear. However, it does not explicitly differentiate itself from sibling tools like game_physics_body, game_physics_2d, or game_shape_2d, so the distinction is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as modify_scene_node, game_physics_body, or game_physics_2d. There is also no mention of prerequisites, such as the parentPath needing to reference a valid physics body or area node before adding a collision shape.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_animation_controlC
AnimationPlayer seek/queue/speed/info control
| Name | Required | Description | Default |
|---|---|---|---|
| speed | No | Playback speed scale | |
| action | Yes | Action: seek, queue, set_speed, get_info, stop | |
| nodePath | Yes | Path to AnimationPlayer node | |
| position | No | Seek position in seconds | |
| animationName | No | Animation name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only lists operation categories without disclosing side effects, whether queueing modifies playback state, what get_info returns, how speed interacts with ongoing playback, or whether stop resets state. For a control tool with mutating actions, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact with no filler words, and it front-loads the key resource and operation categories. However, it resembles a label more than a structured explanation, so it does not fully earn a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action tool with no output schema and no annotations, and the description does not explain action semantics, return values, preconditions, or how it relates to overlapping siblings like game_play_animation. An agent would need to inspect the schema and experiment to understand expected behavior, which is a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and their basic roles. The description adds no extra meaning beyond the schema; it merely echoes the action types. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'AnimationPlayer seek/queue/speed/info control' clearly identifies the target resource (AnimationPlayer) and the operations it covers (seek, queue, speed, info). It is specific enough to convey what the tool is about, though it is a noun phrase rather than a verb-driven statement and doesn't explicitly differentiate it from sibling tools like game_play_animation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as game_play_animation or game_animation_tree. The action list in the schema implies some usage, but the description itself provides no context, conditions, or exclusions, leaving the agent to infer the right selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_animation_treeC
AnimationTree state machine travel and params
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: travel, set_param, get_state, get_params | |
| nodePath | Yes | Path to AnimationTree node | |
| paramName | No | Parameter name | |
| stateName | No | State name (for travel) | |
| paramValue | No | Parameter value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must carry the full burden of behavioral disclosure, and it only hints at operations like state travel and parameter manipulation. It does not clarify that travel mutates the state machine state or that set_param changes animation parameters, nor does it mention read-only actions like get_state and get_params. This is minimal transparency for a tool that can both read and mutate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and contains no wasted words, but it is more of a fragment than a properly structured description. It front-loads the core concept but does not include a verb or complete sentence, making it feel under-specified rather than elegantly concise. A more balanced single sentence would convey the same information more effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity — 5 parameters, multiple action modes, no output schema, and no annotations — the description is far too sparse. It does not explain how actions relate to parameters, what the return values are, or what side effects occur. The description is only minimally sufficient to hint at the tool's purpose, leaving an agent to infer most of the calling contract from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters including the action options (travel, set_param, get_state, get_params) and parameter-specific fields. The description adds no extra meaning beyond what the schema provides, which matches the baseline of 3 for high coverage. It does not clarify relationships between actions and parameters, but the schema already covers that reasonably well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (AnimationTree state machine) and indicates the operation areas (travel and parameters). It is distinct from sibling tools like game_play_animation and game_animation_control because it targets AnimationTree specifically. However, it is a noun phrase rather than a full verb+resource statement, so it could be clearer about what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as game_play_animation, game_animation_control, or game_create_animation. There is no mention of prerequisites, intended scenarios, or situations where another tool would be more appropriate. Usage is only implied by the tool name and the word 'AnimationTree'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_audio_busB
Set volume, mute, or solo on an audio bus
| Name | Required | Description | Default |
|---|---|---|---|
| mute | No | Mute the bus | |
| solo | No | Solo the bus | |
| volume | No | Volume (linear 0-1) | |
| busName | No | Bus name. Default: "Master" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only names the action and does not explain the effect of calling with no parameters, whether changes are persistent, or whether values are applied immediately. The all-optional parameter list makes this ambiguity more significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the action and resource. Every word contributes to the meaning, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter this is mostly adequate: the schema covers all parameters, and no output schema is needed. However, with all parameters optional, the description does not clarify what happens when no arguments are provided, nor does it address likely edge cases around muting, soloing, or resetting volume.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter and the Master bus default. The description adds no new parameter-level meaning beyond naming the supported operations, which keeps it at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Set volume, mute, or solo') and a specific resource ('audio bus'), which clearly conveys what the tool does. It is distinguishable from nearby siblings like game_audio_play and game_audio_bus_layout by the resource and action, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus game_audio_play, game_audio_bus_layout, or game_audio_effect. No prerequisites, exclusions, or alternative conditions are provided; the usage context must be inferred entirely from the verb 'Set' and the resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_audio_bus_layoutC
Create/remove audio buses and routing
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: add, remove, set_send, list | |
| sendTo | No | Send target bus name | |
| busName | No | Bus name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description gives minimal behavioral context (e.g., it doesn't state whether operations are destructive, require permissions, or have side effects on mixing). The word 'create/remove' implies mutability but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It could be slightly expanded to cover all actions, but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (multiple actions, no output schema), the description is minimally sufficient but does not explain the interaction between parameters (e.g., when 'sendTo' is needed) or return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and parameters are described, so schema already provides meaning. The description adds little beyond the schema's own descriptions (e.g., action values are listed in schema's description field). Thus baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing audio buses and routing, which aligns with its resource name and distinguishes it from sibling tools like game_audio_play or game_audio_effect. However, it omits some actions (e.g., 'list') and could be more precise about the full range of operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as game_audio_bus (which might focus on single bus settings) or game_audio_effect. Without context, an agent may misuse it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_audio_effectC
Add/remove/configure audio bus effects
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Effect index | |
| action | Yes | Action: add, remove, configure, list | |
| busName | No | Audio bus name. Default: Master | |
| enabled | No | Enable/disable the effect (for configure) | |
| effectType | No | Effect: reverb, delay, chorus, eq, compressor, limiter | |
| properties | No | Effect properties to set (for configure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure, but it only states the actions without explaining side effects, state changes, or dependencies. For example, it does not clarify that 'add' appends or requires a bus, or that 'configure' needs an index. This is insufficient for a tool with multiple actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short phrase) and front-loaded with the core purpose. However, it lacks any structure or additional details that would improve clarity without increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (6 parameters, nested objects), the description is incomplete. It does not explain return values, error states, or typical usage patterns, leaving the agent to infer from parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the parameter descriptions in the schema. It does not clarify parameter relationships or usage order.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Add/remove/configure') and the resource ('audio bus effects'), distinguishing it from sibling tools like 'game_audio_bus' which manages buses themselves. However, it omits the 'list' action from the schema, slightly reducing specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, when to use each action (add vs remove vs configure), or prerequisites like needing an existing audio bus. The implied usage is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_audio_playC
Play, stop, or pause an AudioStreamPlayer node
| Name | Required | Description | Default |
|---|---|---|---|
| bus | No | Audio bus name | |
| pitch | No | Pitch scale | |
| action | No | Action: play, stop, pause, resume | |
| stream | No | Optional res:// path to load a new stream | |
| volume | No | Volume (linear 0-1) | |
| nodePath | Yes | Path to AudioStreamPlayer/2D/3D node | |
| fromPosition | No | Start position in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description must carry the full behavioral disclosure burden, but it only states high-level actions. It does not explain what happens on invalid paths, whether volume/pitch modifications persist, how 'fromPosition' interacts with play, or whether loading a stream resets other playback state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the core verb and resource, containing no fluff. It is concise but arguably too terse given the tool's seven parameters and missing usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters, no annotations, and no output schema, this description is incomplete. It lacks side-effect disclosure, parameter interaction guidance, error behavior, and usage context, leaving substantial gaps for the agent to fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented. The description adds minimal semantic value beyond naming the operation, and it slightly misaligns by not mentioning the 'resume' action listed in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource type (AudioStreamPlayer node) and the core operations (play, stop, pause), which distinguishes it from audio bus or effect tools. However, it omits the 'resume' action and the broader control features like volume, pitch, bus, and stream replacement, so it understates the tool's full scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like game_audio_bus, game_audio_effect, or game_get_audio. There are no stated conditions, exclusions, or sibling comparisons, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_audio_spatialC
Configure AudioStreamPlayer3D spatial properties
| Name | Required | Description | Default |
|---|---|---|---|
| maxDb | No | Maximum volume in dB | |
| action | Yes | Action: configure, get_info | |
| nodePath | Yes | Path to AudioStreamPlayer3D | |
| unitSize | No | Unit size for distance attenuation | |
| maxDistance | No | Maximum audible distance | |
| attenuationModel | No | Model: inverse, inverse_square, logarithmic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, but it only says 'Configure' and gives no detail on side effects, whether get_info returns data, failure behavior, or whether configuration is applied to an existing node. The tool actually supports a get_info mode, which the description does not reveal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise and names the target resource immediately, though it could have used the spare sentence to mention the get_info action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this tool has two distinct actions, six parameters, no output schema, and no annotations, a one-line description is insufficient. The agent is not told what get_info returns, what each action does, or what behavioral consequences configuration has on the audio player. The schema covers parameter names but not enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description adds little beyond labeling the parameters as 'spatial properties', but it does not need to compensate for missing schema descriptions. It still does not clarify the difference between the configure and get_info actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (AudioStreamPlayer3D) and a specific operation (Configure spatial properties), which clearly distinguishes it from sibling audio tools like game_audio_play and game_audio_bus. However, it omits the get_info action that the schema exposes, so it under-describes the tool's full purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as game_audio_play, game_audio_bus, or game_audio_effect. The description implies 'spatial audio configuration' but never states when that is appropriate or when it is not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_await_signalC
Await a signal with timeout and return args
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Timeout in seconds. Default: 10 | |
| nodePath | Yes | Path to the node | |
| signalName | Yes | Signal name to await |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions timeout and return args, but omits what happens on timeout (error vs empty result), whether the call blocks, whether the signal must already be connected to the node, and whether awaiting consumes the signal. For a potentially blocking operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Eight words that pack in the action, the timeout modifier, and the return behavior — efficient and front-loaded with zero filler. It borders on under-specification but earns credit for density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only behavioral context, yet it omits timeout failure behavior and return structure. For an await operation, the agent cannot tell what happens when the signal never fires or what format the returned args take.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description's 'return args' hints at the signal payload but adds no meaning beyond what the schema already documents for timeout, nodePath, and signalName.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('await'), a resource ('signal'), and key modifiers (timeout, return args). The action is distinguishable from signal siblings like game_connect_signal, game_disconnect_signal, and game_emit_signal, though it doesn't explicitly differentiate itself from the similarly named game_wait.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as game_wait (time-based waiting) or the signal management tools. No exclusions, prerequisites, or alternative conditions are named; the usage context is only implied by the action verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_bone_poseB
Get or set bone poses on a Skeleton3D node
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Bone scale {x,y,z} | |
| action | No | Action: list, get, or set. Default: list | |
| boneName | No | Bone name (alternative to index) | |
| nodePath | Yes | Path to Skeleton3D node | |
| position | No | Bone position {x,y,z} | |
| rotation | No | Bone rotation quaternion {x,y,z,w} | |
| boneIndex | No | Bone index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool can both read and mutate bone poses, which is useful, but it does not disclose side effects, persistence behavior, or what happens when setting pose data. With no annotations provided, the description carries the full burden and only partially covers it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action ('Get or set') and the target resource, making it scannable and information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no annotations, and no output schema, an agent needs more context to invoke this tool correctly—such as how to choose between boneName and boneIndex, which parameters are required for set versus get, and what list/get/set return. The current description leaves too much for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a semantic description. The tool description adds general context about bone poses but does not add meaning beyond the schema, which matches the baseline for fully covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair ('Get or set') and a precise resource ('bone poses on a Skeleton3D node'), making the tool's function immediately clear. It also distinguishes itself from related sibling tools like game_skeleton_ik because it targets pose values rather than IK solving.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as game_get_property, game_set_property, or game_skeleton_ik. There is no mention of prerequisites, when get/set/list is appropriate, or how this tool relates to other bone or skeleton tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_call_methodB
Call a method on any node in the running game with optional arguments
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Optional array of arguments to pass to the method | |
| method | Yes | Method name to call | |
| nodePath | Yes | Path to the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It does not warn that invoking an arbitrary method can mutate game state, fail at runtime, or produce side effects depending on the method called.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with no filler, and the core action and target are front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary method-invocation tool with no output schema and no annotations, the description omits key operational details such as whether the method's return value is returned and what failure modes exist. This makes the tool riskier to invoke blindly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description's mention of optional arguments adds no meaning beyond the existing args property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Call a method') applied to a concrete resource ('any node in the running game') and mentions optional arguments. This clearly distinguishes it from sibling property get/set tools and arbitrary expression evaluation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like game_eval, game_set_property, or other node-specific tools, and no exclusions are provided. Usage is only implied by the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_camera_attributesB
Configure DOF, exposure, auto-exposure on camera
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: get or set | |
| dofBlurFar | No | DOF far blur distance | |
| dofBlurNear | No | DOF near blur distance | |
| autoExposure | No | Enable auto exposure | |
| dofBlurAmount | No | DOF blur amount | |
| autoExposureScale | No | Auto exposure scale | |
| exposureMultiplier | No | Exposure multiplier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Configure' without explaining that the action parameter supports get and set, what side effects occur, or whether reads and writes are both covered. The agent gets almost no behavior detail beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It is concise and readable, though its brevity means it sacrifices useful context about the action parameter and usage nuances.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, this description is too minimal. It omits how the action parameter works, whether parameters can be combined, any defaults or side effects, and how it fits among the many camera-related sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description adds only a high-level grouping of DOF, exposure, and auto-exposure, which maps to the schema but does not add meaningful semantics beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Configure') and a specific resource ('camera') with clear attribute areas (DOF, exposure, auto-exposure). It distinguishes the tool's focus from siblings like game_set_camera, though it does not explicitly differentiate itself or mention the dual get/set capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for adjusting camera DOF, exposure, and auto-exposure settings, which gives an agent a reasonable usage context. However, it provides no explicit when-to-use guidance, no exclusions, and no mention of alternatives or how it relates to game_set_camera or camera-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_canvasC
Create/configure CanvasLayer and CanvasModulate
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| color | No | Modulate color {r,g,b,a} | |
| layer | No | Canvas layer number | |
| action | Yes | Action: create_layer, create_modulate, configure | |
| offset | No | CanvasLayer offset {x,y} (for configure) | |
| visible | No | CanvasLayer visibility (for configure) | |
| nodePath | No | Node path (for configure) | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'create/configure' but does not mention that this is a mutation operation that modifies the scene tree, requires specific permissions, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is concise but could be more informative without increasing length significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, nested objects, and no output schema, the description is too sparse. It does not explain how actions relate to parameters (e.g., which parameters are needed for each action) or what the tool returns. Significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 8 parameters. The description adds minimal meaning beyond the schema, just grouping the operations. A baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies creating/configuring CanvasLayer and CanvasModulate, which are distinct resources not covered by sibling tools. However, it does not explain what these nodes do, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like game_canvas_draw or other node creation tools. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_canvas_drawC
2D drawing: line/rect/circle/polygon/text/clear
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End point {x,y} | |
| from | No | Start point {x,y} | |
| rect | No | Rectangle {x,y,w,h} | |
| text | No | Text to draw | |
| color | No | Draw color {r,g,b,a} | |
| width | No | Line width. Default: 2 | |
| action | Yes | Action: line, rect, circle, polygon, text, clear | |
| center | No | Center point {x,y} | |
| filled | No | Fill shape. Default: true | |
| points | No | Polygon points [{x,y},...] | |
| radius | No | Circle radius | |
| fontSize | No | Text font size. Default: 16 | |
| position | No | Text position {x,y} (baseline, for text) | |
| parentPath | No | Parent node path for draw node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must bear full burden. It does not disclose side effects (e.g., clearing screen with 'clear' action), coordinate system, or that it draws on a parent canvas node identified by parentPath. Parameter descriptions in schema help but overall behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently captures core purpose and lists actions. It is front-loaded. Could benefit from a bit more context without being verbose, but currently very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters and 6 actions, no output schema, and no annotations, the description is too sparse. It does not explain the overall workflow (e.g., need for parentPath, drawing behavior per action) or how parameters interact. Schema descriptions provide partial remedy, but overall completeness is low.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are clear. Description adds no additional semantics beyond listing actions; it does not clarify parameter relationships (e.g., from/to for line, points for polygon). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description '2D drawing: line/rect/circle/polygon/text/clear' lists specific actions, clearly indicating the tool is for drawing shapes and text on a canvas. It distinguishes from sibling tools like game_canvas (which likely manages canvas nodes) and game_debug_draw (debug visualization) by enumerating primitives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as game_canvas or game_debug_draw. The description does not mention prerequisites (e.g., needing a canvas node) or context for each action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_change_sceneA
Switch to a different scene file in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Resource path to the scene (e.g., "res://scenes/levels/level2.tscn") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining behavior. It states that the scene changes but does not disclose important runtime effects such as whether the current scene is unloaded, whether game state is lost, or whether the change is instant and reversible. For a mutating runtime operation, this is a notable transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning: the action, the object, and the runtime context are all present, and nothing needs to be trimmed or expanded for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple tool with one parameter and no output schema, so the description covers the basic purpose and parameter semantics adequately. However, the absence of any behavioral detail about runtime side effects and the lack of guidance relative to similarly named scene tools make it only minimally complete for reliable agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents scenePath with a type and a clear example, and all one parameter is covered, so the baseline is 3. The description does not add extra semantic detail beyond the schema, but none is critically needed for this simple parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Switch') and a precise resource ('scene file in the running game'), making the tool's function immediately understandable. It is also sufficiently distinct from siblings like set_main_scene, save_scene, and game_instantiate_scene because it emphasizes the runtime context and the act of changing the current scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in the running game' implies when to use this tool: during a live game session when the current scene should be replaced. However, it does not explicitly contrast with related sibling tools such as game_instantiate_scene or set_main_scene, leaving some room for an agent to confuse scene switching with scene instantiation or project-level configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_clickA
Click at a position in the running Godot game window
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate to click | |
| y | Yes | Y coordinate to click | |
| button | No | Mouse button (1=left, 2=right, 3=middle). Default: 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral disclosure burden. The word 'Click' transparently states the core action, but the description does not disclose coordinate space, whether it synthesizes press/release events, or what return/error behavior to expect. It is minimally adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. The key scoping information ('running Godot game window') is front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter input tool with no annotations and no output schema, the description plus schema is minimally callable. However, it leaves out the coordinate system, any mention of the return value, and details about the synthesized click event, so it is complete enough to attempt a call but not fully informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so x, y, and button are already documented in the schema. The description adds only the context that the click position is in the game window, which is useful but does not meaningfully extend parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Click') and a specific resource ('position in the running Godot game window'), clearly stating what the tool does. It is easily distinguishable from sibling tools like game_mouse_move or game_mouse_drag, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for clicking inside a running Godot game window, which gives some context. However, it does not explicitly say when to prefer this over alternatives such as game_mouse_move, game_mouse_drag, or game_key_press, nor does it give exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_connect_signalB
Connect a signal from one node to a method on another node in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Method name to call on the target node | |
| nodePath | Yes | Path to the source node that emits the signal | |
| signalName | Yes | Name of the signal to connect | |
| targetPath | Yes | Path to the target node that receives the signal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'connect' and does not mention whether the connection is runtime-only, how duplicates are handled, whether prior connections are replaced, or what errors can occur. This is a significant transparency gap for a mutating runtime operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one focused sentence that immediately states the verb, subject, and scope. There is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no output schema and no annotations, the description is minimally adequate but incomplete. It does not clarify the lifetime of the connection, side effects, or failure behavior, and it gives no usage context relative to the many related signal tools. Still, the schema fully covers parameters, so it is not seriously underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 is appropriate. The description adds the high-level relationship between source and target nodes, but all per-parameter meaning is already present in the schema and the description does not significantly extend it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Connect'), a precise resource ('a signal from one node to a method on another node'), and the environment ('in the running game'). It is clearly distinguishable from siblings like game_emit_signal, game_disconnect_signal, and game_await_signal based on the wording alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as game_disconnect_signal, game_emit_signal, or game_await_signal. The description only defines the operation but does not explain conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_create_animationC
Create an animation with tracks and keyframes
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | Animation length in seconds. Default: 1.0 | |
| tracks | No | Array of track definitions | |
| library | No | Animation library name. Default: "" | |
| loopMode | No | 0=none, 1=linear, 2=pingpong | |
| nodePath | Yes | Path to AnimationPlayer node | |
| animationName | Yes | Name for the new animation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that an animation is created and does not explain whether existing animations with the same name are overwritten, what side effects occur on the AnimationPlayer, or what the resulting animation object contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that starts with the action verb and contains no filler. It is appropriately concise, though it is also quite sparse for a six-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must provide more context than it does. It does not explain how tracks and keyframes are structured, whether the animation is added to an existing library, or how the operation behaves on the AnimationPlayer. The complexity of the tool's parameters is not matched by the description's content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters already have individual descriptions. The phrase 'tracks and keyframes' adds a small hint about the tracks array, but it does not substantially extend or clarify the schema's parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Create an animation') and adds the key content ('with tracks and keyframes'), making the tool's purpose clear. It does not explicitly differentiate from siblings like game_play_animation or game_tween_property, but 'create' is a distinct action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus closely related siblings such as game_play_animation, game_tween_property, or game_animation_control. The intended usage is only implied by the verb 'create,' with no mention of prerequisites like an existing AnimationPlayer or common alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_create_jointC
Create a physics joint between two bodies
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | Length (spring_2d, groove_2d) | |
| damping | No | Spring damping (spring_2d) | |
| softness | No | Softness (pin_2d) | |
| jointType | Yes | Joint type: pin_2d, spring_2d, groove_2d, pin_3d, hinge_3d, cone_3d, slider_3d | |
| nodeAPath | No | Path to first body | |
| nodeBPath | No | Path to second body | |
| stiffness | No | Spring stiffness (spring_2d) | |
| parentPath | Yes | Parent node path for the joint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavioral traits. It only states the basic operation and omits important context such as scene mutation, required node paths, joint type constraints, or whether the operation can be undone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler, and it is front-loaded with the key action and target. However, it may be too terse for a tool with eight parameters, leaving room for additional useful context without adding bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with eight parameters, no annotations, and no output schema, this description is thin. It does not explain return values, prerequisites, joint type behavior, or how the operation affects the scene, so an agent lacks enough context to use the tool confidently beyond the parameter list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal semantic value by indicating the joint connects two bodies, which weakly maps to nodeAPath and nodeBPath, but it does not meaningfully elaborate beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and identifies the resource ('physics joint') and the target objects ('between two bodies'). It is clear at a high level, though it does not explicitly distinguish itself from related physics/sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like game_physics_body, game_add_collision, or other joint-related operations. Prerequisites such as the bodies existing in the scene are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_create_timerC
Create a Timer node with configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional timer node name | |
| oneShot | No | One-shot mode. Default: false | |
| waitTime | No | Timer duration in seconds. Default: 1.0 | |
| autostart | No | Auto-start the timer. Default: false | |
| parentPath | No | Parent node path. Default: "/root" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, yet it only says 'Create a Timer node.' It does not disclose that this is a scene-tree mutation (adding a node under parentPath), whether it replaces an existing node with the same name, whether the created timer is active immediately, or what the tool returns on success. For a write operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that leads with the action and object, making it easy to scan. The only mild waste is 'with configuration,' which is largely implied by the existence of parameters, but the overall brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations, no output schema, and five parameters, the description is too thin. It fails to mention the side effect (adding the node to the scene tree), the target under parentPath, or what happens after creation. An agent cannot fully infer the tool's impact on the scene without additional investigation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (name, oneShot, waitTime, autostart, parentPath) is already documented with its meaning and default in the input schema. The description's 'with configuration' adds no parameter-level detail beyond the schema, but per the baseline rule for high coverage, the schema carries the semantic load adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and a concrete resource ('Timer node'), which is sufficient to identify the tool's function and distinguish it from the many sibling tools that operate on other node types (e.g., game_create_animation, game_spawn_node). The phrase 'with configuration' is vague but the schema names the configurable properties. It stops short of 5 because it does not clarify where the node is created or how it differs from generic scene-creation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as game_spawn_node, game_instantiate_scene, or add_node, all of which could plausibly create a Timer node. There are no exclusions, prerequisites, or context cues (e.g., 'use when adding a scene-tree timer') to help an agent select between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_csgC
Create/configure CSG nodes with boolean operations
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| size | No | Size {x,y,z} (box) | |
| action | Yes | Action: create or configure | |
| height | No | Height (cylinder) | |
| radius | No | Radius (sphere/cylinder) | |
| csgType | No | CSG type: box, sphere, cylinder, mesh, combiner | |
| material | No | Material resource path | |
| nodePath | No | Node path (for configure) | |
| operation | No | Boolean op: union, intersection, subtraction | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of behavioral disclosure. 'Create/configure' implies mutation, but the description never states whether configure modifies nodes in place, whether boolean operations rebuild the CSG tree, what constraints apply, or what side effects occur. For a geometry-mutating tool this is a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, verb first, with zero filler — very economical. It is concise without being a tautology. It loses a point because the brevity sacrifices mode/type organization that a short clause could have provided (e.g., naming box/sphere/cylinder/combiner).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with two actions, five CSG types, no annotations, and no output schema, this description is thin. It does not explain the create-vs-configure workflow, which parameters apply to which csgType, how the combiner and boolean operations interact, or what success looks like. An agent would need substantial inference to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so per the baseline rule the description need not repeat parameter details. The description's only parameter-level contribution is hinting that 'boolean operations' map to the operation field. It adds no cross-parameter insight (e.g., size applies to box, radius to sphere/cylinder, nodePath for configure), which leaves value on the table but does not drop below baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Create/configure CSG nodes') and adds a distinguishing modifier ('boolean operations'). This separates it from generic siblings like game_spawn_node or game_procedural_mesh. However, it stops short of naming the supported shape types or the combiner node, so an agent must open the schema to fully pin down scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, and no conditions selecting 'create' vs 'configure'. It gives no prerequisites, no exclusions, and no mention of how it relates to siblings like game_spawn_node or game_remove_node. The agent is left to infer usage from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_debug_drawB
Draw debug lines, spheres, or boxes in 3D
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Line end {x,y,z} | |
| from | No | Line start {x,y,z} | |
| size | No | Box size {x,y,z} | |
| color | No | Draw color {r,g,b,a}. Default: red | |
| action | Yes | Action: line, sphere, box, or clear | |
| center | No | Sphere/box center {x,y,z} | |
| radius | No | Sphere radius. Default: 0.5 | |
| duration | No | Frames to persist (0=permanent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavioral traits. It only says 'draw' and does not disclose that debug draws are typically temporary overlays, how duration/persistence works, or that 'clear' removes previous draws. It is not misleading, but it under-discloses behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action, resource, and dimensionality. Every word earns its place and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no annotations, and no output schema, the one-sentence description is too thin. It does not explain the conditional groupings (from/to for lines, center+radius for spheres, center+size for boxes) or the 'clear' action. The schema documents individual parameters well, but an agent still has to infer multi-action semantics from parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful comment such as 'Line start', 'Box size', and 'Sphere/box center'. The description adds no new parameter semantics beyond grouping line/sphere/box concepts, which the schema already exposes through the action parameter. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Draw'), resource ('debug lines, spheres, or boxes'), and scope ('in 3D'). This distinguishes it from 2D drawing tools like game_canvas_draw and from mesh/scene creation tools. The primary purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'debug' implies diagnostic visualization and '3D' hints at the relevant sibling space, but there is no explicit when-to-use guidance, no mention of alternatives, and no cleanup guidance via action='clear'. An agent must infer usage context from the name and schema rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_disconnect_signalB
Disconnect a signal connection in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Method name on the target | |
| nodePath | Yes | Path to the source node | |
| signalName | Yes | Name of the signal | |
| targetPath | Yes | Path to the target node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full behavioral burden. The verb 'disconnect' implies mutation, but the description does not disclose what happens if the connection does not exist, whether the change is reversible via game_connect_signal, whether it affects only the live session, or what failure modes are possible. This is a significant gap for a state-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 8-word sentence with the verb front-loaded and zero filler. It is appropriately sized for a simple operation, though slightly terse given the absence of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, this 4-required-parameter mutation tool should provide more context: error behavior for nonexistent connections, reversibility, and relationship to sibling signal tools. The description leaves these gaps unfilled, making it insufficiently complete for an agent to confidently invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (nodePath, signalName, targetPath, method). The description adds no parameter-level meaning beyond the schema, which matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('disconnect'), a clear resource ('signal connection'), and a scoping qualifier ('in the running game') that distinguishes this from editor-time signal editing. Its semantics inherently separate it from siblings like game_connect_signal, game_emit_signal, game_list_signals, and game_await_signal, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in the running game' implies this is for runtime signal disconnection rather than static scene editing, which provides some selection context against manage_scene_signals and the game_* family. However, there is no explicit when-to-use guidance, no exclusions, and no mention of the natural pairing with game_connect_signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_emit_signalA
Emit a signal on a node in the running game, optionally with arguments
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Optional arguments to pass with the signal | |
| nodePath | Yes | Path to the node | |
| signalName | Yes | Name of the signal to emit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It states that a signal is emitted and that arguments may be passed, but it does not disclose that connected handlers will execute as side effects, that the node and signal must already exist, or what happens on invalid input. For a runtime-triggering tool with no annotation safety hints, this is under-disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase—'emit', 'signal', 'node', 'running game', and 'optionally with arguments'—earns its place and contributes to actionable understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool, the description plus schema provides enough to make a plausible call, but it omits realistic preconditions such as requiring an existing node and a valid signal name, as well as the fact that emission can trigger arbitrary game code. There is no output schema, yet the description still does not explain expected success or failure behavior, leaving a moderate completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters clearly, so the description does not need to restate them. The phrase 'optionally with arguments' reinforces the optional args parameter, but no additional meaning is added about nodePath format, signalName validity, or argument ordering and types. Baseline 3 applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action ('emit'), a specific target ('a signal on a node'), and the execution context ('in the running game'), plus optional arguments. This clearly distinguishes it from sibling tools like game_connect_signal, game_await_signal, and game_list_signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'emit' and the phrase 'running game' imply runtime triggering rather than scene-editing or signal setup. However, the description gives no explicit guidance on when to use this tool versus alternatives such as game_call_method or game_connect_signal, and it offers no 'when not to use' caveats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_environmentC
Get or set environment and post-processing settings
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: get or set. Default: set | |
| contrast | No | Contrast adjustment | |
| glowBloom | No | Glow bloom | |
| brightness | No | Brightness adjustment | |
| fogDensity | No | Fog density | |
| fogEnabled | No | Enable fog | |
| saturation | No | Saturation adjustment | |
| ssaoRadius | No | SSAO radius | |
| ssrEnabled | No | Enable SSR | |
| glowEnabled | No | Enable glow | |
| ssaoEnabled | No | Enable SSAO | |
| tonemapMode | No | 0=linear, 1=reinhardt, 2=filmic, 3=aces | |
| fogLightColor | No | Fog light color {r,g,b,a} | |
| glowIntensity | No | Glow intensity | |
| ssaoIntensity | No | SSAO intensity | |
| backgroundMode | No | 0=clear, 1=custom_color, 2=sky, 3=canvas | |
| backgroundColor | No | Background color {r,g,b,a} | |
| ambientLightColor | No | Ambient light color {r,g,b,a} | |
| ambientLightEnergy | No | Ambient light energy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but 'Get or set...' only discloses that the tool has read and write modes. It does not reveal that 'set' is the default action, what 'get' returns, whether partial updates merge or reset unmentioned settings, or any error/validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; it wastes nothing. It is efficient but so terse that it sacrifices context that a 19-parameter tool needs, though that tradeoff belongs more to completeness than to structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 19 parameters, no output schema, and no annotations, the description is too thin. It omits the default action behavior, return shape for 'get', how settings are applied when only a subset is provided, and relationship to the running game environment. An agent has enough to guess the tool's domain but not enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 19 parameters with individual descriptions, so the baseline is 3. The tool description adds no parameter-level meaning, and it does not compensate for missing ranges, units, or mode-specific interactions, but it does not need to reiterate the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get or set') and names a concrete resource ('environment and post-processing settings'), which the input schema confirms (fog, bloom, SSAO, tonemapping, backgrounds). It is not vague, but it does not differentiate from closely related siblings like game_render_settings or game_3d_effects, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no exclusions. An agent must infer from the name and schema when game_environment is appropriate versus game_render_settings, game_3d_effects, game_world_settings, or game_sky. The sentence states capability but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_evalC
Execute GDScript in the running game. Use "return" for values.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | GDScript code to execute. Use "return" to return values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It identifies the execution environment and return convention, but it never warns that arbitrary GDScript can mutate live game state irreversibly, nor does it describe error behavior, execution limits, or result serialization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler. The core operation is front-loaded, and the return-value convention is stated directly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary code-execution tool with no annotations and no output schema, the description is minimal but incomplete. It omits side-effect caution, error handling, and what returned values look like, even though the single-parameter schema is fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single `code` parameter at 100% coverage, so the baseline is 3. The description largely repeats the schema text ('Use "return" for values') and adds no new parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: 'Execute GDScript in the running game.' This clearly identifies what the tool does and sets it apart from the many narrower game_* sibling tools. It does not explicitly name or contrast sibling alternatives, but the arbitrary-code-execution nature is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like game_call_method, game_script, or game_get_property. The only usage note, 'Use "return" for values,' addresses how to format code, not when this tool should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_find_nodes_by_classB
Find all nodes of a specific class type in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| rootPath | No | Root node path to start searching from. Default: "/root" | |
| className | Yes | Class name to search for (e.g., "CharacterBody3D", "Light3D") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the core purpose. It does not mention whether the search is recursive, whether it includes hidden nodes, what the return format is, or that it starts from the rootPath (default "/root"). These are meaningful behavioral traits an agent would need to predict the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, delivering the key action and target in a single clear sentence. It contains no filler, though it could add a bit more useful detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description plus schema is mostly sufficient to make a call. However, there is no output schema and the description does not clarify return shape or traversal behavior, which leaves some ambiguity for an agent selecting and interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters: className and rootPath. The description adds little beyond naming the class-type search focus, which is the baseline expectation. It does not need to compensate for missing schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Find all nodes') and the resource ('of a specific class type in the running game'), making the tool's purpose immediately understandable. It is distinguishable from siblings like game_get_nodes_in_group because it searches by class rather than group, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever a caller needs every node of a given class in the running scene tree. However, it provides no explicit guidance about alternatives, such as game_get_nodes_in_group for groups or game_get_scene_tree for a broader view, so the agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_gamepadA
Send gamepad button or axis input event
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | "button" or "axis" | |
| index | Yes | Button or axis index | |
| value | Yes | Value: 0/1 for buttons, -1.0 to 1.0 for axes | |
| device | No | Gamepad device index. Default: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Send gamepad button or axis input event' and does not explain whether this injects an artificial engine event, requires a connected gamepad, has side effects on the running game, or returns any confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that contains the essential verb and resource without any filler. It is front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully covers the four parameters, and the tool is a simple single-purpose event sender, but with no annotations and no output schema the description leaves open questions about return values, prerequisites, and whether the event is simulated at engine level. It is minimally adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameter meanings: type values, index purpose, value ranges, and the optional device index. The description adds no parameter information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Send'), a resource ('gamepad button or axis input event'), and distinguishes this tool from sibling input tools like game_click, game_key_press, game_mouse_move, and game_touch. An agent can immediately identify that this is for gamepad-specific input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for gamepad input events through the phrase 'gamepad button or axis input event', but it does not explicitly state when to use it versus alternatives or mention any exclusions. No routing to sibling tools like game_key_press or game_touch is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_audioB
Get audio bus layout and playing streams
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The word 'Get' implies a read-only, non-mutating operation, and the resources being retrieved are named. However, it does not state what the return format is, whether the result is a snapshot or live reference, or any error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. Every word contributes meaning by naming the operation and the returned resources, which is ideal for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-input read tool, the description names the high-level output topics and is mostly sufficient. However, there is no output schema and no differentiation from closely named audio siblings, so an agent could pick the wrong tool when multiple audio-related options exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter ambiguity for the description to clarify. Schema description coverage is effectively 100%, and the baseline for a zero-parameter tool is appropriately 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and identifiable resources ('audio bus layout', 'playing streams'), so an agent can understand what the tool does. It doesn't explicitly differentiate itself from sibling tools like game_audio_bus or game_audio_bus_layout, but the purpose itself is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus related audio siblings such as game_audio_bus, game_audio_bus_layout, or game_audio_play. There is no mention of context, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_cameraA
Get active camera position, rotation, and size
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly communicates that this is a read-only retrieval operation and specifies what is returned, but it does not mention potential failure modes (e.g., no active camera) or any context about the returned coordinate system or units.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single direct sentence with no filler. Every word contributes meaning, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless getter, the description names the exact returned values (position, rotation, size) and the subject (active camera). It does not define the return format or edge-case behavior, but overall it is complete enough for an agent to understand what this tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing for the description to add about parameter meaning. The baseline for a parameterless tool is appropriately strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the specific resource ('active camera') along with the exact data being retrieved: position, rotation, and size. It is distinct from the related sibling game_set_camera, which is the inverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when the agent needs the active camera's transform values, but it does not explicitly mention when to prefer this over alternatives like game_get_property or game_get_node_info, nor does it state any conditions where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_errorsA
Get new push_error/push_warning messages since last call
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the important stateful behavior: only new messages since the previous invocation are returned. However, it does not state what happens on the first call, whether reading consumes/clears the messages, or what the return format is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, and every word earns its place. The key qualifier ('since last call') appears before any ambiguity can form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter this is nearly complete: an agent knows what to call and roughly what it will get back. The main omissions are first-call behavior and output structure, which would matter if a caller needs to parse the messages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there is nothing for the description to explain about arguments. The baseline for zero-parameter tools is 4, and the description adds relevant behavioral context about the implicit call-tracking state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a precise resource ('push_error/push_warning messages'), and a scope ('since last call'). This is enough for an agent to distinguish it from broader logging siblings like game_get_logs or get_debug_output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The stateful phrase 'since last call' implies this is a polling-style call for incremental errors/warnings, but the description never explicitly says when to prefer it over alternatives or when not to use it. Usage must be inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_logsA
Get new print output from the running game since last call
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It reveals the stateful, incremental behavior ('since last call'), which is useful and non-obvious. But it does not describe the return format, whether the log buffer is consumed, or what happens when the game is not running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence with no filler. The essential behavioral qualifier 'since last call' is included, making the description both efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool, this is mostly sufficient to invoke, but since there is no output schema the description does not state the return shape or edge-case behavior (e.g., empty output, game not running). It covers the main purpose but leaves some practical ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is no parameter detail to document. The description appropriately identifies the target resource (print output from the running game), satisfying the baseline for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get print output from the running game. The qualifiers 'new' and 'since last call' clarify the incremental nature, distinguishing it from siblings like game_get_errors and get_debug_output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'since last call' implies a polling pattern: call repeatedly to retrieve only fresh output. However, the description does not explicitly say when to prefer this over game_get_errors or get_debug_output, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_node_infoB
Get node info: class, properties, signals, methods, children
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node (e.g., "/root/Player") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It does disclose that the tool returns class, properties, signals, methods, and children, and the 'Get' verb implies a read-only operation. However, it does not describe the return format, whether children are returned recursively, or error behavior for invalid node paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the operation and uses a comma-separated list to enumerate the return categories. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only introspection tool, the description is largely complete: the input is fully documented in the schema, and the return categories are explicitly listed. The lack of an output schema leaves minor gaps around the exact return structure, but the core information needed to invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the nodePath parameter is already described in the schema with an example. The description adds no parameter-specific detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'node info', and it enumerates the specific contents: class, properties, signals, methods, children. This helps distinguish it from more narrowly focused siblings like game_get_property or game_list_signals, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided about when to use this tool versus alternatives. The description only implies 'use this when you need node info', but it does not mention when to prefer game_get_property, game_get_scene_tree, or game_list_signals instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_nodes_in_groupA
Get all nodes belonging to a specific group in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | Group name (e.g., "enemies", "player", "checkpoints") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Get' implies a non-mutating read operation, which is useful context, but the description does not mention the return format (e.g., node paths, names, references), behavior for nonexistent groups, or whether it reads from the current scene tree or the entire running game.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single declarative sentence with no redundancy or filler. It is appropriately sized for a simple getter tool and is front-loaded with the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool, the description adequately states what it does, but it leaves the return value unspecified. An agent would benefit from knowing whether the tool returns node paths, node names, or references, and any implications for using the results with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the only parameter 'group' with descriptive examples, so schema coverage is 100%. The tool description adds no parameter-level detail beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get), resource (nodes), and filter (belonging to a specific group), which clearly indicates what the tool does. It distinguishes itself from siblings like game_get_scene_tree and game_find_nodes_by_class by the group-membership scope, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this tool when you need all nodes assigned to a group in the running game. There is no explicit guidance about when not to use it or how it compares to related tools such as game_manage_group or game_find_nodes_by_class.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_propertyB
Get a property value from any node in the running game by its path
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node (e.g., "/root/Player", "/root/Main/Enemy") | |
| property | Yes | Property name to get (e.g., "position", "health", "visible") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the main source of behavior. It usefully clarifies that this reads live runtime state ('running game') rather than saved scene data, and 'get' implies no mutation. However, it does not state side-effect-free behavior explicitly or describe what happens when a path/property is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight, front-loaded sentence with no wasted words. The verb, target, and addressing mechanism are all immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity getter with two well-documented parameters, the description is mostly complete: it specifies runtime scope (running game), node addressing (path), and the requested data (property value). It lacks return-format or error details, but these are minor for such a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already documents both nodePath and property with examples, and coverage is 100%, so the description adds no new parameter-level meaning. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear, specific operation: get a property value, scoped to any node in the running game, addressed by path. This distinguishes it from write-focused siblings like game_set_property, though it does not explicitly name alternatives such as game_get_node_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this tool over related siblings like game_get_node_info, game_eval, or game_set_property. The description only states what the tool does, leaving the agent to infer selection criteria from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_scene_treeB
Get scene tree structure of the running game
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but the description does not clarify return format, whether the full hierarchy is included, or how node references are represented. This is a minimal disclosure with meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant wording. It wastes no tokens and immediately communicates the operation and target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only inspection tool, this description is minimally viable. However, there is no output schema or annotation, and the description does not specify what the returned scene tree structure looks like, leaving the agent to discover the response format at runtime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there is nothing for the description to explain. The baseline for zero-parameter tools applies here, and no additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a clear resource ('scene tree structure of the running game'). The 'running game' qualifier usefully signals runtime state rather than scene files, which helps differentiate it from tools like read_scene. It does not explicitly name or contrast with sibling tools, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the agent needs the current runtime scene hierarchy, but it gives no explicit when-to-use or when-not-to-use guidance. It also does not mention alternatives like read_scene for editing scene files or game_get_node_info for inspecting specific nodes. Usage context is present but left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_get_uiB
Get visible UI elements from the running game
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and a one-line 'get' sentence only signals a read operation. It does not define what 'visible' excludes (hidden, offscreen, or non-CanvasItem elements), what the return value looks like, or edge behaviors such as erroring when no game is running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is nine words with zero filler; the verb and object are front-loaded and every word earns its place. It is a model of efficient phrasing, though the thinness is penalized in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only source for return-shape information, but it never says what 'UI elements' means (node paths, control references, bounding rects, text values) or how the results are organized. It also does not clarify how this differs from the game_ui_* family or scene-tree queries, and it says nothing about failure states or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete and there is nothing for the description to add; per the rubric, this case gets a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('visible UI elements') scoped to the running game, and the word 'visible' adds useful specificity beyond a generic 'get UI' phrasing. However, it does not explicitly distinguish itself from partially overlapping siblings such as game_get_scene_tree, game_ui_tree, or game_get_nodes_in_group, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives; among the ~150 siblings, several overlap heavily (game_get_scene_tree, game_ui_tree, game_find_nodes_by_class, game_get_nodes_in_group). There is no stated context, prerequisite, or exclusion to help an agent select it correctly, so the agent must guess which query tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_giB
Create/configure VoxelGI or LightmapGI
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| size | No | Extents size {x,y,z} | |
| giType | Yes | Type: voxel_gi or lightmap_gi | |
| parentPath | Yes | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create/configure' hints at mutation but does not clarify whether the node is added to the scene, whether it modifies existing nodes, whether changes are persistent, or any side effects. This is a significant transparency gap for a creation/configuring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase with no redundant wording. It is front-loaded with the action and resource, but it earns slightly less than a 5 because the brevity leaves out useful context that could be expressed without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, no annotations, and no output schema, the description is too sparse to fully guide an agent. It lacks context about required parameters, behavior on existing nodes, effects on the scene, and when this tool is appropriate compared to related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description connects giType to VoxelGI/LightmapGI but does not add deeper meaning beyond what the schema provides, landing at the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Create/configure') and specific resources ('VoxelGI or LightmapGI'), making the tool's domain obvious. It is specific enough to distinguish it from sibling lighting tools like game_light_3d or game_environment, though 'configure' is somewhat generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating or configuring global illumination nodes, but it does not explain when to choose this tool over alternatives such as generic node creation tools or other lighting tools. There is no explicit when-to-use or exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_gridmapC
GridMap set/get/clear cells and query used cells
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Cell X coordinate | |
| y | No | Cell Y coordinate | |
| z | No | Cell Z coordinate | |
| item | No | MeshLibrary item index | |
| action | Yes | Action: set_cell, get_cell, clear, get_used | |
| nodePath | Yes | Path to GridMap node | |
| orientation | No | Cell orientation index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the burden of disclosing side effects and behavior. It conveys that set and clear mutate cells while get and get_used query them, but it does not clarify whether 'clear' clears one cell or the whole map, how queries return results, or what state changes are involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact, with no filler and the resource type front-loaded. The telegraphic style 'GridMap set/get/clear cells and query used cells' is clear enough, though a complete sentence would improve readability without much added length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description should explain per-action parameter requirements (e.g., set_cell needs coordinates and item, while get_used does not) and what query actions return. The current text is too sparse for an agent to reliably construct valid calls beyond selecting an action name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented including the action enum values and coordinate/item meanings. The description adds only the high-level grouping 'cells', so it stays at the schema baseline without adding meaningful new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies GridMap as the resource and enumerates the operations performed: set, get, clear, and query used cells. It is clearly about manipulating GridMap cell data and distinguishable from sibling tools like game_tilemap or game_canvas. It is a noun phrase rather than a full verb phrase, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, nor which action is appropriate for different scenarios. The description relies entirely on the action enum in the schema to convey use cases, with no conditions, exclusions, or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_http_requestB
HTTP GET/POST/PUT/DELETE with headers and body
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Request URL | |
| body | No | Request body string | |
| method | No | HTTP method: GET, POST, PUT, DELETE. Default: GET | |
| headers | No | Request headers as key-value pairs | |
| timeout | No | Timeout in seconds. Default: 30 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only restates the HTTP verbs and payload options found in the schema; it does not mention that the tool makes an external network call, can trigger side effects on remote servers, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning by enumerating supported methods and capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, no annotations, and a tool that can issue arbitrary network requests, the description is too sparse. It does not explain what the tool returns, how errors/timeouts surface, or that methods like POST/PUT/DELETE may modify remote resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all five parameters. The description adds no semantics beyond what the schema provides—it simply names headers and body, which are already described as key-value pairs and body string respectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action (performing HTTP requests) and the supported verbs (GET/POST/PUT/DELETE), along with headers and body. This clearly distinguishes it from the sibling game_* tools, none of which are general-purpose HTTP clients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use—making HTTP requests with a URL and optional method/headers/body—is implied by the description but never stated explicitly as 'use this when...' It does not mention alternatives like game_websocket or game_rpc, nor does it give exclusions for when plain HTTP is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_input_actionC
Manage runtime InputMap actions and strength
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Key name (for add_action) | |
| action | Yes | Action: set_strength, add_action, remove_action, list | |
| strength | No | Action strength 0.0-1.0 | |
| actionName | No | Input action name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full transparency burden, but 'manage' is vague. It does not disclose whether changes are ephemeral runtime-only modifications, whether removing actions has side effects, or what the list action returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with the important 'runtime' qualifier front-loaded and no filler. It is efficient, though a second sentence enumerating the supported operations would improve usefulness without hurting conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-mode tool with four possible actions and conditional parameter requirements, but the description does not explain mode-specific parameters, return behavior, or persistence semantics. With no output schema, the agent is left to infer invocation details from parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents all parameters. The description adds little beyond repeating 'actions and strength', and it does not clarify which parameters are required for each action mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource, 'runtime InputMap actions and strength', which helps distinguish it from static project-level input configuration. However, the verb 'manage' is generic and does not by itself convey the concrete operations like add_action, remove_action, or set_strength.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as manage_input_map for project-level input configuration or game_input_state for reading input state. The description provides no explicit usage context, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_input_stateC
Query pressed keys, mouse position, connected pads
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Mouse X (for warp_mouse) | |
| y | No | Mouse Y (for warp_mouse) | |
| action | No | Action: query, warp_mouse, set_mouse_mode | |
| mouseMode | No | Mode: visible, hidden, captured, confined |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only advertises a query operation, while the schema's action parameter includes warp_mouse and set_mouse_mode, both of which are mutating behaviors. Failing to disclose these side effects makes the description misleading about the tool's full behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no wasted words, and the query intent is front-loaded. It is appropriately concise for the querying aspect, though the missing action modes make it slightly too terse for full coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should be more complete. It gives a hint about returned data (keys, mouse position, pads) but ignores the mutating action parameter and provides no context about how the tool fits into the broader input-handling workflow. An agent could easily miss warp_mouse and set_mouse_mode capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents x, y, action, and mouseMode adequately. The description adds no parameter-level semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Query') and specific resources (pressed keys, mouse position, connected pads), making the primary purpose understandable and distinct from sibling simulation tools like game_key_press or game_mouse_move. However, it omits the non-query actions in the schema (warp_mouse, set_mouse_mode), so the description is incomplete on full purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as game_key_press, game_mouse_move, or game_gamepad. The word 'Query' implies a read operation, but the description does not explicitly state exclusions, prerequisites, or when one of the sibling tools should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_instantiate_sceneA
Load a PackedScene and add it as a child of a node in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Resource path to the scene (e.g., "res://scenes/enemy.tscn") | |
| parentPath | No | Path to the parent node. Default: "/root" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It does clearly state the core runtime side effect: loading a scene and adding it as a child node. However, it does not disclose error behavior, what happens if parentPath is invalid, whether a new instance is created each call, or whether the added node is removed when the scene changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that states the operation immediately. Every word adds useful meaning, with no filler or redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers its parameters, so the description is mostly sufficient. However, there is no output schema and the description does not mention return behavior or failure cases, and it does not provide routing guidance relative to similar runtime-scene tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both scenePath and parentPath already have meaningful descriptions with a default for parentPath. The tool description adds no additional parameter-level information beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Load') and resource ('PackedScene') and clearly states the resulting action: 'add it as a child of a node in the running game'. This distinguishes it from sibling tools like read_scene (file-level reading) and game_change_scene (switching the current scene).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied by the action: use this when you need to instantiate a PackedScene into the live scene tree. However, it does not explicitly say when not to use it or mention alternatives such as game_spawn_node, game_change_scene, or create_scene.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_key_holdA
Hold a key down without auto-releasing
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Key name (e.g. "W", "Space", "Shift") | |
| action | No | Godot input action name (e.g. "move_forward") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does state the key behavior—no auto-release—which is genuinely informative. But it does not explain how the held state ends, whether game_key_release is required, or what happens if both key and action parameters are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with zero wasted words. 'Without auto-releasing' adds critical behavioral meaning while keeping the description compact and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple two-parameter tool, but with no annotations and no output schema, it leaves some operational context unstated: how the hold is released, whether key and action are mutually exclusive or combined, and whether any prior press is required. An agent can infer some of this from sibling names, but the description itself is not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters already have meaningful descriptions and examples. The tool description adds no additional parameter-level semantics beyond what the schema provides, which is acceptable but not above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: hold a key down, with the qualifier 'without auto-releasing' distinguishing it from a normal press-and-release behavior. It is specific, uses a clear verb and resource, and separates it from related input tools like game_key_press.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without auto-releasing' implies a use case where a key must stay held, and sibling tools like game_key_release hint at the pairing. However, the description gives no explicit guidance on when to use this tool versus game_key_press or game_key_release, and no when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_key_pressC
Send a key press or input action to the running game
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Key name (e.g. "W", "Space", "Escape", "Enter") | |
| action | No | Godot input action name (e.g. "move_forward", "ui_accept") | |
| pressed | No | Press (true) or release (false). Default: true (auto-release) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and its single sentence only restates the purpose. The important auto-release behavior ('Default: true (auto-release)') lives in the pressed parameter schema rather than the description, and the description doesn't disclose requirements like game focus or how key and action interact when both are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence that front-loads the core purpose with no filler. It is lean to the point of terseness, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool sits in a large family of input tools (game_key_hold, game_key_release, game_click, game_gamepad, game_input_action) with no annotations and no output schema, yet the definition offers no routing, no prerequisites, and no success/failure semantics. The lack of required parameters plus the undefined key-vs-action relationship leaves an agent guessing at the valid call shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already fully documented and the baseline is 3. The description's 'key press or input action' adds a small amount of meaning by framing key and action as alternatives, but it doesn't specify mutual exclusivity or precedence between them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Send'), resource ('key press or input action'), and target ('running game'), making the core function clear in one clause. It distinguishes from obvious siblings like game_click or game_mouse_move through the 'key press' wording, though it doesn't explicitly differentiate from game_key_hold or game_key_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this tool over the closely related siblings game_key_hold, game_key_release, game_click, or game_gamepad. The phrase 'to the running game' implies a context, but the description never states the discrete-tap scenario it fits or when a sibling is the better choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_key_releaseA
Release a previously held key
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Key name to release | |
| action | No | Godot input action name to release |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It names the core state change (releasing a key), but says nothing about invalid keys, no-op behavior when nothing was held, whether key and action are mutually exclusive, or ordering/timing relative to a hold. This is a significant gap for a state-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the core meaning, making it immediately scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output, no-annotation tool, the description is usable but thin. It omits failure behavior, what happens if neither parameter is provided, and the explicit relationship to game_key_hold. Some of this is inferable from sibling names and schema, so it is not severely incomplete, but real gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the two parameters with meaningful descriptions such as 'Key name to release' and 'Godot input action name to release.' The tool description adds no extra parameter-level semantics, such as whether both parameters are alternatives or how to choose between them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action and target: 'Release a previously held key.' The phrase 'previously held' clearly scopes it to the counterpart of game_key_hold/game_key_press, distinguishing it from sibling input tools without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously held' implies the tool is meant to be used after game_key_hold or game_key_press, but it never explicitly says when to use it versus alternatives, nor does it mention conditions like 'only after a successful hold.' Usage context is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_light_2dB
Create/configure 2D lights and light occluders
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| color | No | Light color {r,g,b,a} | |
| range | No | Light texture range | |
| action | Yes | Action: create_point, create_directional, create_occluder | |
| energy | No | Light energy | |
| points | No | Occluder polygon points [{x,y},...] (for create_occluder) | |
| nodePath | No | Node path (for configure) | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description lacks details on side effects, permissions, or behavioral traits beyond stating 'create/configure'. For a resource creation tool, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite full schema coverage, the description is too brief for a tool with 8 parameters and no output schema. It does not explain the difference between actions or how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema parameter descriptions, but that is acceptable given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: creating and configuring 2D lights and light occluders. It uses specific verbs and resource, and distinguishes from sibling tools like game_light_3d.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. With many sibling tools (e.g., game_light_3d, game_environment), explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_light_3dB
Create/configure 3D lights (directional/omni/spot)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| color | No | Light color {r,g,b} | |
| range | No | Light range (omni/spot) | |
| action | Yes | Action: create or configure | |
| energy | No | Light energy/intensity | |
| shadows | No | Enable shadow casting | |
| nodePath | No | Node path (for configure) | |
| lightType | No | Type: directional, omni, spot | |
| spotAngle | No | Spot cone angle in degrees | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions create/configure but does not explain whether configure requires an existing node, whether create also updates, what happens on overwrites, or what side effects occur. This is under-disclosed for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the key verb and resource front-loaded. It has no wasted words, though it is so brief that it leaves important behavioral and contextual details to the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, no output schema, and no annotations, the description is incomplete. It does not explain required parameter combinations, the difference between create and configure flows, or what the tool returns. An agent would need to infer too much to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameter meanings. The description adds a light organizational context but does not clarify parameter interactions, such as which fields apply to create versus configure. Baseline 3 is appropriate because the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb pair ('Create/configure') with a clear resource ('3D lights') and enumerates the supported subtypes (directional/omni/spot). The '3D' qualifier distinguishes it from the sibling game_light_2d, so an agent can identify its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as game_light_2d, game_environment, or game_gi, and provides no exclusions or conditions. Usage context is only implied by the tool's name and stated purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_list_signalsC
List all signals on a node with connections
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It implies a read-only listing but does not state whether the operation has side effects, whether the node must exist, or what the returned data contains. 'With connections' is too vague to convey the actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and leads with the action and object. It is appropriately short for a simple tool, though slightly terse given the ambiguous 'with connections'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the result looks like — signal names, connection counts, connected callables, etc. It does not. This is a significant gap for an inspection tool, since an agent cannot predict the return format or how to interpret 'connections.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains one parameter, nodePath, with a clear description: 'Path to the node.' Schema coverage is 100%, so the description does not need to add parameter details. The tool description adds no extra semantic meaning, but the baseline of 3 is appropriate given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List all signals on a node with connections.' This clearly identifies the operation and distinguishes it from sibling signal tools like game_connect_signal or game_emit_signal. However, the phrase 'with connections' is somewhat ambiguous and does not explicitly map to any sibling boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as manage_scene_signals or game_get_node_info. There is also no mention of prerequisites, such as a valid scene or node path being loaded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_localeB
Set/get locale and translate strings at runtime
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Translation key (for translate) | |
| action | Yes | Action: get, set, translate | |
| locale | No | Locale code (e.g. en, es, fr) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden; it does disclose read vs. write operations and the runtime scope. However, it does not describe side effects (e.g., whether the locale persists), dependencies such as preloaded translations, or the shape of get/translate results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, and the core capability is front-loaded. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three distinct modes but no output schema and no per-action behavior explanation. An agent still lacks information about what get returns, what locale is used for translate, and what happens when set is called with an invalid locale.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is complete, so the schema already documents all three parameters. The description adds only a compact mapping of the three actions to the tool's behavior; it doesn't clarify per-mode parameter requirements beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination ('set/get locale and translate strings') and the runtime qualifier clarifies scope. It does not explicitly contrast with the sibling manage_translations, so it misses the full differentiation that would earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'At runtime' provides a clear general usage context and implies a distinction from design-time translation management, but the description never mentions alternatives or states when-not to use this tool. The action values in the schema carry some of the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_manage_groupC
Add or remove a node from a group, or list groups
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Group name | |
| action | Yes | Action: add, remove, get_groups, clear_group | |
| nodePath | No | Path to the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description bears the full behavioral burden. It discloses that the tool mutates group membership and can list groups, but it does not explain side effects of clear_group, return values, error behavior, or any prerequisites such as requiring an existing scene or valid node path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence and is easy to scan. However, it sacrifices completeness by omitting clear_group, so it is concise but not fully representative of the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four distinct actions, varying parameter requirements, no output schema, and no annotations, the description is not complete enough for an agent to reliably invoke every action. The missing clear_group behavior and lack of action-specific parameter guidance are notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a coarse mapping to actions like add, remove, and list groups, but it does not clarify the parameter dependencies, such as which actions require group or nodePath, and it omits clear_group entirely from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (groups) and the main operations (add, remove, list). It distinguishes group management from most siblings, but it omits the clear_group action and does not explicitly contrast with the closely related game_get_nodes_in_group tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives. In particular, it does not mention that read-only group membership queries may be better served by game_get_nodes_in_group, nor does it explain when to choose get_groups versus clear_group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_mesh_instanceC
Create MeshInstance3D with primitive meshes
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| size | No | Mesh size {x,y,z} | |
| height | No | Mesh height | |
| radius | No | Mesh radius | |
| material | No | Material resource path or color hex | |
| meshType | Yes | Mesh: box, sphere, cylinder, capsule, plane, quad | |
| parentPath | Yes | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only says 'Create MeshInstance3D...' and does not disclose side effects beyond creating a node, default sizing behavior, node naming if name is omitted, or whether calling it twice creates duplicates. It does not contradict annotations because none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, and the core action is front-loaded. It earns all 7 words; could be slightly richer without harming conciseness, so not a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple enough that parentPath + meshType are sufficient for a basic call, and the schema documents all parameters. Still, there is no output schema and no description of return value, node naming defaults, or per-meshType parameter applicability, leaving moderate ambiguity for an agent choosing optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each property already has a description. The description adds only the 'primitive meshes' concept and does not clarify how size/height/radius map to the six meshType choices, but the schema carries the parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Create') and a specific Godot node type ('MeshInstance3D'), plus the scope ('primitive meshes'). This distinguishes it from broader sibling tools like game_spawn_node and from game_procedural_mesh, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool versus game_spawn_node, game_procedural_mesh, or game_multimesh. No prerequisites or conditions are described. The intended context must be inferred from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_mouse_dragC
Drag mouse between two points over N frames
| Name | Required | Description | Default |
|---|---|---|---|
| toX | Yes | End X coordinate | |
| toY | Yes | End Y coordinate | |
| fromX | Yes | Start X coordinate | |
| fromY | Yes | Start Y coordinate | |
| steps | No | Number of frames for the drag. Default: 10 | |
| button | No | Mouse button (1=left). Default: 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals that the drag is animated 'over N frames', but it does not state the fundamental drag lifecycle — whether the button is pressed at the start, held during movement, and released at the end — nor whether coordinates are screen-relative. For a drag operation this lifecycle is the core behavior an agent needs to understand.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single ten-word sentence that is verb-first and front-loads the essential scoping ('Drag mouse between two points over N frames'). Every word earns its place; there is zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus a well-covered schema is sufficient to make a syntactically correct call, but with no annotations and no output schema, key behavioral context is missing — the press-hold-release semantics, coordinate system, and relationship to sibling input tools. An agent can invoke it correctly but cannot predict the side effects or whether it needs to chain other calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The phrases 'between two points' and 'over N frames' map conceptually to the from/to coordinate parameters and the steps parameter, but the description adds no meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Drag'), a resource (mouse), and the operation's scope ('between two points over N frames'). The term 'drag' inherently distinguishes it from sibling tools like game_mouse_move and game_click, though it doesn't explicitly name them or contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus closely related siblings such as game_mouse_move (move without button) or game_click (single click). No prerequisites, exclusions, or conditions are stated, so an agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_mouse_moveB
Move the mouse in the running Godot game
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Absolute X position | |
| y | Yes | Absolute Y position | |
| relative_x | No | Relative X movement | |
| relative_y | No | Relative Y movement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says 'Move the mouse' and does not disclose coordinate semantics, whether movement is instant or simulated, whether it triggers game input events, or what side effects may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler or redundant details. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mouse-movement tool with well-documented parameters, the description is minimally adequate. However, it lacks context about coordinate systems, whether relative movement can be combined with absolute movement, and what happens if the game is not focused or not running.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter including absolute and relative movement semantics. The description adds no additional parameter meaning, but the baseline of 3 applies because the schema handles the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Move the mouse') and the target context ('in the running Godot game'). It is specific and understandable, but it does not explicitly differentiate itself from sibling tools like game_click or game_mouse_drag beyond the verb choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as game_mouse_drag or game_click. No exclusions, scenarios, or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_multimeshB
Create/configure MultiMeshInstance3D for instancing
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| count | No | Instance count | |
| index | No | Instance index (for set_instance) | |
| action | Yes | Action: create, set_instance, get_info | |
| meshType | No | Mesh: box, sphere, cylinder, quad | |
| nodePath | No | Node path (for set_instance/get_info) | |
| transform | No | Transform {origin:{x,y,z}, rotation:{x,y,z}} | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden, but it only states the resource and purpose. It does not disclose whether 'create' adds a node to the scene tree, whether 'set_instance' mutates an existing multimesh, what 'get_info' returns, or any side effects like overwriting existing configuration. This is a significant transparency gap for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or repetition, making it easy to scan. It is concise to the point of being terse, but it does every word count is minimal and focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, a nested transform object, no annotations, no output schema, and a large sibling set, the description is too thin. It leaves the action semantics, parameter combinations, and return behavior of get_info undocumented. An agent would need to infer too much from the schema alone to invoke this tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description adds no extra semantic detail beyond the schema—for example, it does not explain how the transform object relates to a multimesh instance, what units are expected, or how count and index interact with the actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair: 'Create/configure MultiMeshInstance3D for instancing', identifying both the node type and its intended purpose. It is not a tautology and provides enough specificity to distinguish the tool's domain from generic scene tools, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for instancing' implies the intended use case, but the description offers no comparison with alternative tools like game_mesh_instance or game_spawn_node, and no guidance on when to choose this tool over them. It also does not clarify when to use each action value (create, set_instance, get_info), leaving usage partially implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_multiplayerC
ENet multiplayer create server/client/disconnect
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Server port. Default: 7000 | |
| action | Yes | Action: create_server, create_client, disconnect, status | |
| address | No | Server address for client. Default: 127.0.0.1 | |
| maxClients | No | Max clients for server. Default: 32 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only lists actions without explaining lifecycle, side effects, statefulness, or what happens on connect/disconnect. It does not mention expected output, errors, or whether creating a server blocks or returns immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the protocol and primary actions. It is terse to the point of being ungrammatical, but every word conveys meaningful scope information without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a stateful networking tool with four parameters and no output schema, yet the description gives no context about connection flow, default behavior, return values, or failure modes. It is minimally viable for identifying the tool but insufficient for correctly invoking it in varied scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented in the schema. The description adds little beyond naming ENet multiplayer, but it does not contradict or duplicate parameter details, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the protocol (ENet) and the core operations (create server/client/disconnect), making the tool's purpose clear. It doesn't explicitly call out alternatives like game_rpc or game_websocket, but the ENet multiplayer focus distinguishes it from most siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus related networking tools such as game_rpc, game_websocket, or game_http_request. The action list implies usage, but there is no explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_os_infoA
Get platform, locale, screen, adapter, memory info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The verb 'Get' strongly implies a non-destructive read operation, which is appropriate and clear. It does not disclose more nuanced behavior such as return shape or whether the info comes from the OS versus the game engine, but for a simple info query this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or redundant wording. It front-loads the action and lists the relevant information categories efficiently, making every word meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, straightforward info-retrieval tool, the description is complete enough for an agent to decide to call it. There is no output schema, so details about the exact format are missing, but the listed categories give a clear expectation of the returned subject matter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage, so there is no parameter gap to fill. The baseline of 4 applies because the tool requires no arguments and the description's reference to specific info categories is sufficient for an agent to understand what the result would cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource categories (platform, locale, screen, adapter, memory info), making the tool's purpose immediately understandable. It does not explicitly differentiate it from siblings like game_locale or game_performance, but the combination of OS-related categories is sufficiently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: an agent would use this when it needs system-level information such as platform or memory. However, the description gives no explicit guidance on when to prefer this tool over alternatives, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_parallaxB
Create/configure ParallaxBackground and layers
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| action | Yes | Action: create_background, add_layer, configure | |
| nodePath | No | Node path (for configure) | |
| mirroring | No | Mirroring {x,y} (ParallaxLayer) | |
| parentPath | No | Parent node path | |
| motionScale | No | Motion scale {x,y} (ParallaxLayer) | |
| motionOffset | No | Motion offset {x,y} (ParallaxLayer) | |
| scrollOffset | No | Scroll offset {x,y} (ParallaxBackground configure) | |
| scrollBaseOffset | No | Scroll base offset {x,y} (ParallaxBackground configure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only gives a high-level purpose. No disclosure of side effects, auth needs, or whether actions are destructive (e.g., overwriting nodes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the action. Could be slightly more structured to list actions, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, nested objects, and three actions, the description is insufficient. It does not explain the workflow or how actions relate to parameters, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the schema. The description does not elaborate on the three actions or parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create/configure' and the resource 'ParallaxBackground and layers', which distinguishes it from many sibling tools focused on other game elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention any prerequisites, when not to use, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_path_2dD
Path2D/Curve2D management and AnimatedSprite2D
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| point | No | Single point {x,y} | |
| action | Yes | Action: create, add_point, set_points, get_points | |
| points | No | Array of points [{x,y},...] | |
| nodePath | No | Path2D node path | |
| parentPath | No | Parent node path (for create) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must disclose behavioral traits itself, but it does not. It never says whether actions like create, add_point, or set_points mutate the scene, require an existing node, or have side effects. The only behavioral signal is the vague word 'management', which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but not effectively concise: it includes irrelevant text ('AnimatedSprite2D') and substitutes the generic noun 'management' for a useful verb phrase. It is under-specified rather than economically precise, and the structure does not front-load the key operation or scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no annotations, and no output schema, the description needed to explain the action semantics, point format, and node-path relationships. It provides none of that context, and it does not differentiate this tool from closely related siblings. This is not enough context for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema carries the semantic load for fields like action, point, and points. The description itself adds no parameter meaning, but the baseline of 3 is appropriate because the schema already documents all parameters. The unrelated 'AnimatedSprite2D' mention does not clarify any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Path2D/Curve2D management' but never states a concrete operation such as creating, editing, or querying paths. It also lists 'AnimatedSprite2D', which is unrelated to the input schema's point/action semantics and confuses the tool's actual purpose. This is vague rather than a clear verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like game_path_3d or animation-related tools. The description does not mention prerequisites, intended scene context, or when this tool should be preferred over sibling tools. The agent is left to infer usage entirely from the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_path_3dB
Create Path3D/Curve3D and manage curve points
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Node name | |
| point | No | Single point {x,y,z} | |
| action | Yes | Action: create, add_point, set_points, get_points | |
| points | No | Array of points [{x,y,z},...] | |
| nodePath | No | Path3D node path (for add/set/get) | |
| parentPath | No | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It summarizes operations but does not disclose whether set_points overwrites existing points, whether create mutates the scene tree, what side effects occur, or what the result of get_points looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It earns its place but is terse; a little more structure around the available actions would improve it without adding bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has six parameters, four distinct actions, and nested point objects, yet no output schema or annotations. The one-line description cannot equip an agent with the per-action semantics, required fields, or return behavior needed to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all six parameters have descriptions, so the baseline is 3. The description adds only a high-level 'manage curve points' statement and does not clarify action-specific requirements like nodePath being needed for add/set/get.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create Path3D/Curve3D and manage curve points.' The 3D qualifier clearly distinguishes it from the sibling game_path_2d, so an agent can tell them apart at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is implied by naming the Path3D/Curve3D resource, but the description gives no explicit when-to-use guidance or exclusions. It does not tell the agent when to choose this over game_path_2d or navigation-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_pauseB
Pause or unpause the running game
| Name | Required | Description | Default |
|---|---|---|---|
| paused | No | True to pause, false to unpause. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not explain whether the pause is a toggle or a set operation, what happens if the game is already paused or not running, or how this affects game loop execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that immediately conveys the action. There is no redundant phrasing, filler, or repeated information from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter runtime control, the description plus schema is nearly sufficient for an agent to invoke it correctly. It is somewhat thin on behavioral side-effects and usage context, but the low complexity of the tool means not much more is strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the paused parameter is fully described in the schema with its meaning and default. The tool description adds no additional parameter context, but the schema already provides sufficient semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('pause or unpause') and resource ('the running game'), making it distinguishable from stop/start tools. It does not explicitly differentiate itself from related runtime controls like game_time_scale or game_process_mode, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as stop_project, game_time_scale, or game_wait. The phrase 'running game' implies it applies during an active session, but there are no explicit conditions, exclusions, or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_performanceA
Get performance metrics (FPS, memory, draw calls)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. The word "Get" implies a read-only, non-mutating operation, and the listed metrics clarify what is returned. However, the description does not disclose whether the values are live snapshots, their units, or whether any runtime state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning, naming both the operation and the exact data returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless getter, the description covers the essential information: what operation is performed and what data is returned. It could be more complete by stating the return structure or units, but the absence of parameters and output schema keeps the context manageable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema contributes nothing and the description is not required to document parameters. The metric names in the description clarify the conceptual outputs, which is sufficient given the parameterless signature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, "Get," with a clear resource, "performance metrics," and explicitly lists the contained metrics: FPS, memory, draw calls. This distinguishes it from the many game_* siblings, none of which target performance metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever an agent needs performance data for the running game. It does not explicitly mention alternatives or conditions to prefer another tool, but for a parameterless getter this is a reasonable implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_physics_2dB
Area2D queries and 2D point/shape intersections
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End point {x,y} (for ray) | |
| from | No | Origin point {x,y} | |
| size | No | Rectangle size {x,y} (shape_query rectangle) | |
| action | Yes | Action: overlap, point_query, shape_query, ray | |
| radius | No | Circle radius (shape_query circle) | |
| nodePath | No | Area2D/node path (for overlap) | |
| position | No | Query position {x,y} (point_query/shape_query) | |
| shapeType | No | Shape: circle or rectangle (shape_query) | |
| maxResults | No | Max results. Default: 32 | |
| collisionMask | No | Collision mask bitmask |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description must disclose behavior. It mentions queries and intersections but does not specify side effects, permissions, or performance implications. The action 'overlap' could be read-only or have side effects, but this is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very short (5 words) and front-loaded. It is concise but may be too brief to be fully informative. Still, it wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 10 parameters and no output schema. Description does not explain return values, how actions differ, or complex behaviors. It is insufficient for an agent to use correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond summarizing the action. It does not explain parameter relationships or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool performs 'Area2D queries and 2D point/shape intersections'. It uses a specific verb ('queries', 'intersections') and identifies the resource ('Area2D', '2D point/shape'), distinguishing it from sibling tools like game_physics_3d or game_raycast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not provide context, prerequisites, or exclusions, leaving the agent to infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_physics_3dC
Area3D queries and point/shape intersection tests
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Ray end {x,y,z} | |
| from | No | Ray/point origin {x,y,z} | |
| action | Yes | Action: overlap, point_query, shape_query, ray | |
| nodePath | No | Area3D/node path (for overlap) | |
| collisionMask | No | Collision mask bitmask |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Queries and intersection tests' weakly implies read-only behavior, but it doesn't state whether there are side effects, what results are returned, or any scene/Area3D requirements. A read-only hint is not explicitly given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded phrase with no filler or repetition of the parameter schema. It is too terse to carry full behavioral weight, but as a conciseness/structure measure there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-action tool with 5 parameters, no output schema, and no annotations, the description is too sparse. It does not explain each action's expected parameter usage, return values, or how shape_query differs from point_query/ray, so an agent would likely need to open other tools or infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds only the context that these are Area3D/intersection operations; it doesn't elaborate on how 'from', 'to', 'nodePath', or 'collisionMask' are used per action, but the schema already describes each property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Area3D) and operations (point/shape intersection tests), and the schema's action values clarify the included modes (overlap, point_query, shape_query, ray). However, it doesn't explicitly contrast with siblings like game_raycast or game_physics_2d, leaving some differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over game_raycast or other physics/query siblings, nor any exclusions or prerequisites. The only usage signal is the schema's action list, which the agent must interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_physics_bodyC
Configure physics body properties (mass, velocity, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| mass | No | Body mass | |
| bounce | No | Physics material bounce | |
| freeze | No | Freeze the body | |
| friction | No | Physics material friction | |
| nodePath | Yes | Path to physics body node | |
| sleeping | No | Put body to sleep | |
| linearDamp | No | Linear damping | |
| angularDamp | No | Angular damping | |
| gravityScale | No | Gravity scale | |
| linearVelocity | No | Linear velocity {x,y} or {x,y,z} | |
| angularVelocity | No | Angular velocity (float for 2D, {x,y,z} for 3D) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior, but it only says 'configure' without explaining side effects, whether the change applies to the live scene or saved file, whether existing values are overwritten, or whether setting freeze/sleeping interacts with other properties. A one-sentence summary is not enough for an 11-parameter mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. However, it is somewhat under-specified for the tool's complexity, and while concise, it lacks the front-loaded scoping detail that would make the conciseness fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters, no annotations, no output schema, and a large set of physics-related siblings, this description is too minimal. It does not explain the node requirement beyond the schema, the behavior expected after configuration, or how this tool relates to the broader physics toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 11 parameters with individual descriptions, so the baseline is 3. The description adds only 'mass, velocity, etc.' as generic examples and does not clarify parameter relationships, defaults, or units beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('configure') and a specific resource ('physics body properties'), with examples of the property types (mass, velocity). It distinguishes itself from scene manipulation and input tools, though it does not explicitly clarify whether this targets 2D, 3D, or both physics body kinds relative to siblings like game_physics_2d and game_physics_3d.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as game_physics_2d, game_physics_3d, game_add_collision, or game_create_joint. The phrase 'Configure physics body properties' implies a narrow purpose but never states prerequisites, exclusions, or how it differs from the many related physics tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_play_animationB
Control an AnimationPlayer node: play, stop, pause, or list animations
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: "play", "stop", "pause", or "get_list" | |
| nodePath | Yes | Path to the AnimationPlayer node | |
| animation | No | Animation name (required for "play" action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only enumerates actions without explaining consequences, return values, error conditions, or whether operations mutate transient game state. It does not disclose what happens with an invalid node path or missing animation name, or what the list action returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the resource and the supported operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is enough to recognize the tool but not to fully invoke it confidently: it does not state what get_list returns, whether play/stop/pause have side effects or require a valid running scene, or how errors surface. The absence of annotations and an output schema increases the need for such context, which is not supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies and the description does not need to add much. The description's action list mirrors the schema's action values but adds no extra meaning about defaults, restrictions, or parameter relationships beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (AnimationPlayer node) and the four operations (play, stop, pause, list animations), so an agent knows what the tool does. However, it does not explicitly differentiate it from the similar sibling game_animation_control, leaving some ambiguity about which animation-related tool to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for driving an AnimationPlayer node, but it never states when to prefer this tool over siblings like game_animation_control, game_animation_tree, or game_create_animation. There are no exclusions or explicit routing cues, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_procedural_meshC
Generate meshes via ArrayMesh from vertex data
| Name | Required | Description | Default |
|---|---|---|---|
| uvs | No | UV coordinates [[u,v],...] | |
| name | No | Node name | |
| indices | No | Triangle indices [i0,i1,i2,...] | |
| normals | No | Vertex normals [[x,y,z],...] | |
| vertices | Yes | Vertex positions [[x,y,z],...] | |
| parentPath | Yes | Parent node path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full disclosure burden. It reveals only the core generation action and does not say whether a node is created in the scene tree, what the returned result is, or how invalid index/UV data is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence front-loads the action, resource, and method without filler. It earns its place despite being terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mesh-creation tool with no output schema and no annotations, the description is too thin. It omits the scene-tree effect implied by parentPath, what the tool returns, and how it should be chosen among the many mesh/scene sibling tools, so an agent has only partial context for invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters already have schema descriptions, so the baseline is 3. The phrase 'from vertex data' adds little beyond the schema's vertices parameter, and the description does not explain relationships among vertices, indices, normals, and uvs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action ('generate meshes'), the engine mechanism ('ArrayMesh'), and the data source ('vertex data'). It is clear but does not explicitly differentiate from sibling tools like game_multimesh or game_mesh_instance, so it stops short of a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this tool over sibling geometry tools such as game_multimesh, game_mesh_instance, or game_csg. There are no prerequisites or exclusions; the implied use case is only that vertex data is needed, which is already visible from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_process_modeC
Set node process mode (pausable/always/disabled)
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Mode: inherit, pausable, when_paused, always, disabled | |
| nodePath | Yes | Path to the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of disclosing side effects, but it does not explain what pausable, always, disabled, inherit, or when_paused actually do at runtime. It also doesn't mention whether this affects the node's children, whether it changes pause state, or what the consequences of 'disabled' are.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately short for a simple setter-like operation, though it sacrifices some behavioral detail for terseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with complete schema coverage, the description is minimally adequate: an agent knows the operation and can find the parameters in the schema. But since there are no annotations and no output schema, the lack of mode semantics and side effects leaves a moderate gap for a state-changing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds a partial list of mode values, but it omits 'inherit' and 'when_paused', and it does not clarify their meanings beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and identifies the target resource ('node process mode'), which is distinct from global pause or time-scale tools among the siblings. However, it lists only three of the five valid modes and does not explicitly differentiate from sibling tools like game_pause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as game_pause or game_time_scale. The description simply states the operation without any context for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_raycastB
Cast a ray and return collision results
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End point {x,y} or {x,y,z} | |
| from | Yes | Start point {x,y} or {x,y,z} | |
| collisionMask | No | Collision mask. Default: 0xFFFFFFFF |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only states the action and vaguely promises 'collision results.' It does not disclose the shape of the returned results, whether triggers are hit or only solid bodies, whether it returns the first hit or all hits, or that this is a read-only operation. The statement is accurate but drastically under-discloses behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Eight words, zero filler, front-loaded with the operative verb. The single sentence earns its place and correctly leaves parameter details to the schema rather than repeating them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool this is minimum viable: the schema covers all parameters and the description states the core operation. However, with no output schema and no annotations, the return contract ('collision results' is undefined — hit point? object reference? distance?) and the read-only safety profile are left unspecified, so an agent cannot fully predict what the tool will return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already documents from, to, and collisionMask with point formats and a default value. The description adds no parameter-level information, but per the baseline rule for high schema coverage, a 3 is appropriate — the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('cast') with a specific resource ('ray') and states the outcome ('return collision results'). This is canonical raycast terminology that an agent will immediately recognize, and it distinguishes the tool from all ~150 siblings, none of which perform raycasting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions no exclusions, prerequisites (e.g., an active physics world), or when a raycast is preferable to other collision queries among the physics-related siblings (game_add_collision, game_physics_3d, game_physics_2d). The agent must infer usage entirely from the name and minimal description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_remove_nodeB
Remove and free a node from the running game's scene tree
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that the operation is destructive through 'remove and free,' but it does not mention important side effects such as whether child nodes are also freed, behavior on invalid paths, or prerequisites before deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the core action immediately and every word contributes necessary meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is mostly adequate. However, it omits operational details that would help an agent avoid errors, such as expected NodePath syntax, whether the freed node's children are also freed, and what happens if the provided path does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter, nodePath, is already described as 'Path to the node to remove.' The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Remove and free a node from the running game's scene tree.' It clearly states what the tool does and distinguishes it from editor-scene operations like remove_scene_node, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'running game's scene tree' implies this is for live runtime manipulation rather than editing scene files. However, the description gives no explicit when-to-use guidance, no exclusions, and no direct comparison to alternatives such as remove_scene_node or game_reparent_node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_render_settingsC
Get/set MSAA, FXAA, TAA, scaling mode/scale
| Name | Required | Description | Default |
|---|---|---|---|
| taa | No | Enable TAA | |
| fxaa | No | Enable FXAA | |
| action | No | Action: get or set | |
| msaa2d | No | MSAA 2D mode (0-3) | |
| msaa3d | No | MSAA 3D mode (0-3) | |
| scalingMode | No | Scaling mode (0=bilinear, 1=FSR1, 2=FSR2) | |
| scalingScale | No | Render scale (0.0-1.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but it merely states 'Get/set' without explaining side effects, whether changes persist, whether the action parameter is required, or what happens if both get and set are attempted. The mutating nature is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loads the core purpose with no filler. It is somewhat under-specified, but it earns its brevity by communicating the tool's scope in a single readable phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 optional parameters, no output schema, and no annotations, the description is not sufficient. It does not explain the default behavior when 'action' is omitted, what the get operation returns, or which parameters apply to get versus set, leaving important operational details to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter's meaning. The description adds no further detail beyond naming the same settings, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb pair ('Get/set') and names the exact resources (MSAA, FXAA, TAA, scaling mode/scale), so an agent can infer what the tool operates on. It does not explicitly differentiate from related sibling tools like game_performance or game_viewport, but the specific render-setting vocabulary is enough to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as game_viewport, game_environment, or game_performance. The description gives no exclusions, prerequisites, or context for choosing between get and set behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_reparent_nodeA
Move a node to a new parent in the running game's scene tree
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node to move | |
| newParentPath | Yes | Path to the new parent node | |
| keepGlobalTransform | No | Whether to keep the global transform. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core reparenting operation but does not mention side effects such as children moving with the node, transform preservation behavior beyond the schema's keepGlobalTransform default, invalid-path error behavior, or the implication that the game must be actively running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero wasted words, front-loaded with the verb and object before the scope qualifier. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a runtime mutation tool with no annotations and no output schema, the description covers the what but omits error conditions, return values, and edge-case behavior such as invalid paths or reparenting a node into its own descendant. It is minimally viable for basic invocation but leaves gaps an agent may need to probe at runtime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (nodePath, newParentPath, keepGlobalTransform) already documented in the schema. The description adds no parameter-level meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Move') and resource ('a node to a new parent'), scoped to 'the running game's scene tree.' The runtime qualifier clearly distinguishes it from static scene-file tools like modify_scene_node and remove_scene_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'running game's scene tree' phrasing gives clear context that this tool operates on the live tree at runtime, separating it from file-based scene manipulation siblings. It does not explicitly name alternatives or exclusion conditions, which would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_resourceC
Runtime resource load, save, or preload
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Resource path (res://) | |
| action | Yes | Action: load, save, exists | |
| nodePath | No | Node path (for save - saves node resource) | |
| property | No | Property name holding the resource |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of explaining behavior. It indicates runtime resource operations but does not disclose side effects, such as whether save writes to disk, whether preload caches the resource, what exists returns, or whether the operations require an already-loaded node. The mismatch between the description's 'preload' and the schema's 'exists' further muddies the actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase with the runtime qualifier front-loaded and no filler words. It is appropriately concise for a tool whose parameter details live in the schema, though it is too sparse to stand alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no output schema, and no annotations, the description should clarify accepted action values, prerequisites for saving, return behavior, and side effects. It does none of these, leaving an agent to guess at important runtime semantics beyond the bare parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description itself adds no parameter detail. The schema descriptions for action, path, nodePath, and property are present but terse and somewhat ambiguous, especially nodePath and property in the save case. The description does not reconcile 'preload' with the schema's accepted action values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific domain (runtime resources) and a set of concrete operations (load, save, preload), so an agent can tell it is a runtime resource utility. It does not fully distinguish it from siblings like create_resource, manage_resource, or read_file/write_file, and it conflicts slightly with the schema's action list (preload vs exists), but the core purpose is understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of related siblings such as create_resource, manage_resource, or read_file/write_file. The word 'runtime' weakly implies it is for game-time resource operations, but no explicit when-to-use, when-not-to-use, or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_rpcC
Call or configure RPC methods on nodes
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments for the RPC call | |
| mode | No | RPC mode: any_peer, authority | |
| sync | No | Sync mode: call_local, call_remote | |
| action | Yes | Action: call, configure | |
| method | Yes | Method name | |
| channel | No | Transfer channel | |
| nodePath | Yes | Path to the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses almost nothing. It does not state whether 'call' is local, remote, or network-dependent, what 'configure' changes on the node, whether the operation is synchronous, what happens when the node path is invalid, or how the sync/mode/channel parameters affect a call. This is a significant gap for a dual-purpose tool handling networking behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single eight-word sentence with no filler or redundancy; the verb and resource are front-loaded. It is efficiently sized, though the terseness contributes to the under-specification penalized in other dimensions. It earns a high score for conciseness because every word carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, this description is inadequate on its own. It omits what an RPC is in this engine context, the behavioral difference between call and configure, the meaning of sync modes and channels, and any error/return behavior. An agent would need to infer networking semantics purely from the tool name and raw parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description adds no parameter detail. All seven parameters (nodePath, action, method, args, mode, sync, channel) already have descriptions in the schema. The description's mention of 'call or configure' loosely maps to the action parameter but adds no meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb-action pair ('Call or configure') and a specific resource ('RPC methods on nodes'), so it is not a tautology. However, it relies on the domain jargon 'RPC' without explaining that this means networked/multiplayer remote procedure calls, and 'Call...methods on nodes' closely overlaps with the sibling game_call_method. An agent cannot reliably tell this tool apart from game_call_method or game_multiplayer from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description does not mention multiplayer scenarios, does not contrast with game_call_method for local invocations, and does not explain the difference between the 'call' and 'configure' actions it references. The sibling list contains game_multiplayer and game_call_method, both of which an agent would struggle to choose between given this definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_screenshotA
Screenshot the running game (returns base64 PNG)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the base64 PNG return format and implies a read-only capture behavior, but it does not specify whether the screenshot saves to disk, captures the whole window or viewport, or what happens if no game is running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. The core action is placed first, and the return format is parenthetically included without adding unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, low-complexity tool, the description is largely sufficient: it tells the agent what to do and what output to expect. The main missing context is prerequisites and exact capture scope, but these do not prevent basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the baseline for a zero-parameter tool is 4. The description adds no parameter details but also has none to document; no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Screenshot'), the target ('the running game'), and the output format ('returns base64 PNG'). This is specific enough to distinguish it from the large list of game_* sibling tools, none of which capture a full-screen image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: capture the currently running game as an image. It does not explicitly name alternatives or when not to use it, but given the tool has no parameters and a unique purpose among siblings, this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_scriptC
Attach, detach, or get source of node scripts
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: attach, detach, get_source | |
| source | No | GDScript source code (for attach) | |
| nodePath | Yes | Path to the node | |
| className | No | Class the script extends |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does at a high level but does not explain side effects of detaching, whether modifications persist to files, what get_source returns, or any failure/error behavior. This is a meaningful transparency gap for a tool that mutates node state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero filler. It efficiently captures the tool's scope in ten words and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, three distinct operations, no output schema, and no annotations, this description is too thin. It omits return values, side effects, configuration expectations, and relationship to overlapping tools like attach_script, leaving an agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a compact summary of the three action values, which reinforces the action parameter's meaning but does not add substantive detail beyond the schema. A baseline of 3 is appropriate when the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing node scripts through three distinct verbs: attach, detach, and get source. It is specific about the resource (node scripts), but it does not distinguish itself from the sibling tool attach_script, which overlaps with the attach operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists supported actions but gives no guidance on when to use this tool versus alternatives such as attach_script, or when detach/get_source would be appropriate. There is no mention of prerequisites, context, or exclusions, so an agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_scrollC
Send mouse scroll wheel event at position
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position for scroll event | |
| y | Yes | Y position for scroll event | |
| amount | No | Scroll amount (clicks). Default: 1 | |
| direction | No | "up", "down", "left", or "right". Default: "up" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain how the scroll event is delivered, whether 'amount' maps to wheel notches, how 'direction' behaves, or what happens when coordinates are invalid. This is a significant gap for a synthetic input tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action ('Send') and object ('mouse scroll wheel event') and includes the position qualifier. Given the schema covers details, this length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, this description is incomplete. It lacks coordinate system context, interaction with 'amount' and 'direction', boundary behavior, and success/failure semantics. An agent would need to guess or experiment to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only the word 'position', which is redundant with schema parameter names. It doesn't add extra meaning beyond what the schema already documents, but since the schema is complete, the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Send mouse scroll wheel event at position'. It clearly identifies the action and target. It doesn't explicitly differentiate from sibling tools, but in context of game_click, game_key_press, game_mouse_move, and game_mouse_drag, its purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like game_mouse_drag or game_click. There is no mention of coordinate space, whether it works in the game viewport or OS-level, or any prerequisites. An agent must infer usage from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_serialize_stateC
Save or load node tree state as JSON
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | State data to restore (for load) | |
| action | No | Action: save or load. Default: save | |
| maxDepth | No | Max tree depth to serialize. Default: 5 | |
| nodePath | No | Root node path. Default: "/root" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Save or load' only tells the agent the operation type; it does not say whether save returns the JSON or writes a file, whether load mutates the live scene tree destructively, how non-serializable nodes are handled, or what the response format is. For a tool with both read and write modes, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler words; the dual-mode purpose appears immediately. It is appropriately compact, though slightly under-specified for a tool with two behaviors and four parameters, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description needed to explain what save returns, what load mutates, and how the parameters fit together; it does none of this. An agent calling game_serialize_state knows roughly what it does but not what to expect back or what side effects to anticipate, which is incomplete for a dual-mode serialization tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters and their defaults. The description adds modest value by clarifying that the serialized payload is JSON and linking 'save or load' to the action parameter's two modes, but it does not explain the interplay between data, nodePath, and maxDepth (e.g., whether data is the output of a prior save). Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Save or load node tree state') and pinpoints the format ('as JSON'), so an agent can tell that this tool serializes/deserializes scene state. It is not a tautology and maps clearly to the action parameter's save/load modes. However, it does not explicitly differentiate itself from similar siblings such as save_scene or read_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like save_scene, read_scene, or game_get_scene_tree. With a large sibling list containing several scene-related tools, the agent is left to infer whether this is for runtime state snapshots, file persistence, or scene inspection. No exclusions, prerequisites, or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_set_cameraC
Move or rotate the active camera
| Name | Required | Description | Default |
|---|---|---|---|
| fov | No | Field of view for Camera3D | |
| zoom | No | {x,y} zoom for Camera2D | |
| position | No | {x,y} or {x,y,z} for camera position | |
| rotation | No | {x,y,z} rotation in degrees |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden, but it only states the basic mutation ('move or rotate'). It does not disclose that fov and zoom can also be set, that both Camera2D and Camera3D are supported, whether values are applied immediately, how unspecified parameters are handled, or any required precondition such as an existing active camera.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the core verb comes first. It loses a point for being so terse that it omits the fov and zoom behaviors, though that is more a completeness issue than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four optional parameters, nested objects, no output schema, and no annotations, so the description must carry significant context. It provides only the bare move/rotate statement and omits fov/zoom support, 2D vs 3D camera behavior, return behavior, and prerequisites, leaving important gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented individually with types and formats, such as '{x,y} or {x,y,z}' for position and degrees for rotation. The description adds no extra parameter context, but the baseline of 3 applies because the schema handles the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb phrase, 'Move or rotate', with a clear resource, 'the active camera', and it distinguishes this tool from read-style siblings like game_get_camera. However, it omits two supported capabilities visible in the schema, fov and zoom, so it under-states the tool's full purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided, and no alternative tools are mentioned. An agent must infer from the name and sibling list that this is the tool for modifying the active camera, and it receives no direction about camera prerequisites or cases where game_camera_attributes or game_viewport would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_set_particlesC
Configure GPUParticles2D/3D node properties
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Number of particles | |
| oneShot | No | One-shot mode | |
| emitting | No | Enable/disable emission | |
| lifetime | No | Particle lifetime in seconds | |
| nodePath | Yes | Path to GPUParticles node | |
| randomness | No | Randomness ratio (0-1) | |
| speedScale | No | Speed scale | |
| explosiveness | No | Explosiveness ratio (0-1) | |
| processMaterial | No | ParticleProcessMaterial settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only implies mutation through 'Configure'. It does not state whether existing settings are overwritten, whether processMaterial is merged or replaced, what happens on an invalid nodePath, or whether changes apply immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single non-redundant sentence that front-loads the core message. It is appropriately brief, though the brevity is achieved mainly by omitting detail rather than by distilling richer content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, a nested processMaterial object, no annotations, and no output schema, one generic sentence is insufficient. Crucial context — prerequisites, effect semantics, and error behavior — is missing, though the schema's 100% parameter coverage softens the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 9 parameters are already documented with concise descriptions in the schema. The tool description adds no parameter-level context, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Configure') and resource ('GPUParticles2D/3D node properties'), going beyond the tool name to specify the node family. It stops short of a 5 because it offers no differentiation from generic setters like game_set_property, which could also target particle nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, no prerequisites (e.g., the target node must already exist in the scene), and no exclusions or alternatives. With overlapping siblings like game_set_property and game_spawn_node, an agent must guess when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_set_propertyC
Set a property on a node in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value to set. Use objects for vectors/colors | |
| nodePath | Yes | Path to the node | |
| property | Yes | Property name to set | |
| typeHint | No | Optional type hint: "Vector2", "Vector3", "Color" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Set a property' and 'in the running game' — it does not disclose whether changes are temporary, whether invalid properties cause errors, whether values are coerced, or what happens if the node path does not exist. For a mutating tool, this leaves important behavior unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or repetition. It front-loads the core action and scope, but it is slightly too terse to earn a 5 because it omits useful behavioral context that could have been added without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple runtime setter with a well-documented schema, so the description is minimally adequate. However, there is no output schema and no mention of failure modes, return values, or whether the property change persists only for the current session. Given the abundance of sibling runtime mutation tools, a bit more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter details are already fully documented in the input schema, including the type hint options and the guidance to use objects for vectors/colors. The description itself adds no parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Set'), a specific resource ('a property on a node'), and a clear scope ('in the running game'). This distinguishes it from scene-editing tools like modify_scene_node and read-side tools like game_get_property, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives such as game_tween_property, game_set_shader_param, or modify_scene_node. The phrase 'in the running game' implies a runtime context, but the description does not state when this tool is preferred or when another tool should be chosen instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_set_shader_paramC
Set a shader parameter on a node's material
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value to set (number, object, array, etc.) | |
| nodePath | Yes | Path to the node with a ShaderMaterial | |
| typeHint | No | Optional type hint (e.g. "Color", "Vector2") | |
| paramName | Yes | Shader parameter name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action, without mentioning side effects, shared-material implications, failure modes when the node lacks a ShaderMaterial, or whether the change is immediately visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero wasted words. It is appropriately concise for a simple tool, though it omits some useful behavioral context that would make it more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameters, but there is no output schema, no annotations, and no guidance on alternatives, side effects, or expected return behavior. The description is minimally viable for invocation but leaves notable gaps for an agent operating autonomously.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description adds no parameter-specific meaning beyond what the schema already provides; the schema descriptions for nodePath, paramName, typeHint, and value are adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set) and the target (shader parameter on a node's material). It is unambiguous, though it does not explicitly differentiate from sibling tools like game_set_property or manage_shader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as game_set_property, manage_shader, or game_visual_shader. There are no exclusions, prerequisites beyond the schema's nodePath note, or conditions for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_shape_2dC
Line2D/Polygon2D point manipulation
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color {r,g,b,a} | |
| point | No | Single point {x,y} | |
| width | No | Line width | |
| action | Yes | Action: add_point, set_points, clear, get_points | |
| points | No | Array of points [{x,y},...] | |
| nodePath | Yes | Path to Line2D/Polygon2D node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It fails to indicate that set_points and clear are destructive/replacement operations, whether get_points returns data, or what node state is required. The terse phrase 'point manipulation' adds no behavioral detail beyond the schema's action list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six words with no wasted content, but the brevity is under-specification rather than disciplined concision. A tool with four distinct actions and six parameters needs more than a noun phrase to be genuinely useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves critical usage relationships undefined: which parameters apply to which action (point for add_point vs points for set_points), what clear/get_points require, and what the tool returns. With no output schema and no annotations, this is too incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including object shapes ({r,g,b,a}, {x,y}). The description adds no new parameter-level meaning, which keeps this at the baseline 3 for high coverage rather than higher or lower.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resources (Line2D/Polygon2D nodes) and the operation domain (point manipulation), narrowing the generic tool name and distinguishing it from siblings such as game_path_2d or game_physics_2d. It lacks an explicit verb, but the schema's action enum (add_point, set_points, clear, get_points) supplies the concrete operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. With many related siblings (game_path_2d, game_canvas_draw, game_set_property, game_call_method), an agent receives no routing information, exclusions, or prerequisites anywhere in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_skeleton_ikC
SkeletonIK3D start/stop/set target position
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: start, stop, set_target | |
| target | No | Target position {x,y,z} | |
| nodePath | Yes | Path to SkeletonIK3D node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It lists the actions but does not disclose whether starting IK overrides existing bone poses, whether stopping resets the skeleton to its authored pose, or whether set_target requires IK to be running first. For a stateful control operation, these side effects are material and undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact eleven-word fragment with zero filler, and the action list is front-loaded. It is efficient, though borderline under-specified rather than genuinely polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter control tool with no output schema and no annotations, the description covers the basic operation set but omits the action-to-target dependency, any state prerequisites, and what a call returns. It is adequate as a headline but incomplete as an invocation spec.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents nodePath, action, and target. The description reinforces the action values but adds no new meaning, and critically, neither the description nor the schema clarifies the conditional dependency that target only applies when action='set_target'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (SkeletonIK3D) and the three operations performed (start, stop, set target position), so an agent can determine what the tool does at a glance. It is clear but does not differentiate itself from the related sibling game_bone_pose, which also manipulates skeleton state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With roughly 90 siblings including game_bone_pose, game_call_method, and game_set_property, an agent receives no hint about when IK control is the right choice, what prerequisites exist, or which tool to prefer in other situations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_skyC
Create/configure Sky with procedural/physical sky
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create or configure | |
| skyType | No | Type: procedural or physical | |
| topColor | No | Sky top color {r,g,b} | |
| sunEnergy | No | Sun energy/brightness | |
| bottomColor | No | Horizon bottom color {r,g,b} | |
| groundColor | No | Ground color {r,g,b} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only restates that the tool can create or configure a sky. It does not mention whether this replaces an existing sky, mutates scene state, requires a certain environment node, or returns anything. The behavioral picture is largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and core choice. It is efficient, though slightly awkward phrasing ('with procedural/physical sky') leaves room for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, nested objects, no output schema, and no annotations, the description is insufficiently complete. It does not clarify how skyType, colors, and sunEnergy interact, whether action=create differs semantically from action=configure beyond the schema text, or how this relates to the broader environment tools available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds little beyond restating 'create or configure' and 'procedural or physical,' but it does align with the action and skyType meaning. Nested color objects are not further clarified, but the baseline of 3 applies because the schema covers the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pairing (create/configure Sky) and names the two sky types (procedural/physical), giving the tool a distinct identity. It does not explicitly differentiate from nearby siblings like game_environment, but the sky-specific focus is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as game_environment, game_light_3d, or game_world_settings. The description only implies that the tool is for sky creation/configuration without explaining context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_spawn_nodeB
Create a new node of any type at runtime
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the new node. Default: auto-generated | |
| type | Yes | Node class name (e.g. "Sprite2D", "CharacterBody3D") | |
| parentPath | No | Parent node path. Default: "/root" | |
| properties | No | Properties to set on the new node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core action and runtime context but omits side effects such as the node entering the scene tree, lifecycle callbacks, ownership, return values, or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise and readable, though it could be slightly more informative without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a runtime mutation tool with no annotations and no output schema, this is under-specified. Missing context includes what the tool returns, whether the game must already be running, and how the new node is integrated into the scene tree.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only the generic 'any type' emphasis and does not meaningfully extend the parameter information already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'node', and the scope 'any type at runtime'. This distinguishes it from scene-editing tools like add_node and from instantiation tools like game_instantiate_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at runtime' implies this is for dynamic node creation during a running game, but the description does not explicitly name alternatives or state when not to use it. With many sibling tools, more routing guidance would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_terrainC
Create/modify terrain meshes from heightmap data
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X position (for modify/get_height/paint) | |
| z | No | Z position (for modify/get_height/paint) | |
| name | No | Node name | |
| color | No | Vertex color {r,g,b,a} (for paint) | |
| depth | No | Terrain depth in vertices | |
| width | No | Terrain width in vertices | |
| action | Yes | Action: create, modify, get_height, paint | |
| radius | No | Brush radius (for modify/paint) | |
| nodePath | No | Terrain node path | |
| maxHeight | No | Maximum terrain height | |
| heightData | No | Array of float height values (for create) | |
| parentPath | No | Parent node path | |
| heightDelta | No | Height change amount (for modify) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Create/modify terrain meshes,' which reveals that the tool mutates or creates terrain, but it does not explain the multi-action dispatch behavior, side effects, requirements, or what happens without a proper node path. This is insufficient for a mutation-capable tool with no annotation safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words. It is front-loaded with the core operation and resource. However, it is so sparse that it sacrifices useful detail, though that is more of a completeness concern than a conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 13 parameters, multiple actions, and no output schema or annotations. The description covers only 'create/modify' and does not mention the query action, paint action, action-specific parameter requirements, return behavior, or prerequisites. An agent would need to infer too much from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond the schema. It does not explain action-specific parameter groupings, which would be helpful given 13 parameters and a required 'action' field, but the schema already documents each parameter individually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create/modify terrain meshes from heightmap data.' It distinguishes this from sibling mesh/tilemap tools by focusing on terrain and heightmap. However, it omits the 'get_height' and 'paint' actions that the schema exposes, so the full purpose is not completely captured.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like game_tilemap, game_gridmap, or game_procedural_mesh. The description implies terrain-related usage but provides no explicit context, exclusions, or conditions that would help an agent choose it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_tilemapB
Get or set cells in a TileMapLayer node
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Cell X coordinate (for get_cell) | |
| y | No | Cell Y coordinate (for get_cell) | |
| cells | No | Array of cell objects for set_cells/erase_cells | |
| action | Yes | Action: set_cells, get_cell, erase_cells, get_used_cells | |
| nodePath | Yes | Path to TileMapLayer node | |
| sourceId | No | Filter by source_id (for get_used_cells) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of disclosing behavioral effects. 'Get or set cells' says nothing about whether erase_cells is destructive, whether set_cells overwrites existing cells, whether sourceId is required for placement fidelity, or what happens with invalid coordinates. The action values reveal intent in the schema, but the description itself provides no behavioral safety or side-effect information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler or redundancy, making it easy to parse quickly. It is arguably too terse for a multi-action tool, but the front-loaded verb-resource structure is effective. A slightly more detailed sentence describing the available actions would improve comprehensiveness without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has six parameters, four distinct actions, no output schema, and no annotations, making it a fairly complex tool for the description to support. The one-sentence description does not mention return behavior for get_cell or get_used_cells, the expected shape of cell objects in the cells array, or any constraints on nodePath and sourceId. Given the complexity, the description is incomplete for guiding an agent to call all actions correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to repeat parameter definitions. The description adds no meaning beyond the schema: it does not clarify the structure of cell objects, the coordinate system, or how sourceId interacts with get_used_cells. Since the schema already explains each parameter at a basic level, the description's minimal contribution is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource relationship: 'Get or set cells in a TileMapLayer node.' It identifies the target Godot node type and the general operation domain, and the action parameter further disambiguates among cell operations. However, it does not enumerate the full set of operations such as erase_cells or get_used_cells, relying on the input schema to communicate the complete scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the tool name and reference to TileMapLayer nodes, which distinguishes it from sibling tile-related tools like game_gridmap or game_terrain. There is no explicit guidance on when to prefer this tool, when not to use it, or what prerequisites exist (e.g., a TileMapLayer node must already exist). The action field provides some operational context, but alternatives and exclusions are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_time_scaleC
Get/set Engine.time_scale and timing info
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: get or set. Default: get | |
| timeScale | No | Time scale value (for set) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure, and it only states the get/set duality. It does not mention what 'timing info' includes, what effect setting time_scale has on the running game, whether a project must be running, or any side effects of changing the value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with no wasted words, and the core operation is front-loaded. The 'and timing info' clause is somewhat vague, but the overall structure is appropriately sized for a simple two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (two optional parameters, no output schema, no nested objects), so a short description is nearly sufficient. However, it never explains what 'timing info' is returned, how the set action behaves, or the consequences of altering time_scale, leaving an agent to infer these critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters: action ('get or set. Default: get') and timeScale ('Time scale value (for set)'). The description adds no parameter-level meaning beyond naming the target resource, which meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('Get/set') against a concrete resource ('Engine.time_scale'), making the core operation unambiguous. The trailing 'and timing info' is vague, but it does not obscure the primary purpose and the tool is clearly distinguishable from siblings such as game_pause, game_wait, and game_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. Overlapping siblings like game_wait, game_pause, and the generic game_get_property/game_set_property pair could plausibly be chosen instead, but the description never addresses these trade-offs or gives any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_touchC
Simulate touch press/release/drag and gestures
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Touch X position | |
| y | Yes | Touch Y position | |
| toX | No | Drag end X (for drag) | |
| toY | No | Drag end Y (for drag) | |
| index | No | Touch index. Default: 0 | |
| steps | No | Drag steps. Default: 10 | |
| action | Yes | Action: press, release, drag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that events are simulated but does not explain coordinate interpretation, action sequencing (e.g., whether a press must precede a release), or how 'gestures' are composed. This is enough to signal input injection but too thin to predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, and it names the core operation types succinctly. It is appropriately compact for a tool whose parameter details live in the schema, though it may be too compressed to convey gesture behavior fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no annotations, and no output schema, the description leaves several operational gaps: coordinate space, action sequencing, multi-touch index semantics, and gesture scope. The 100% schema coverage mitigates parameter naming but not when or how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, including action values and defaults. The description adds the context that operations are touch-related but contributes no additional parameter semantics. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('simulate') and a clear resource ('touch press/release/drag and gestures'), which distinguishes it from mouse, keyboard, and scroll input tools. It does not enumerate which gestures are supported, but the action schema provides the main operation types. This is clear but could more explicitly scope the gesture set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus game_click, game_mouse_drag, game_scroll, or game_mouse_move. The only differentiation is implicit in the word 'touch'. No alternatives, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_tween_propertyC
Tween a node property in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | Duration in seconds. Default: 1.0 | |
| easeType | No | Tween.EaseType enum value. Default: 2 (IN_OUT) | |
| nodePath | Yes | Path to the node | |
| property | Yes | Property to tween (e.g., "position", "modulate") | |
| transType | No | Tween.TransitionType enum value. Default: 0 (LINEAR) | |
| finalValue | Yes | Target value. Use {x,y} for Vector2, {x,y,z} for Vector3, {r,g,b,a} for Color |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. 'Tween a node property' implies a runtime, time-based mutation, but it does not state whether the tween is async, whether it modifies the scene permanently, how it interacts with existing tweens, or what the function returns when invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately short, though it sacrifices useful behavioral and usage context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a runtime mutation tool with six parameters, no annotations, and no output schema, one sentence is insufficient. The description does not explain return values, asynchronous behavior, how to verify completion, or how this differs from related game_* tools, leaving significant gaps for an agent selecting or invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters, including defaults and format hints for finalValue. The description adds no additional parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Tween') and resource ('a node property'), which clearly conveys the tool animates a property over time. However, it does not differentiate from siblings like game_set_property or game_play_animation, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as game_set_property (immediate) or game_play_animation (keyframe-driven animation). No exclusions, prerequisites, or conditions are stated, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_controlB
Set focus, anchors, tooltip, mouse filter on Control
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: configure, grab_focus, release_focus, get_info | |
| minSize | No | Minimum size {x,y} | |
| tooltip | No | Tooltip text | |
| nodePath | Yes | Path to Control node | |
| mouseFilter | No | Mouse filter: stop, pass, ignore | |
| anchorPreset | No | Anchor preset value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Set' effects but does not disclose that the action parameter can also perform 'get_info' reads, nor does it mention side effects, prerequisites, or return behavior. This is a significant transparency gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, and the verb and target resource are front-loaded. It is highly concise and avoids unnecessary detail, even though it is incomplete in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should cover action modes and return behavior to be operationally clear. With six parameters, an action string supporting multiple modes, and no mention of what actions like 'get_info' return, the description is too thin for an agent to confidently invoke the tool in varied scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and their meanings. The description adds only a high-level grouping of what can be configured (focus, anchors, tooltip, mouse filter) without adding format details, relationships, or action-specific semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('Control') and lists the main properties it affects: focus, anchors, tooltip, and mouse filter. It is distinguishable from sibling UI tools by targeting the Control node type. However, it omits the 'get_info' action and the minSize parameter, so the purpose is not fully complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'on Control' implies the tool is for Godot Control nodes, giving some usage context. However, there is no explicit guidance about when to use this tool versus sibling UI tools such as game_ui_text, game_ui_menu, or game_get_ui, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_item_listB
ItemList/OptionButton: get/select/add/remove items
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Item text (for add) | |
| index | No | Item index | |
| action | Yes | Action: get_items, select, add, remove, clear | |
| nodePath | Yes | Path to ItemList/OptionButton |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists mutating operations (add, remove, clear) but reveals no side effects, signal emissions, or state changes, and gives no warning that these actions modify the scene. An agent cannot anticipate the consequences of invoking the destructive actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero wasted words: resource type first, operations second. It is efficient and scannable. It loses a point because it is terse to the point of under-specification given that no annotations or output schema provide the missing detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 5 actions, no annotations, and no output schema, this fragment is incomplete. It does not specify which parameters each action requires, what get_items returns, or how clear behaves. An agent cannot reliably construct valid calls for every action from the description and schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies; the schema already documents nodePath, action values, text, and index. The description adds only the domain term "items" and loosely mirrors the action enum, while omitting per-action parameter requirements (add needs text, select needs index) and index semantics. It does not meaningfully exceed what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific resources (ItemList/OptionButton) and a concrete operation set (get/select/add/remove), so the verb+resource contract is clear. The widget-type naming helps distinguish it from UI siblings targeting other widget types (game_ui_text, game_ui_tree, game_ui_menu). It stops short of a 5 because it never explicitly contrasts with game_ui_control or states what "get" returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "ItemList/OptionButton" prefix gives an implied usage context: use this tool when working with item collections on those node types. However, there is no explicit when-to-use guidance, no exclusions, and no pointer to alternatives among the many UI-related siblings. Selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_popupB
Show/hide/popup for Popup/Dialog/Window nodes
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Popup size {x,y} | |
| text | No | Dialog body text | |
| title | No | Dialog title text | |
| action | Yes | Action: popup_centered, popup, hide, get_info | |
| nodePath | Yes | Path to Popup/Dialog/Window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the burden of behavioral disclosure. It only says 'Show/hide/popup', which is a high-level summary of some actions but omits important behaviors like 'get_info', what popup_centered does differently from popup, and what the caller should expect as a result or side effect. The tool's effects and return behavior are not meaningfully revealed beyond the schema's action list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the key action and target type; there is no filler. It could be slightly more informative without becoming bloated, but the brevity is not a serious flaw here because the schema covers much of the remaining detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, no output schema, and a non-trivial action enum, the description is too thin to be considered complete. It does not explain what get_info returns, the difference between popup and popup_centered, how size/text/title are used together, or whether any state changes are persistent. An agent would need to open the schema and infer most of the operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes 100% of parameters, so the baseline is 3. The description adds a small amount of context by clarifying that nodePath refers to Popup/Dialog/Window nodes, which is useful, but it does not add meaning to size, text, title, or action beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action scope ('Show/hide/popup') and the target resource type ('Popup/Dialog/Window nodes'), which conveys the tool's core purpose. It is understandable but does not explicitly distinguish itself from closely related UI tools like game_ui_control, which could also manage visibility of UI nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for Popup/Dialog/Window nodes' gives an implicit usage context, suggesting this tool is appropriate for manipulating popup-style UI elements. However, it provides no explicit guidance on when to prefer this tool over alternatives, nor does it mention exclusions, such as when a plain Control node should be handled by game_ui_control instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_rangeC
ProgressBar/Slider/SpinBox/ColorPicker get/set
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Step value | |
| color | No | Color {r,g,b,a} (for ColorPicker) | |
| value | No | Value (for Range nodes) | |
| action | Yes | Action: get or set | |
| maxValue | No | Maximum value | |
| minValue | No | Minimum value | |
| nodePath | Yes | Path to Range/ColorPicker node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it only says 'get/set' — which merely echoes the schema's action parameter. It does not disclose what a get returns, whether set mutates live game state, or any constraints such as clamping to min/max.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a five-word fragment with zero wasted words, and the scope is front-loaded before the action. It earns the conciseness score but stops just short of 5 because a single well-formed sentence would convey the same information with better structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, 4 widget types, no annotations, and no output schema, this fragment is under-specified. An agent cannot tell what a get call returns, which of value/minValue/maxValue/step/color apply to each widget type, or when this specialized tool beats the generic game_get_property/game_set_property siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, giving a baseline of 3. The description adds marginal value by naming the four widget types, hinting at which params apply to which node class, but it doesn't resolve ambiguity such as whether value or color should be supplied for a given nodePath.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair (get/set) and specific resource types (ProgressBar, Slider, SpinBox, ColorPicker), which goes beyond the tool name and gives an agent a concrete picture of scope. It reads as a terse fragment rather than a complete sentence and doesn't clarify the relationship between Range nodes and ColorPicker, but the meaning is unambiguous enough to distinguish it from siblings like game_ui_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The sibling list includes generic game_get_property/game_set_property and game_ui_control, and an agent is given no criteria to decide whether this specialized tool or the generic ones should be used, nor which widget types this tool is preferred for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_tabsC
TabContainer/TabBar: get/set current tab
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Tab index | |
| title | No | Tab title | |
| action | Yes | Action: get_tabs, set_current, set_title | |
| nodePath | Yes | Path to TabContainer/TabBar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior, but it only says 'get/set current tab.' It does not explain side effects, return values, required scene state, or whether the target must already exist. The get/set distinction is already visible in the action schema, so the description adds little behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short, front-loaded fragment with no unnecessary words, and the resource type appears first. It is appropriately concise, though the brevity comes at the cost of missing operational detail. It earns a solid score for structure but not a top score because it omits relevant guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, an action enum, no annotations, and no output schema, so the description should provide more context about action-specific parameters and expected return behavior. 'get/set current tab' leaves the agent to infer how index, title, and action combine and what a successful call returns. This is insufficient for reliably invoking all action modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents nodePath, action, index, and title. The description reinforces the nodePath target with 'TabContainer/TabBar' and loosely maps to the set_current action, but adds no deeper semantics for the action values or how index and title relate to each action. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the target resource type (TabContainer/TabBar) and the main operations (get/set), which helps distinguish it from the many game_ui_* sibling tools. However, it says 'current tab' while the action enum also includes get_tabs and set_title, so it does not fully capture all supported actions. It is still specific and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only implies usage on tab containers and gives no explicit guidance about when to use this tool versus alternatives. It does not mention prerequisites, when to choose get_tabs vs set_current vs set_title, or what nodePath should reference. There is no when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_textB
LineEdit/TextEdit/RichTextLabel text operations
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text content | |
| action | Yes | Action: get, set, append, clear, select, bbcode | |
| nodePath | Yes | Path to text control | |
| selectionTo | No | Selection end | |
| caretPosition | No | Caret column position | |
| selectionFrom | No | Selection start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining side effects. It does not disclose that set/append/clear mutate UI text, that bbcode may alter rich text markup, or how selection/caret operations affect the control. The generic word 'operations' obscures potentially destructive or state-changing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the node types, but the phrase 'text operations' is generic and adds little beyond the tool name and schema. It is concise but under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, multiple action modes, and no output schema or annotations, a one-line description is insufficient. It does not explain behavior, return values, node path requirements, or how the different actions interact, leaving the agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The tool description adds no additional parameter meaning, leaving the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the target resource clearly—LineEdit/TextEdit/RichTextLabel text controls—which distinguishes it from broader UI sibling tools. However, it lacks a specific verb and only says 'operations,' leaving the exact behavior to the action parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for text controls like LineEdit, TextEdit, and RichTextLabel, but it gives no explicit guidance on when to choose this tool over alternatives such as game_ui_control or game_ui_tree. No exclusions or when-not-to-use conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_themeC
Apply theme overrides to a Control node
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to Control node | |
| overrides | Yes | Theme overrides: {colors, constants, fontSizes} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only states the action. It does not clarify whether overrides persist, how they merge with an existing theme, error behavior for non-Control nodes, or whether this is a runtime-only change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words — 'Apply theme overrides to a Control node' conveys the core action immediately. Any brevity trade-off in behavioral depth is accounted for in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, situated in a large sibling family of UI/theme tools, the one-sentence description is insufficient. An agent cannot determine runtime vs editor scope, alternatives, or expected effects, even though the two parameters are fully covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented and the description adds nothing beyond what the schema states. The baseline 3 applies because the schema does the heavy lifting, and the overrides structure {colors, constants, fontSizes} is adequately described there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action — applying theme overrides to a Control node — with a clear verb and resource target, distinguishing it from siblings like game_ui_control and manage_theme_resource. However, it does not explicitly name or contrast those alternatives, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of related UI/theme tools such as game_ui_control, manage_theme_resource, or game_get_ui. Usage context is only implied by the action itself, with no prerequisites, conditions, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_ui_treeB
Tree control: get/select/collapse/add/remove items
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Item text (for add) | |
| action | Yes | Action: get_items, select, collapse, expand, add, remove | |
| column | No | Column index. Default: 0 | |
| itemPath | No | Item path (slash-separated indices) | |
| nodePath | Yes | Path to Tree control |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It lists actions (get/select/collapse/add/remove) which imply the behaviors, but it does not explain side effects, whether add/remove are persistent, require special permissions, or affect the actual game scene vs a detached UI tree. The action list is a minimal behavioral disclosure, but lacks depth for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the operations. It is efficient and avoids waste, though it could have been slightly more structured by separating the actions with clearer punctuation. It earns its place by summarizing the tool's purpose in minimal words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and no annotations or output schema, the description is thin. It does not explain how nodePath and itemPath relate, how to address top-level items vs subitems, what happens when a select/collapse action references a missing item, or what get_items returns. An agent working with a tree UI would need more context to call this reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters have descriptions in the schema. The tool description adds the action list context, which clarifies the 'action' parameter values, but it doesn't explain the semantics of itemPath (slash-separated indices) or column beyond what the schema already states. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Tree control: get/select/collapse/add/remove items'. It clearly identifies the tool as operating on a tree UI control and lists the core actions. While it doesn't explicitly differentiate from siblings like game_ui_item_list or game_ui_tabs, the action list and 'Tree control' resource provide enough clarity for an agent to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by naming the control type and actions, and the sibling list contains many UI-related tools like game_ui_item_list and game_ui_tabs, but no explicit when-to-use or when-not-to-use guidance is provided. An agent must infer usage from the resource type and action list, which is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_videoB
Video playback control: play, pause, stop, seek on VideoStreamPlayer
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Enable looping | |
| name | No | Node name (for create) | |
| action | Yes | Action: create, play, pause, stop, seek, get_status | |
| volume | No | Volume (linear 0-1) | |
| autoplay | No | Auto-play on ready | |
| nodePath | No | Path to VideoStreamPlayer node | |
| position | No | Seek position in seconds | |
| videoPath | No | res:// path to video file | |
| parentPath | No | Parent node path (for create) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only lists a few action verbs. It does not explain side effects, node creation requirements, return values for 'get_status', or behavior of properties like volume/loop/autoplay, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is efficient but slightly under-specified given the tool's six actions and nine parameters, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action tool with nine parameters and no output schema or annotations, yet the description only covers four of the six actions and gives no guidance on creation semantics, status retrieval, or expected outputs. The description is not complete enough for an agent to handle all supported actions correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented in the schema itself. The description adds minimal semantic value beyond listing some actions, and it does not clarify how actions map to parameters or what 'get_status' returns, so it meets only the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (VideoStreamPlayer) and the core verbs (play, pause, stop, seek), which distinguishes it from audio or animation tools. However, it omits two supported actions from the schema ('create' and 'get_status'), so the purpose is not fully complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Video playback control: ... on VideoStreamPlayer' gives a clear context for when this tool is appropriate. It does not explicitly state when not to use it or name alternatives, but among the siblings there is no direct alternative video tool, so this is adequate though not thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_viewportC
Create or configure a SubViewport node
| Name | Required | Description | Default |
|---|---|---|---|
| msaa | No | MSAA level (0=disabled, 1=2x, 2=4x, 3=8x) | |
| name | No | Viewport name (for create) | |
| width | No | Viewport width | |
| action | No | Action: create, configure, or get | |
| height | No | Viewport height | |
| nodePath | No | SubViewport path (for configure/get) | |
| parentPath | No | Parent path (for create) | |
| transparentBg | No | Transparent background |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior, and it only conveys that the tool mutates or creates a SubViewport node. It does not mention that 'get' is read-only, what happens on name conflicts, whether width/height are required for creation, or what the return value might be. This is a significant gap for a tool with both mutating and non-mutating modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At eight words, the description is extremely efficient and front-loaded. However, the brevity crosses from conciseness into under-specification: it omits the get action, the three-mode action routing, and any usage context. Every word earns its place, but several needed words simply aren't there.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no annotations, no output schema, and three distinct behaviors (create/configure/get), a one-clause description is far from complete. The agent must open the schema to learn even the action modes, and there is no guidance on parameter interdependencies or expected return values. Sibling context alone cannot compensate for this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds little meaning beyond the schema, tying the action param to create/configure but not explaining which parameters apply to which action mode (e.g., name+parentPath for create, nodePath for configure/get). Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (SubViewport node) with concrete verbs (create/configure), which clearly distinguishes it from most siblings like game_window or add_node. However, it omits the 'get' action that the input schema's action enum explicitly supports, making the stated purpose slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like add_node, game_window, or game_get_node_info. The action parameter implicitly routes between create/configure/get, but the description provides no direction on which mode to select or what prerequisites apply (e.g., parent path needed for create, existing nodePath for configure/get).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_visual_shaderC
Create and edit VisualShader graphs: add/connect/disconnect nodes
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create, add_node, connect, disconnect, get_nodes, apply | |
| toNode | No | Destination node ID (for connect/disconnect) | |
| toPort | No | Destination port index | |
| fromNode | No | Source node ID (for connect/disconnect) | |
| fromPort | No | Source port index | |
| nodePath | No | Target node path (for apply) | |
| position | No | Node position {x, y} (for add_node) | |
| shaderId | No | Shader resource ID (for multi-shader scenes) | |
| nodeClass | No | VisualShaderNode class name (for add_node) | |
| shaderType | No | Shader type: spatial, canvas_item, particles, sky, fog |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only lists actions and does not explain whether edits are immediately applied, whether apply is required to persist changes, whether graph operations are destructive, or how shaderId and shaderType affect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the resource and verb, and uses a scoped list of core actions. It wastes no words, though the enumeration of actions is only partial and omits get_nodes/apply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-action tool with 10 parameters, a nested position object, no output schema, and no annotations. The one-sentence description is insufficient to fully understand when to invoke it, what effects graph edits have, or how the various action-specific parameters fit together, even though the schema compensates for parameter documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents every parameter. The description adds little beyond naming connect/disconnect operations, which the action parameter already expresses. It does not clarify relationships between parameters, such as nodeClass being required for add_node.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (VisualShader graphs) and a clear verb ('Create and edit') followed by concrete node operations. It distinguishes itself from related shader tools like game_set_shader_param, though it does not explicitly compare against manage_shader or mention all supported actions like get_nodes and apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as manage_shader or game_set_shader_param. The usage context is only implied by the phrase 'VisualShader graphs'; no prerequisites, exclusions, or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_waitB
Wait N frames in the running game
| Name | Required | Description | Default |
|---|---|---|---|
| frames | No | Number of frames to wait. Default: 1 | |
| frameType | No | Frame to wait on: "physics" (fixed 60Hz ticks) or "render". Default: render |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not disclose whether the wait blocks execution, affects game performance, or returns anything. The description is too minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: a single sentence with no wasted words. It front-loads the essential action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple waiting tool, the description covers the core action. However, it could mention that it pauses execution for game loop synchronization, but given the tool's simplicity and parameter details, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and adequately describes both parameters (frames and frameType). The description adds no extra meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool waits N frames in the running game. It uses a specific verb ('Wait') and resource ('frames'), and it is distinct from sibling tools (e.g., no other wait tool exists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like game_await_signal or game_create_timer. The description simply states what it does without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_websocketC
WebSocket client connect/disconnect/send messages
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | WebSocket URL (for connect) | |
| action | Yes | Action: connect, disconnect, send, status | |
| message | No | Message to send (for send) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It lists actions but does not disclose the stateful lifecycle of the connection, connection failure handling, message framing expectations, or what the 'status' action returns. Connect-before-send is only implied by the action names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded with the resource and core operations. However, it omits the 'status' action that appears in the schema, so the brevity sacrifices a small amount of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful WebSocket tool with no annotations and no output schema, this description is too thin. It does not cover connection lifecycle, error handling, return values, or when to prefer this over related networking tools. The schema covers parameter names but not the behavioral context needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has a clear inline description, meeting the baseline for parameter semantics. The tool description itself does not add parameter-level value such as URL format requirements, message payload expectations, or action-specific constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the resource (WebSocket) and the operations (connect/disconnect/send messages), which maps well to the schema's action values. It does not explicitly differentiate itself from siblings like game_http_request or game_multiplayer, but the WebSocket focus is distinct enough for basic clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as game_http_request or game_multiplayer. The description also does not mention prerequisites like requiring a connection before sending messages or when to use the 'status' action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_windowC
Get/set window size, fullscreen, title, position
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Window title | |
| vsync | No | Enable vsync | |
| width | No | Window width | |
| action | No | Action: get or set. Default: get | |
| height | No | Window height | |
| position | No | Window position {x, y} | |
| borderless | No | Borderless mode | |
| fullscreen | No | Fullscreen mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. It reveals that the tool is dual-mode (get/set) but says nothing about what a get returns, whether set applies immediately or requires a running game, or what constraints exist on the position object. The agent must infer behavioral traits from parameter names alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero filler, listing the core capabilities in one breath. It is efficient, though slightly under-specified for an 8-parameter dual-mode tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 optional parameters, a nested position object, a dual get/set mode, no annotations, and no output schema, the description is too sparse. An agent cannot determine the get-response format, how to construct a set request, or whether vsync and borderless are settable, without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the 8 parameters is already documented in the input schema, setting the baseline at 3. The description groups some parameters into named concerns (size, fullscreen, title, position) but adds no meaning beyond the schema and omits vsync and borderless entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair ('Get/set') with a clear resource ('window') and lists the affected properties: size, fullscreen, title, position. This distinguishes it from the many input/interaction siblings like game_click and game_key_press. However, it omits two schema properties (vsync, borderless) and does not explicitly differentiate from the nearby game_viewport tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided for when to use get versus set, when this tool is preferable to game_viewport, or whether a running project is required. The action parameter defaults to 'get', but the description gives no hint that the mode must be chosen or what conditions favor one mode over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_world_settingsC
Get/set gravity, physics FPS, and world settings
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: get or set. Default: get | |
| gravity | No | Gravity magnitude | |
| physicsFps | No | Physics ticks per second | |
| gravityDirection | No | Gravity direction vector {x,y,z} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure, but it only says 'get/set' without explaining side effects, persistence, whether settings apply immediately, or what happens when setting only some parameters. It also does not describe the return value for a 'get' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, matching the tool's purpose in a single sentence. It could be slightly more specific, but there is no unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four optional parameters, no output schema, and no annotations, so the description is too minimal to be fully complete. It does not explain action semantics, defaults, return format, or the relationship between gravity and gravityDirection, leaving an agent to guess important details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters. The description adds minimal value beyond naming 'gravity' and 'physics FPS', but does not clarify how 'world settings' maps to the remaining parameters or how the action parameter controls behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets or sets gravity, physics FPS, and world settings, using a specific verb and resource. However, 'world settings' is somewhat vague and the description does not explicitly distinguish this tool from related siblings like game_physics_3d or game_time_scale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for adjusting physics world parameters, but gives no explicit guidance on when to use it versus alternatives. There is no mention of exclusions, prerequisites, or how it differs from similar physics-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debug_outputB
Get the current debug output and errors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It merely states the action without mentioning side effects, requirements (e.g., running project), return format, or error behavior. The word 'Get' implies a read operation, but this is not explicit and no other behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that efficiently communicates the core function with no filler. It is appropriately sized for a zero-parameter tool, though it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description omits important context such as when debug output is available, whether a project must be running, and the format of the returned output. With no annotations or output schema, these gaps make the description incomplete for an agent deciding to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema already fully covers parameter semantics. The description adds no parameter information, but none is needed; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('current debug output and errors'), clearly identifying the tool's function. It does not explicitly differentiate from sibling getters like get_project_info or get_uid, but the resource is unique enough that an agent can infer its purpose. However, 'current' is ambiguous (current project? current session?), so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., project running) or exclusion cases, and there is no reference to sibling tools like run_project or stop_project. An agent is left without context on when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_godot_versionA
Get the installed Godot version
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what it does, without mentioning side effects, error handling (e.g., if Godot is not installed), or whether any configuration is modified. For a simple getter this is a gap, but the lack of side effects is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no redundancy. The information is front-loaded and every word earns its place. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no output schema, the description is largely sufficient. It identifies what is retrieved, but does not explicitly describe the return format (e.g., version string) or behavior if Godot is absent. Given the simplicity, this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema confirms this with an empty properties object. Per the rubric, 0 parameters warrants a baseline of 4. The description does not need to add parameter details, and it correctly does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('installed Godot version'). It is specific and distinguishes itself from sibling tools like add_node or launch_editor, which are about different operations. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives. However, given its singular purpose and the lack of overlapping sibling getters, the usage is implied. There is no guidance on prerequisites or conditions, which could be added but is not critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoC
Retrieve metadata about a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Retrieve' implies a read-only operation, but the description does not explicitly state that, nor does it mention what metadata is returned, whether the project must exist, whether it opens an editor, or what happens on invalid input. For an unannotated tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler or redundant wording. It is front-loaded with the core action. It is concise, though slightly too terse for a tool with no annotations or output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what kinds of metadata are returned and what the agent should expect. It does neither. The word 'metadata' is too vague for an agent to reliably interpret the tool's result or know how it differs from read_project_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes projectPath as 'Godot project path' with 100% coverage, so the description does not need to repeat parameter meaning. However, the description also does not add useful nuance, such as whether projectPath should point to a directory containing project.godot or to the project.godot file itself. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing: 'Retrieve metadata about a Godot project.' It is clear about the tool's general purpose and aligns with the name. However, 'metadata' is somewhat broad and does not clearly distinguish this from sibling tools like read_project_settings or get_godot_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, and it does not reference any sibling tools. There are many similar project-related tools in the sibling list, so an agent has no basis for deciding between them. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uidB
Get the UID for a specific file in a Godot project (for Godot 4.4+)
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the file (relative to project) for which to get the UID | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It correctly implies a non-destructive read and discloses a version compatibility limit (4.4+), but it does not state whether the tool reads an existing .uid file, generates one on demand, or how it behaves when the file has no UID. The ambiguity between returning a UID string versus a .uid file path is a meaningful undisclosed behavioral trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 17-word sentence that front-loads the verb and object, then appends the version qualifier as a parenthetical. There is zero filler and every word earns its place; the description is neither bloated nor under-specified in length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool, the core action and version constraint are present and adequate. However, since there is no output schema and no annotations, the description should clarify the return format (UID string vs. .uid file path) and error behavior for files without UIDs. These omissions leave the agent guessing about the invocation result, making the description minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3: both `projectPath` and `filePath` already have meaning in the schema. The description adds only the version constraint ('4.4+') that ties to `projectPath` and echoes 'specific file' for `filePath`, without adding format, syntax, or resolution details. It neither compensates for a gap nor adds substantial value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('UID for a specific file'), and a context ('in a Godot project, for Godot 4.4+'). It contrasts implicitly with the sibling `update_project_uids` (get vs. update) and with `list_project_files` (one file's UID vs. listing). It loses a point because it never explicitly names an alternative and doesn't clarify whether the return is a UID string or a .uid file path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention related siblings like `update_project_uids`, state prerequisites (project must be Godot 4.4+, file must already have a UID), or provide any when-not-to-use signals. The only implied signal is the version qualifier '4.4+', which is a constraint rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_editorB
Launch Godot editor for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the action without explaining side effects, blocking behavior, failure modes, or whether the editor launches in the background. This is a notable gap for a tool that spawns an external process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler words. It is appropriately concise for such a simple tool, though it could have added a few behavioral details without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity with one required parameter fully covered by the schema, so the description is minimally adequate for invocation. However, it lacks information about the execution model, return behavior, and prerequisites, leaving the agent to guess about what happens after launch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter 'projectPath' is already described as 'Godot project path'. The description's phrase 'for a specific project' adds minimal meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('launch'), a clear resource ('Godot editor'), and a targeting condition ('for a specific project'). Clearly distinguishable from siblings like run_project and create_project, which serve different intents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the user wants to open the Godot editor for a specific project, but it does not explicitly state when not to use it or mention alternatives. No exclusionary guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_filesB
List project files, optionally filtered by extension
| Name | Required | Description | Default |
|---|---|---|---|
| extensions | No | Optional file extensions to filter by (e.g., [".gd", ".tscn"]). Include the dot. | |
| projectPath | Yes | Godot project path | |
| subdirectory | No | Optional subdirectory to search in (e.g., "scripts/player") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a read-only, non-destructive operation, but the description says nothing about recursion behavior, traversal scope, hidden-file handling, or return format—important context for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eight-word sentence with zero filler. The verb and resource are front-loaded, and the optional filter qualifier earns its place. It is efficient, though the brevity comes at the cost of behavioral and routing detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a well-documented schema, the description is mostly adequate, but gaps remain: with no output schema, the agent is left guessing whether results are relative paths, absolute paths, or richer file objects, and recursion scope is unspecified. A sentence on return format and traversal would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema already documenting all three parameters (including examples like '".gd", ".tscn"' and 'scripts/player'). The description's mention of extension filtering merely echoes the schema's extensions parameter without adding new semantic value, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List project files') and names the optional extension filter, making the core action clear. However, it doesn't explicitly distinguish itself from the sibling tool list_projects, which could be confused for this tool at a glance, and it omits the subdirectory filter that the schema supports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool vs. alternatives. The large sibling set includes list_projects (list Godot projects) and read_file (read a specific file), but the description doesn't clarify the boundary or name any alternative, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
List Godot projects in a directory
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Directory to search for Godot projects | |
| recursive | No | Whether to search recursively (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only restates the basic listing action and adds no details about whether the operation is read-only, how Godot projects are identified, what the return format is, or how the recursive parameter behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant wording. Every word earns its place, and the core action and scope are immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with two parameters, the description is minimally adequate: the schema covers parameter meanings. However, with no output schema and no annotations, the description does not clarify what the returned list contains (e.g., project names, paths) or whether directories without project.godot are ignored, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already documented clearly in the schema ('Directory to search for Godot projects' and 'Whether to search recursively (default: false)'). The description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('Godot projects') and a scoping location ('in a directory'). It is unambiguous and easily distinguished from sibling tools like get_project_info or run_project, which target a single project or perform an action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in a directory' implies the tool is for project discovery in a filesystem location, which gives some usage context. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention any exclusions or follow-up tools like get_project_info for inspecting a specific project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_spriteC
Load a sprite into a Sprite2D node
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the Sprite2D node (e.g., "root/Player/Sprite2D") | |
| scenePath | Yes | Scene file path (relative to project) | |
| projectPath | Yes | Godot project path | |
| texturePath | Yes | Path to the texture file (relative to project) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects. It only says 'Load a sprite into a Sprite2D node' without stating whether this edits and saves the scene file, mutates the runtime tree, replaces an existing texture, or requires the project to be running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single eight-word sentence with no filler, and the core operation is front-loaded. It is appropriately brief, though it sacrifices behavioral and usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is too sparse for a mutating tool. It leaves unanswered whether the change is persistent, whether it targets the edited scene or the running game, and what happens when the texture is overwritten or loading fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters, with an example for nodePath, so the description adds no additional parameter meaning. Since schema description coverage is 100%, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Load), resource (sprite), and target (Sprite2D node), which clearly identifies the operation and matches the provided parameters. It is not a tautology, though it does not explicitly differentiate itself from sibling scene-modification tools such as modify_scene_node or game_set_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like modify_scene_node, game_set_property, or resource-loading tools. The description implies it is for putting a texture on a Sprite2D node, but it gives no prerequisites, exclusions, or context about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_autoloadsB
Add, remove, or list autoloads in a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Autoload name (required for add/remove) | |
| path | No | Script/scene path (required for add, e.g. "res://globals.gd") | |
| action | Yes | "list", "add", or "remove" | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It fails to mention that 'add' and 'remove' likely modify the project's project.godot file, whether changes are persistent, require a reload, or can be undone. Listing behavior is also not described (e.g., return format).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that enumerates the core actions without filler. Every word contributes to understanding the tool's purpose, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, no annotations, and multiple operation modes with different parameter requirements (name/path only for add/remove), the description is too thin. It does not explain return values, side effects, what happens when removing a nonexistent autoload, or how the 'list' action reports results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters and the action values. The description adds only a high-level summary and does not enrich parameter meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb set ('Add, remove, or list') and a clear resource ('autoloads in a Godot project'). This immediately distinguishes it from the many sibling tools, which target different resources like scenes, projects, or gameplay state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for managing autoloads, and the action parameter ('list', 'add', 'remove') gives clear operational context. However, it does not state when to prefer this tool over alternatives, list prerequisites, or mention that it modifies project configuration files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_ci_pipelineB
Create/read GitHub Actions workflow for automated Godot exports
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create or read | |
| platforms | No | Target platforms: windows, linux, macos, web | |
| projectPath | Yes | Absolute path to Godot project | |
| godotVersion | No | Godot version (e.g. 4.3-stable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry behavioral disclosure; 'Create/read' signals possible mutation/retrieval but doesn't say whether create overwrites existing workflows, where the workflow file is written, or what permissions are needed. This leaves significant operational ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that gets the core purpose across without redundancy. Slight ambiguity in 'Create/read' aside, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations or output schema, the description leaves key context unspecified: return format for read, file overwrite behavior for create, and relationship to manage_docker_export/export_project. Not complete enough for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are documented in the input schema; description adds no further parameter semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action pair (create/read) on a concrete resource (GitHub Actions workflow for Godot exports), which clearly separates it from actual export tools like export_project and manage_docker_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description offers no guidance on when to choose create vs read, or when to prefer manage_docker_export/export_project. The 'for automated Godot exports' phrase implies CI context but no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_docker_exportC
Create Dockerfile for headless Godot export
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create or read | |
| baseImage | No | Base Docker image (default: ubuntu:22.04) | |
| projectPath | Yes | Absolute path to Godot project | |
| exportPreset | No | Export preset name | |
| godotVersion | No | Godot version (e.g. 4.3-stable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does almost nothing with that burden. It does not state where the Dockerfile is written, whether an existing Dockerfile is overwritten, what the 'read' action does, or what side effects (if any) occur on the project directory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the verb front-loaded and zero filler words. It loses a point because the brevity comes at the cost of omitting the tool's read mode, making it slightly under-specified rather than purely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with a mode-switching required parameter, no output schema, and no annotations, the description is incomplete. An agent would not know that 'action' supports reading an existing Dockerfile, what the tool returns, or how the parameters compose into a usable Dockerfile definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents all five parameters. The description adds only the 'headless export' framing, which hints at how godotVersion and exportPreset are used, but adds no detail about parameter formats or the create/read action semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource pair ('Create Dockerfile') with a clear context ('headless Godot export'), and this clearly separates it from siblings like export_project or manage_export_presets. However, it only covers the 'create' side of the tool while the required 'action' parameter explicitly supports both create and read, so the stated purpose is incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the obvious alternatives (export_project, manage_export_presets, manage_ci_pipeline, run_project). There is no mention of CI/CD contexts, prerequisites, or when a Dockerfile is needed versus a direct export.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_export_presetsC
Create or modify export preset configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Preset name (required for add/remove) | |
| action | Yes | "list", "add", or "remove" | |
| platform | No | Platform (for add, e.g. "Windows Desktop", "Linux", "Web") | |
| runnable | No | Whether this preset is runnable. Default: false | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It communicates a mutation operation but never discloses that the 'remove' action is destructive, whether adding a preset with an existing name overwrites it, or that changes likely persist to the project on disk. For a tool with a remove action and zero annotation coverage, this is a consequential gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with zero filler and the core purpose front-loaded. However, it is under-specified rather than genuinely concise: it covers only two of the three possible actions ('create or modify' versus list/add/remove) and includes no usage context that would help an agent decide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity (5 params, 3 actions, no output schema) and zero annotations, so the description must carry more weight than it does. It fails to position the tool relative to export_project, disclose the destructive 'remove' behavior, or clarify overwrite semantics when adding a preset that already exists. An agent choosing between manage_export_presets, export_project, and manage_docker_export would be left guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents all five parameters with meaningful detail, including the action enum values, the required-for conditions on 'name', the 'platform' examples, and the default for 'runnable'. The tool description itself adds no parameter-level meaning, but the schema fully compensates, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear action ('Create or modify') and a specific resource ('export preset configuration'), so an agent can tell this tool is about export preset management in a Godot project. However, it omits the 'list' and 'remove' actions that the schema explicitly documents, understating the tool's actual scope. It also does not explicitly differentiate itself from the sibling export_project, which is the most closely related alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus nearby siblings such as export_project or manage_docker_export. There is no mention of the workflow relationship (e.g., configure presets before running an export), no exclusions, and no named alternatives. An agent must infer the usage context entirely from the schema's action parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_input_mapC
Add, remove, or list input actions and bindings
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Key to bind (for add, e.g. "W", "Space") | |
| action | Yes | "list", "add", or "remove" | |
| deadzone | No | Deadzone for the action. Default: 0.5 | |
| actionName | No | Input action name (required for add/remove) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure, but it only lists operations without stating side effects. It does not say whether changes persist to project files, whether it modifies the project's input map directly, or whether any destructive behavior such as removing existing bindings should be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short, direct single sentence with no filler. It front-loads the main operations and is appropriately sized for a tool whose parameter details live in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is too thin. It does not clarify how the action parameter drives the other parameters, what 'list' returns, or what happens to existing bindings when adding or removing. An agent would need to infer significant operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 5 parameters with 100% coverage, including the action values and the meaning of key, actionName, and deadzone. The description adds no new parameter-level meaning, but it does not need to because the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear set of operations — add, remove, or list — on the specific resource of input actions and bindings, which goes beyond a mere restatement of the tool name. It does not explicitly distinguish itself from related input sibling tools like game_input_action, but the operation set is reasonably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. With many input-related siblings, an agent gets no help choosing between manage_input_map and tools like game_input_action or game_input_state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_layersC
List/set named layer definitions in project
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Layer name | |
| layer | No | Layer number (1-32) | |
| action | Yes | Action: list or set | |
| layerType | No | Type: render, physics_2d, physics_3d, navigation | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. Saying 'set' implies mutation and 'list' implies read-only behavior, but the description does not mention side effects on project files, reversibility, errors, or what happens when a named layer already exists. This is thin for a tool that can modify project state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. The primary actions are front-loaded, and every word contributes to the meaning. This is appropriately terse for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description leaves important invocation context unspecified: which parameters are required for each action, return behavior for 'list,' and whether 'set' overwrites or appends layer definitions. The schema provides parameter names but not the action-conditioned logic needed to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds the concept of 'named layer definitions' but does not clarify conditional parameter requirements, such as which parameters are needed for 'list' versus 'set.' It neither significantly compensates for nor detracts from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List/set named layer definitions in project.' It is clear about the two actions and the project-level scope, and the resource is distinct from sibling tools. However, it does not explicitly contrast itself with any sibling, and 'named layer definitions' assumes Godot-specific knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as manage_autoloads, manage_input_map, or other project configuration tools. No prerequisites, conditional actions, or exclusions are mentioned, so the agent must infer usage entirely from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_pluginsC
List/enable/disable editor plugins
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: list, enable, disable | |
| pluginName | No | Plugin name | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The verbs reveal that enable/disable mutate plugin state, but the description does not disclose persistence of changes, side effects on the running editor or project settings, reload requirements, or error behavior for nonexistent plugins. This is comparable to the update_drive calibration case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four words, fully front-loaded with the action verbs, and every word earns its place. It is efficient, though the brevity is at the edge of under-specification for a state-mutating tool with three parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no annotations and no output schema, the description is thin. It does not explain what enabling/disabling does to the project, what the list operation returns, or how pluginName applies per action. An agent must infer the operational contract from a single phrase.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description's verbs map directly onto the action values ('list, enable, disable'), reinforcing that relationship, but it adds no detail on pluginName format or the conditional nature of that parameter (needed for enable/disable but not list). Baseline 3 applies given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('editor plugins') with three concrete operations (list, enable, disable), which clearly communicates the tool's function and distinguishes it from sibling manage_* tools targeting other resources (autoloads, input maps, export presets). It does not explicitly name a sibling it is not, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling manage_* tools, no prerequisites are stated (e.g., whether the project must be open in the editor), and no exclusions or alternatives are mentioned. Usage context is only weakly implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_resourceC
Read or modify .tres/.res resource files
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: read or modify | |
| properties | No | Properties to modify | |
| projectPath | Yes | Godot project path | |
| resourcePath | Yes | Resource file path (relative to project) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It only states 'read or modify' but does not explain whether modification is in-place, how properties are merged or replaced, what side effects occur, or what the tool returns. This is a significant gap for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and target, containing no filler. It is concise without being purely tautological, though the brevity contributes to missing behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested properties object and no output schema, so the agent needs more context about modify semantics and return values. The description provides none of this, making it too thin for fully confident invocation in a large sibling toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter-level meaning beyond the schema, and details like the exact allowed action values or the shape of the properties object are left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair (read or modify) and a specific resource type (.tres/.res files), so the core purpose is clear. It does not explicitly differentiate among sibling tools like read_file/write_file or create_resource, but the resource-scoped wording is sufficiently specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus sibling tools such as read_file, write_file, create_resource, or manage_theme_resource. No prerequisites, exclusions, or alternative-selection hints are provided, leaving the agent to infer usage from file extensions alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_scene_signalsB
List/add/remove signal connections in .tscn files
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: list, add, remove | |
| method | No | Target method name | |
| scenePath | Yes | Scene file path (relative to project) | |
| signalName | No | Signal name | |
| sourcePath | No | Source node path | |
| targetPath | No | Target node path | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies mutation through 'add/remove' but does not reveal whether the .tscn file is written to disk, whether operations are idempotent, what validation occurs, or what side effects a failed operation has.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact, front-loaded phrase with no redundant wording. Every word contributes: it names the operations and the resource type in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool handles three distinct actions with seven parameters, has no output schema, and no annotations, yet the description is only one short phrase. It does not explain which parameters are needed per action, what list returns, whether changes persist, or how this differs from runtime signal operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds the broader context that these parameters relate to signal connections in .tscn files, but it does not clarify how action, sourcePath, targetPath, signalName, and method combine for each operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: list/add/remove signal connections in .tscn files. It names a specific verb set and a concrete resource, and the '.tscn' qualifier distinguishes it from runtime signal tools like game_connect_signal and game_disconnect_signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool over alternatives. It does not mention the sibling runtime signal tools, nor does it explain when to prefer file-based signal editing versus runtime connection/disconnection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_scene_structureC
Rename/duplicate/move nodes within .tscn scenes
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: rename, duplicate, move | |
| newName | No | New name (for rename) | |
| nodePath | Yes | Source node path in scene | |
| scenePath | Yes | Scene file path (relative to project) | |
| projectPath | Yes | Godot project path | |
| newParentPath | No | New parent path (for move) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists three actions but does not state whether the tool rewrites the .tscn file on disk, whether rename updates references to the node, whether duplicate copies child nodes and properties, whether move adjusts parent transforms, or whether changes are persisted immediately. These are significant unknowns for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and contains no filler, but it is closer to under-specification than to appropriately sized guidance. It is a single short phrase that communicates the core action but omits essential behavioral and conditional context that would make the length appropriate for a multi-action tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action tool with six parameters, no annotations, no output schema, and many closely related sibling tools. The description provides only a high-level summary of the three operations and fails to explain per-action behavior, parameter dependencies, file mutation effects, or success/failure semantics. An agent would need significant additional inference to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already described with basic meaning. The description adds little beyond naming the three actions, which the schema already lists. It does not clarify conditional parameter requirements, such as when newName vs newParentPath should be supplied, so it provides only marginal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair: 'Rename/duplicate/move nodes within .tscn scenes.' This clearly communicates the primary function and the file type it targets. However, it does not explicitly distinguish itself from sibling tools like modify_scene_node or game_reparent_node, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when this tool should be used versus alternatives such as modify_scene_node, add_node, remove_scene_node, or game_reparent_node. It also does not clarify whether this operates on static scene files versus runtime scene tree manipulation, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_shaderC
Create or read .gdshader files
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create or read | |
| source | No | Shader source code (for create) | |
| shaderPath | Yes | Shader file path (relative to project) | |
| shaderType | No | Type: spatial, canvas_item, particles, sky | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create or read' conveys the basic operation types, but it does not disclose important behaviors such as whether create overwrites existing files, whether directories are created, if any validation happens, or what the read operation returns. This is a significant gap for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler and the key actions front-loaded. It is concise and easy to parse, though it is so minimal that it misses opportunities to include actionable guidance without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has five parameters, three required, and supports two distinct actions with different parameter needs, yet there is no output schema or annotation coverage. The description fails to explain per-action requirements, return formats, side effects, or error conditions, making it incomplete for an agent to correctly invoke create vs read without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no parameter-level meaning beyond the schema; it merely restates the high-level actions. Baseline 3 is appropriate since the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pairing ('Create or read .gdshader files') and distinguishes this tool from generic file tools like read_file/write_file by targeting shader files specifically. However, it does not elaborate on the two actions or how this relates to other shader-related siblings such as game_visual_shader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like read_file, write_file, create_script, or game_visual_shader. There is no mention of when to choose manage_shader or when to avoid it, leaving the agent to rely on the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_theme_resourceB
Create/read/modify Theme .tres resources
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: create, read, modify | |
| properties | No | Theme properties to set | |
| projectPath | Yes | Godot project path | |
| resourcePath | Yes | Theme file path (relative to project) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects. It only restates the CRUD-style actions already visible in the action parameter, and does not explain whether modify merges or overwrites, whether create fails on existing files, what safety constraints exist, or what a read returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler and the key scope is front-loaded. It is economical and readable, though the brevity contributes to missing behavioral and contextual details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undefined nested properties structure, the description leaves out return behavior, error/failure conditions, and property format details. For a tool that can create and modify resources, this is insufficient context for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies: each parameter already has a basic description in the schema. The tool description adds only the .tres theme context; it does not clarify the opaque nested 'properties' object or define valid theme property types, but the schema coverage prevents a lower score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the resource type ('Theme .tres resources') and the operations available ('Create/read/modify'), so an agent can understand what the tool targets. However, it does not explicitly distinguish this from sibling tools like manage_resource or create_resource, so it falls short of a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The resource type and action list imply usage for Theme .tres files, but there is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is mentioned. Given the large sibling set, the agent must infer the tool's intended role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_translationsC
List/add/remove translation files in project
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: list, add, remove | |
| projectPath | Yes | Godot project path | |
| translationPath | No | Translation file path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies add/remove operations are file mutations, but doesn't disclose side effects, whether project configuration files are modified, prerequisites (e.g., valid Godot project), or failure behavior. For a tool with potentially destructive actions, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the action verbs and clearly names the resource. However, it is terse to the point of omitting useful context, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, this description is too thin. It lacks usage context, parameter interplay, and behavioral disclosure. An agent would not know how to invoke this correctly for each action, nor what to expect in return, and cannot differentiate it well from similar management tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level detail beyond the schema; it just paraphrases the action field. It doesn't clarify that translationPath is only needed for add/remove, but the schema already marks it optional, so no information is missing beyond what's structural.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List/add/remove translation files in project' uses a specific verb set and identifies the resource (translation files) and scope (project). It clearly states what the tool does, but doesn't explicitly distinguish it from sibling tools like game_locale or manage_resource, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any conditions or exclusions. It doesn't explain when to use 'list' vs 'add' vs 'remove', or when manage_translations is preferred over game_locale or other manage_* tools. The usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_project_settingsC
Modify a project.godot setting
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Setting key (e.g., "run/main_scene", "window/size/viewport_width") | |
| value | Yes | Value to set (as a string, will be written as-is) | |
| section | Yes | Section in project.godot (e.g., "application", "display", "rendering") | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Modify' signals mutation, but the description does not reveal whether the whole file is rewritten (risking comment/formatting loss), whether missing sections or keys are created, how the string value is interpreted beyond 'as-is', or whether conflicts arise with a running editor. These are material behaviors for a config-file mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single declarative sentence front-loaded with the verb and resource, containing zero filler. Every word earns its place, though the extreme brevity is what leaves the behavioral and usage gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 required parameters and no annotations or output schema, the description omits key operational facts: whether missing sections/keys get created, whether the edit is a safe read-modify-write or a full rewrite, and how to verify the result. The obvious verification step via read_project_settings is not hinted at, leaving an agent under-equipped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents all four parameters with types, purposes, and examples (e.g., key values like 'run/main_scene'; value noted as 'written as-is'), giving 100% coverage. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Modify') and resource ('a project.godot setting'), making the core operation unambiguous, and it is clearly separable from read_project_settings (read vs. write). However, it does not differentiate from the many other project-configuration siblings (set_main_scene, manage_autoloads, manage_input_map, manage_export_presets) that also write to project configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives. With multiple siblings touching project configuration (read_project_settings, set_main_scene, manage_autoloads, manage_input_map, manage_export_presets), the agent gets no help deciding between this generic key/value editor and a specialized configuration tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_scene_nodeA
Modify node properties in a scene file (headless)
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node within the scene (e.g., "root/Player/Sprite2D") | |
| scenePath | Yes | Scene file path (relative to project) | |
| properties | Yes | Properties to set on the node as key-value pairs | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals a write operation but does not disclose whether the scene file is saved automatically, whether properties are merged or overwritten, whether changes are reversible, or what happens on invalid node/property paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short declarative sentence with no filler. The key scope ('headless', scene file, node properties) is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter tool, the schema covers parameter semantics and the description covers the execution mode. Missing details are the write/persist semantics and how 'properties' are applied, which an agent would need to fully predict side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; all four parameters (projectPath, scenePath, nodePath, properties) are already documented in the schema. The description adds only the general context that node properties are being modified, without offering additional value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Modify'), a specific resource ('node properties in a scene file'), and the headless execution mode. This clearly distinguishes it from runtime tools like game_set_property and structural tools like add_node or remove_scene_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(headless)' clearly indicates this operates on scene files outside the running game, which is useful context for selecting it over runtime property setters. It doesn't explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileC
Read a text file from a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | File path relative to project root | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavioral traits. It says the tool reads a text file, but does not mention what happens if the file is binary, whether it returns raw content or metadata, size limits, encoding handling, or error behavior. There is no contradiction with annotations since none exist, but a read tool with no annotations should at least confirm it is non-destructive, which the name and description imply but do not explicitly state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, every word earns its place. It's a model of conciseness for a simple read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must fill more gaps. It doesn't state the return format, error behavior, or how paths are resolved (e.g., absolute vs relative). For a simple read tool, close to adequate, but the complete absence of output information and edge-case handling leaves an agent guessing about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add parameter-level detail. However, schema coverage is 100% with straightforward descriptions 'File path relative to project root' and 'Godot project path', so the baseline is 3. The description's phrase 'text file' clarifies that filePath should identify a text file, which is a small addition, but not enough to raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Read a text file') and a specific resource ('from a Godot project'), which is clear enough to distinguish from write_file and delete_file. However, it doesn't differentiate from read_scene or read_project_settings, which read different resource types; the description is clear but doesn't explicitly mention 'text' vs other file types beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use read_file versus alternatives like read_scene or list_project_files. The description simply states the functionality without any context on scope, exclusions, or preferred use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_project_settingsA
Read project.godot as structured JSON
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses the key behavior — reading project.godot and returning structured JSON — which implies a non-mutating read operation. However, it does not mention failure modes, required project structure, or any validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action ('Read') and the target resource, making it immediately scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool, the description covers the essential context: what is read (project.godot), from where (the provided project path), and what the agent will receive ('structured JSON'). No output schema exists, but the return format is explicitly stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single parameter projectPath is already documented as 'Godot project path'. The description adds minimal value beyond the schema, which is expected and acceptable under the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a precise resource ('project.godot'), and specifies the output format ('structured JSON'). This clearly distinguishes it from sibling tools like modify_project_settings or read_scene at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied: use this tool when you need to read Godot project settings from project.godot as JSON. However, it does not explicitly state when to prefer this tool over alternatives such as read_file or get_project_info, nor does it offer exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_sceneB
Read scene file as JSON node tree (headless)
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Scene file path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. The word 'headless' adds useful context (it reads the file without launching the editor/game), and 'Read' implies a non-destructive operation. However, the description does not disclose error behavior (missing file, invalid scene), whether binary .scn scenes are supported, how inherited scenes or ext_resource references are handled, or any project-load prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is seven words and every word earns its place: verb, object, output format, and mode (headless). It is appropriately front-loaded for a simple read tool. It could afford one additional sentence of behavioral or usage context without becoming bloated, but as written it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the sole source of return-value and safety information. 'JSON node tree' conveys the general shape but not the structure (root node, properties, transforms, scripts, connections), and this is a Godot-specific format with edge cases (binary scenes, inherited scenes, sub-resources). Against a very large sibling set and zero structured enrichment, a 7-word description leaves material gaps for an agent calling this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both projectPath and scenePath have concise descriptions in the schema, so the baseline is 3. The tool description adds no parameter-level meaning beyond the schema: it does not clarify whether projectPath should be absolute or point at the directory containing project.godot, nor whether scenePath requires the file extension. The description neither hurts nor improves on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read scene file as JSON node tree (headless)'. It clearly conveys what the tool does and the output format. However, it does not explicitly differentiate from siblings like game_get_scene_tree (which reads the live runtime tree) — the 'headless' qualifier hints at reading from disk, but the distinction is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With roughly 190 siblings including game_get_scene_tree, read_file, modify_scene_node, and save_scene, an agent receives no help choosing between reading the file from disk (headless) versus reading the live scene tree, or between this and a generic file read. The description gives no context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_scene_nodeB
Remove a node from a scene file (headless)
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the node to remove (e.g., "root/Player/OldNode") | |
| scenePath | Yes | Scene file path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. 'Remove a node from a scene file (headless)' clearly indicates a destructive mutation on a file, but it does not disclose whether the removal is permanent, whether the file is overwritten in-place, whether there is undo/safety, or what happens if the node path is invalid. This is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence that states the operation and context. It is concise and front-loaded, though it could add a brief mention of when to use the headless approach versus runtime removal without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is mostly adequate. However, there is no output schema and no mention of success/error behavior, file-saving semantics, or distinction from game_remove_node. For a destructive file operation, a bit more context about persistence and validation behavior would help an agent avoid mistakes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add detail about the parameter semantics beyond the schema's example for nodePath. It does not clarify relationships between projectPath, scenePath, and nodePath, but the schema already provides adequate names and examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a node from a scene file (headless)' clearly identifies the verb (remove), the resource (node in a scene file), and the headless/non-rendered context. It is distinct enough from siblings like game_remove_node, which operates on a running game, and modify_scene_node, which edits nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for file-based scene editing without launching the project, and the sibling list shows alternatives like game_remove_node for runtime removal. However, it does not explicitly state when to choose this over modify_scene_node or game_remove_node, so an agent gets moderate guidance from context but not clear exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_fileB
Rename or move a file within the project
| Name | Required | Description | Default |
|---|---|---|---|
| newPath | Yes | New file path (relative to project) | |
| filePath | Yes | Current file path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It accurately indicates a mutating file operation, but it does not disclose what happens if newPath already exists, whether directories are created, whether project references are updated, or what the result/error behavior is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the operation and its scope. There is no filler or redundant repetition of parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and all parameters are documented, but with no annotations and no output schema, the description leaves behavioral gaps such as overwrite semantics and return values. It is minimally adequate for selecting the tool, but not fully complete for predicting the outcome of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters clearly. The description adds little beyond the schema, but the baseline of 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Rename or move a file within the project.' It clearly identifies the operation and scope, and it is readily distinguishable from sibling tools such as delete_file, write_file, and read_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The phrase 'within the project' is a scope constraint, but it does not help the agent decide between rename_file and related file operations such as write_file or create_directory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_projectB
Run the Godot project and capture output
| Name | Required | Description | Default |
|---|---|---|---|
| scene | No | Optional: Specific scene to run | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the only source of behavioral disclosure. 'Capture output' hints at process management, but the description does not explain blocking behavior, process lifecycle, side effects, or how output is returned or accessed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It communicates the core action and intended outcome efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the simple schema, running a project is a stateful operation with lifecycle implications, and there is no output schema or annotations to carry the missing details. The description leaves out expected behavior after launch, output destination/format, and interaction with stop_project.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents projectPath and the optional scene. The description adds no additional meaning about how these parameters affect execution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb-resource pair ('Run the Godot project') and adds 'capture output,' which distinguishes it from siblings like launch_editor, export_project, and stop_project. An agent can tell what this tool does without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit or implied guidance about when to choose run_project over related tools such as launch_editor, stop_project, or game_change_scene. No context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sceneC
Save changes to a scene file
| Name | Required | Description | Default |
|---|---|---|---|
| newPath | No | Optional: New path to save the scene to (for creating variants) | |
| scenePath | Yes | Scene file path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose whether saving overwrites the existing scene file, requires the scene to be loaded, or returns a success/failure status. With no annotations provided, the description carries the full burden of behavioral transparency, and it is mostly silent about side effects beyond the obvious act of saving.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is easy to parse and front-loads the core purpose. There is no unnecessary prose, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file-mutating tool with no annotations and no output schema, the description is too thin. It does not state the effect on the original file, the conditions under which newPath is used, or whether an agent should call a different tool first to ensure the scene is loaded. The presence of many scene-related siblings makes this lack of surrounding context more damaging.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters clearly, including the optional nature of newPath and the relative path note for scenePath. The description adds no additional parameter semantics, but because schema coverage is 100%, the baseline for this dimension is high and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Save changes to a scene file' identifies the verb and resource clearly, but it doesn't differentiate from the many sibling tools like create_scene, modify_scene_node, or set_main_scene. It implies a save operation, but without stating whether this creates a new file, overwrites, or applies only to open scenes, it is only marginally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use save_scene versus alternatives such as modify_scene_node or create_scene. The optional newPath parameter hints at saving variants but the description does not explicitly say when to use it or what happens to the original file. An agent is left to infer the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_main_sceneC
Set the main scene in project.godot
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Scene path (relative to project) | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It mentions that project.godot is modified, but it does not state whether this overwrites an existing main scene, whether the change is reversible, or what side effects might occur in the running project. For a mutating operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler or redundant wording. It is well-structured and front-loads the core action and target, though it could be slightly richer in behavioral guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter operation, the description is minimally sufficient: it states what is set and where. However, with no annotations and no output schema, the agent still lacks insight into side effects, return behavior, and when to prefer this tool over related project-setting tools, leaving clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented. The description does not add meaningful parameter-level detail beyond what the schema provides, which places it at the baseline. The mention of project.godot provides slight context that projectPath likely points to a Godot project containing that file, but not much more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Set') and a specific resource ('the main scene in project.godot'), making the tool's purpose immediately understandable. However, it does not explicitly distinguish itself from related siblings such as modify_project_settings, which could also potentially change this setting, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like modify_project_settings or create_project. There are no context cues, prerequisites, or exclusions mentioned, leaving the agent to infer the appropriate usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_projectA
Stop the currently running Godot project
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'Stop' without explaining side effects (e.g., unsaved changes, process termination), error conditions (no running project), or whether it's reversible. For a destructive action, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that directly states the action and target. It's front-loaded with the verb and resource, with zero redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description adequately covers the core action. However, it doesn't mention what happens if no project is running or whether the tool returns any feedback, which would be useful but not critical for a stop action. The description is mostly complete given its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty (100% coverage). The description doesn't need to explain any parameters, and the baseline for 0-parameter tools is 4. It adds no extra parameter meaning because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Stop') and a specific resource ('the currently running Godot project'). It clearly distinguishes from siblings like run_project (which starts) and get_debug_output (which retrieves output), so an agent can easily infer its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need to stop a running project) but does not explicitly mention when not to use it or alternatives. Since it's a simple action with no parameters, the context is clear, but it doesn't provide explicit routing like naming run_project as the counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_project_uidsA
Update UID references by resaving resources (4.4+)
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects. It reveals the operation writes by 'resaving resources', which implies modification of project files, and adds the version constraint. However, it does not mention that this may touch many files or other potential side effects like UID reassignment or irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and no filler. The version constraint is appended compactly, making the description appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool the description is almost sufficient, but without annotations or an output schema it omits success/failure behavior and the scope of changes (whole project). It would be more complete with a note on what is returned or how invasive the resave is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with 'Godot project path' for projectPath. The description adds no additional parameter semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update'), an object ('UID references'), and the mechanism ('resaving resources'), plus a version qualifier '(4.4+)'. This clearly differentiates the operation from siblings like get_uid and save_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but the '(4.4+)' constraint signals it is for Godot 4.4 or newer. The use case is implied, not spelled out, and no alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_scriptA
Check a GDScript file for syntax/type errors (headless, no run)
| Name | Required | Description | Default |
|---|---|---|---|
| scriptPath | Yes | GDScript file path relative to project (e.g. "scripts/player.gd") | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool is headless and does not run the script, but does not disclose what happens on success/failure (e.g., output, errors), side effects, or any required permissions. It adds some context beyond the schema but lacks completeness for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that immediately states the core purpose and context. Every word is necessary, with no redundancy or filler. It is effectively front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should clarify what the tool returns or outputs (e.g., errors, success status). It does not mention output format, logging, or any side effects. The two parameters are adequately documented in the schema, but the tool's behavior post-check is missing, leaving it moderately incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (scriptPath, projectPath) with 100% coverage. The description adds no additional parameter-level meaning, so it meets the baseline of 3 without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and resource 'GDScript file', clearly stating the action: syntax/type errors. It also adds context 'headless, no run', which distinguishes it from running scripts. This differentiates it from sibling 'validate_scripts' (plural) which likely handles multiple scripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal context with 'headless, no run' but does not specify when to use this tool vs alternatives like 'validate_scripts'. No prerequisites, limitations, or exclusions are mentioned, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_scriptsB
Batch-check GDScript files (git-changed by default, or all)
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | "changed" = git-changed .gd (default); "all" = every .gd in project | |
| projectPath | Yes | Godot project path | |
| scriptPaths | No | Optional explicit list of .gd paths to check (overrides scope) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It does not indicate whether the tool is read-only or destructive, what effects it has on the system, or how errors/validation results are communicated. The minimal description leaves the agent uncertain about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and free of redundancy. It is concise, though it could be expanded slightly to provide more value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain return values, prerequisites (e.g., git repository for 'changed' scope), or how the tool behaves with different parameter combinations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description paraphrases the 'scope' enum values already documented in the schema. It adds no new meaning beyond what the schema provides for any parameter. Therefore, baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs batch-checking of GDScript files, distinguishing it from the sibling 'validate_script' (singular). The phrase 'git-changed by default, or all' further clarifies scope. However, it does not specify what 'check' means (e.g., syntax validation, linting), leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for batch validation of GDScript files, with a default scope of git-changed files. It provides no explicit guidance on when to prefer this tool over alternatives (e.g., the singular 'validate_script'), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileA
Create or overwrite a text file in a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | File content to write | |
| filePath | Yes | File path relative to project root | |
| projectPath | Yes | Godot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It explicitly discloses the destructive overwrite behavior, which is important. However, it does not mention whether parent directories are created, path validation behavior, encoding, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the action and scopes it precisely to a Godot project. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter file write tool with fully described parameters, the description is largely complete. It discloses the key destructive behavior (overwrite), and no output schema exists to explain return values. Missing usage alternatives are a minor gap relative to the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a basic description. The tool description adds no extra meaning beyond those schema fields, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Create or overwrite') and resource ('a text file in a Godot project'), distinguishing it from file-related siblings like read_file and delete_file. It is concrete and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for writing text files in a Godot project, but does not explicitly say when to prefer this over alternatives such as create_script, create_resource, or save_scene. Usage context is present but no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v3.1.0- Added
create_csharp_script - Changed
create_project1 field changed- added
Input schema / properties / dotnetAdded value: +{ + "description": "Scaffold a .NET (C#) project (.csproj + \"C#\" feature). Default: false", + "type": "boolean" +}
- Changed
game_audio_bus_layout2 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Action: add, remove, move, set_send, list"New value: +"Action: add, remove, set_send, list" - removed
Input schema / properties / indexRemoved value: -{ - "description": "Target index (for move)", - "type": "number" -}
- Changed
game_audio_effect2 fields changed- added
Input schema / properties / enabledAdded value: +{ + "description": "Enable/disable the effect (for configure)", + "type": "boolean" +} - changed
Input schema / properties / properties / descriptionPrevious value: -"Effect properties to set"New value: +"Effect properties to set (for configure)"
- Changed
game_canvas2 fields changed- added
Input schema / properties / offsetAdded value: +{ + "description": "CanvasLayer offset {x,y} (for configure)", + "type": "object" +} - added
Input schema / properties / visibleAdded value: +{ + "description": "CanvasLayer visibility (for configure)", + "type": "boolean" +}
- Changed
game_canvas_draw2 fields changed- added
Input schema / properties / fontSizeAdded value: +{ + "description": "Text font size. Default: 16", + "type": "number" +} - added
Input schema / properties / positionAdded value: +{ + "description": "Text position {x,y} (baseline, for text)", + "type": "object" +}
- Changed
game_light_2d1 field changed- added
Input schema / properties / pointsAdded value: +{ + "description": "Occluder polygon points [{x,y},...] (for create_occluder)", + "type": "array" +}
- Changed
game_parallax5 fields changed- changed
Input schema / properties / mirroring / descriptionPrevious value: -"Mirroring {x,y}"New value: +"Mirroring {x,y} (ParallaxLayer)" - changed
Input schema / properties / motionOffset / descriptionPrevious value: -"Motion offset {x,y}"New value: +"Motion offset {x,y} (ParallaxLayer)" - changed
Input schema / properties / motionScale / descriptionPrevious value: -"Motion scale {x,y}"New value: +"Motion scale {x,y} (ParallaxLayer)" - added
Input schema / properties / scrollBaseOffsetAdded value: +{ + "description": "Scroll base offset {x,y} (ParallaxBackground configure)", + "type": "object" +} - added
Input schema / properties / scrollOffsetAdded value: +{ + "description": "Scroll offset {x,y} (ParallaxBackground configure)", + "type": "object" +}
- Changed
game_physics_2d5 fields changed- added
Input schema / properties / maxResultsAdded value: +{ + "description": "Max results. Default: 32", + "type": "number" +} - added
Input schema / properties / positionAdded value: +{ + "description": "Query position {x,y} (point_query/shape_query)", + "type": "object" +} - added
Input schema / properties / radiusAdded value: +{ + "description": "Circle radius (shape_query circle)", + "type": "number" +} - added
Input schema / properties / shapeTypeAdded value: +{ + "description": "Shape: circle or rectangle (shape_query)", + "type": "string" +} - added
Input schema / properties / sizeAdded value: +{ + "description": "Rectangle size {x,y} (shape_query rectangle)", + "type": "object" +}
- Changed
game_wait1 field changed- added
Input schema / properties / frameTypeAdded value: +{ + "description": "Frame to wait on: \"physics\" (fixed 60Hz ticks) or \"render\". Default: render", + "enum": [ + "render", + "physics" + ], + "type": "string" +}
- Added
validate_script - Added
validate_scripts
154 tool updates
v1.0.0- First observed
add_node - First observed
attach_script - First observed
create_directory - First observed
create_project - First observed
create_resource - First observed
create_scene - First observed
create_script - First observed
delete_file - First observed
export_mesh_library - First observed
export_project - First observed
game_3d_effects - First observed
game_add_collision - First observed
game_animation_control - First observed
game_animation_tree - First observed
game_audio_bus - First observed
game_audio_bus_layout - First observed
game_audio_effect - First observed
game_audio_play - First observed
game_audio_spatial - First observed
game_await_signal - First observed
game_bone_pose - First observed
game_call_method - First observed
game_camera_attributes - First observed
game_canvas - First observed
game_canvas_draw - First observed
game_change_scene - First observed
game_click - First observed
game_connect_signal - First observed
game_create_animation - First observed
game_create_joint - First observed
game_create_timer - First observed
game_csg - First observed
game_debug_draw - First observed
game_disconnect_signal - First observed
game_emit_signal - First observed
game_environment - First observed
game_eval - First observed
game_find_nodes_by_class - First observed
game_gamepad - First observed
game_get_audio - First observed
game_get_camera - First observed
game_get_errors - First observed
game_get_logs - First observed
game_get_node_info - First observed
game_get_nodes_in_group - First observed
game_get_property - First observed
game_get_scene_tree - First observed
game_get_ui - First observed
game_gi - First observed
game_gridmap - First observed
game_http_request - First observed
game_input_action - First observed
game_input_state - First observed
game_instantiate_scene - First observed
game_key_hold - First observed
game_key_press - First observed
game_key_release - First observed
game_light_2d - First observed
game_light_3d - First observed
game_list_signals - First observed
game_locale - First observed
game_manage_group - First observed
game_mesh_instance - First observed
game_mouse_drag - First observed
game_mouse_move - First observed
game_multimesh - First observed
game_multiplayer - First observed
game_navigate_path - First observed
game_navigation_3d - First observed
game_os_info - First observed
game_parallax - First observed
game_path_2d - First observed
game_path_3d - First observed
game_pause - First observed
game_performance - First observed
game_physics_2d - First observed
game_physics_3d - First observed
game_physics_body - First observed
game_play_animation - First observed
game_procedural_mesh - First observed
game_process_mode - First observed
game_raycast - First observed
game_remove_node - First observed
game_render_settings - First observed
game_reparent_node - First observed
game_resource - First observed
game_rpc - First observed
game_screenshot - First observed
game_script - First observed
game_scroll - First observed
game_serialize_state - First observed
game_set_camera - First observed
game_set_particles - First observed
game_set_property - First observed
game_set_shader_param - First observed
game_shape_2d - First observed
game_skeleton_ik - First observed
game_sky - First observed
game_spawn_node - First observed
game_terrain - First observed
game_tilemap - First observed
game_time_scale - First observed
game_touch - First observed
game_tween_property - First observed
game_ui_control - First observed
game_ui_item_list - First observed
game_ui_menu - First observed
game_ui_popup - First observed
game_ui_range - First observed
game_ui_tabs - First observed
game_ui_text - First observed
game_ui_theme - First observed
game_ui_tree - First observed
game_video - First observed
game_viewport - First observed
game_visual_shader - First observed
game_wait - First observed
game_websocket - First observed
game_window - First observed
game_world_settings - First observed
get_debug_output - First observed
get_godot_version - First observed
get_project_info - First observed
get_uid - First observed
launch_editor - First observed
list_project_files - First observed
list_projects - First observed
load_sprite - First observed
manage_autoloads - First observed
manage_ci_pipeline - First observed
manage_docker_export - First observed
manage_export_presets - First observed
manage_input_map - First observed
manage_layers - First observed
manage_plugins - First observed
manage_resource - First observed
manage_scene_signals - First observed
manage_scene_structure - First observed
manage_shader - First observed
manage_theme_resource - First observed
manage_translations - First observed
modify_project_settings - First observed
modify_scene_node - First observed
read_file - First observed
read_project_settings - First observed
read_scene - First observed
remove_scene_node - First observed
rename_file - First observed
run_project - First observed
save_scene - First observed
set_main_scene - First observed
stop_project - First observed
update_project_uids - First observed
write_file
TDQS
Scored across 157 tools
Most tools have clearly distinct purposes due to specific naming and descriptions. However, there is some potential overlap among animation tools (e.g., game_play_animation, game_animation_control, game_create_animation) and between game_eval and game_call_method, which could cause occasional misselection.
Runtime tools consistently use the 'game_' prefix, while project-level tools follow verb_noun patterns (e.g., create_scene, delete_file). However, there is a mix of prefixes like 'manage_', 'get_', and 'read_' for non-runtime tools, which slightly reduces consistency.
With 157 tools, the count is extremely high and far exceeds the typical range for a well-scoped server. Even for a 'full control' server, this number likely overwhelms agents and suggests lack of modularity.
The tool set covers an extensive range of Godot operations: project management, scene editing, runtime inspection and control, audio, animation, physics, UI, networking, and more. There are no obvious gaps for the stated 'full control' purpose.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that gives AI assistants direct control over Godot 4 game development projects. It enables launching the editor, running projects, creating and editing scenes, writing GDScript, and inspecting assets through natural language commands.4413 npm4MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to directly run, inspect, modify, and debug Godot game development projects through 110+ tools covering scenes, scripts, resources, runtime debugging, and asset management.3321 npm2MIT
- AlicenseAqualityCmaintenanceAn MCP server that gives AI assistants full control over the Godot game engine, enabling scene building, script writing, game running, and more through natural language.75229 npm3MIT
- AlicenseBqualityBmaintenanceThis MCP server allows AI assistants to control the Godot editor and running games, enabling scene creation, script editing, input simulation, and gameplay testing through 174 tools.100287 npmMIT