Skip to main content
Glama
morvoso

godot-ai-mcp

by morvoso

Godot AI MCP Server

An enhanced Model Context Protocol (MCP) server for the Godot game engine. Provides AI assistants with tools to launch the editor, run projects, manipulate scenes, manage scripts, and control node properties — all through a standardized MCP interface.

Based on @coding-solo/godot-mcp by Solomon Elias. That project provides the original core tools (launch editor, run project, scene management, UID tools). This fork adds script manipulation (set_script, read_script, write_script, list_scripts), scene inspection (get_scene_tree), node removal (remove_node), and property editing (set_node_property).

Original project: Coding-Solo/godot-mcp — MIT License.

Features

Core Tools

  • launch_editor — Open the Godot editor for a project

  • run_project — Run a Godot project in debug mode

  • get_debug_output — Capture stdout/stderr from running projects

  • stop_project — Stop a running project

  • get_godot_version — Check installed Godot version

  • list_projects — Find Godot projects in a directory

  • get_project_info — Get project metadata (scene count, script count, etc.)

Scene Management

  • create_scene — Create new scene files with any root node type

  • add_node — Add nodes to existing scenes with properties

  • remove_node — Remove nodes from scenes

  • get_scene_tree — Inspect the full scene tree structure

  • load_sprite — Load textures into Sprite2D/Sprite3D/TextureRect nodes

  • export_mesh_library — Export 3D scenes as MeshLibrary for GridMap

  • save_scene — Save/repack scene files

Script Tools

  • set_script — Attach a script to a node (creates the script if it doesn't exist)

  • read_script — Read .gd, .cs, or .shader file contents

  • write_script — Create or overwrite script files

  • list_scripts — List all scripts in a project

Node Properties

  • set_node_property — Set any property on a node in a scene

UID Management (Godot 4.4+)

  • get_uid — Get UID for a specific file

  • update_project_uids — Resave all resources to update UID references

Related MCP server: Gear

Requirements

  • Node.js >= 18.0.0

  • Godot 4.x (Mono build recommended for C# support)

Installation

npm install -g /path/to/godot-ai-mcp

Or use directly via npx:

npx /path/to/godot-ai-mcp

Configuration

MCP Config (opencode.json, claude desktop, etc.)

{
  "mcp": {
    "godot-ai": {
      "type": "local",
      "command": [
        "env",
        "GODOT_PATH=/path/to/your/godot/executable",
        "DEBUG=true",
        "npx",
        "-y",
        "godot-ai-mcp"
      ]
    }
  }
}

Environment Variables

Variable

Description

GODOT_PATH

Path to the Godot executable (auto-detected if not set)

DEBUG

Set to true for verbose debug output on stderr

Usage Examples

Create a scene with a Player node and attach a script

1. create_scene(projectPath="/path/to/project", scenePath="scenes/player.tscn", rootNodeType="CharacterBody2D")
2. add_node(projectPath="/path/to/project", scenePath="scenes/player.tscn", parentNodePath="root", nodeType="Sprite2D", nodeName="Sprite")
3. set_script(projectPath="/path/to/project", scenePath="scenes/player.tscn", nodePath="root", scriptPath="scripts/player.gd")
4. load_sprite(projectPath="/path/to/project", scenePath="scenes/player.tscn", nodePath="root/Sprite", texturePath="assets/player.png")

Inspect and modify a scene

1. get_scene_tree(projectPath="/path/to/project", scenePath="scenes/level.tscn")
2. set_node_property(projectPath="/path/to/project", scenePath="scenes/level.tscn", nodePath="root/Enemy", propertyName="position", propertyValue=[100, 200])
3. remove_node(projectPath="/path/to/project", scenePath="scenes/level.tscn", nodePath="root/DebugNode")

Script workflow

1. list_scripts(projectPath="/path/to/project")
2. read_script(projectPath="/path/to/project", scriptPath="scripts/enemy.gd")
3. write_script(projectPath="/path/to/project", scriptPath="scripts/enemy.gd", content="extends CharacterBody2D\n...")

Building from Source

npm install
npm run build

The compiled output goes to build/. The GDScript file is copied to build/scripts/.

License

MIT — see LICENSE for details.

This project is derived from @coding-solo/godot-mcp (MIT, © Solomon Elias). The original core server architecture, GDScript headless operations pattern, and scene manipulation tools are based on that project.

Available Tools

21 tools
add_nodeB

Add a node to an existing scene

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNameYesName for the new node
nodeTypeYesType of node to add (e.g., Sprite2D, CollisionShape2D)
scenePathYesPath to the scene file (relative to project)
propertiesNoOptional properties to set on the node
projectPathYesPath to the Godot project directory
parentNodePathNoPath to the parent node (e.g., "root" or "root/Player")

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose side effects, but it only says 'Add a node.' It does not state whether the scene file is modified in place, whether saving is required, whether the operation is reversible, or any permissions needed. This is a significant gap 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence without redundancy. It is appropriately concise, though it sacrifices content for brevity. The structure is fine, and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, nested objects, no output schema, and no annotations, the description is far from complete. It does not explain the return value, whether the scene is saved automatically, or the relationship between parameters (e.g., parentNodePath). The agent lacks essential context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters have descriptions in the input schema. The description adds no additional semantic value beyond the schema, which is acceptable given the high coverage. The baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Add) and the resource (a node to an existing scene). It distinguishes itself from sibling tools like create_scene and save_scene by focusing on modifying an existing scene rather than creating or saving one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 does not mention that it modifies an existing scene and might require save_scene afterward, nor does it contrast with create_scene. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sceneA

Create a new Godot scene file

ParametersJSON Schema
NameRequiredDescriptionDefault
scenePathYesPath where the scene file will be saved (relative to project)
projectPathYesPath to the Godot project directory
rootNodeTypeNoType of the root node (e.g., Node2D, Node3D)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description alone must communicate side effects. It only says 'create' without disclosing whether it overwrites an existing file, what happens on failure, or what the return value is. This is minimal and leaves important behavioral details unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, succinct sentence that conveys the core functionality without extraneous words. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary action but lacks details about return values or error behavior, and it does not clarify whether the scene is saved immediately or merely created in memory. Given the simplicity of the operation, it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions for all three parameters (projectPath, scenePath, rootNodeType), giving full coverage. The tool description itself adds no extra clarity, so it stays at the baseline expected for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('a new Godot scene file'), making the purpose unambiguous. It also implicitly distinguishes itself from siblings like 'save_scene' (which saves an existing scene) and 'add_node' (which adds nodes to a scene).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating new scene files but does not explicitly state when to use this over alternatives like save_scene. No exclusions or conditions are given, 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.

export_mesh_libraryC

Export a scene as a MeshLibrary resource

ParametersJSON Schema
NameRequiredDescriptionDefault
scenePathYesPath to the scene file (.tscn) to export
outputPathYesPath where the mesh library (.res) will be saved
projectPathYesPath to the Godot project directory
meshItemNamesNoOptional: Names of specific mesh items

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It indicates a write operation ('Export') but fails to mention side effects (e.g., file overwrite behavior, required permissions, error handling, or whether the original scene is modified).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise and front-loaded. However, it could be slightly expanded to include essential context without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of an export tool (no output schema, no annotations, 4 parameters), the description is too minimal. It does not explain what a MeshLibrary is, the export process, or any important considerations like file conflicts or supported mesh types.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does not add extra meaning beyond the schema, which already describes each parameter. Thus, the parameter semantics are adequate but not enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Export) and the resource (scene as MeshLibrary), making the purpose immediately understandable. However, it does not differentiate from siblings like save_scene, but since no other export tool exists, uniqueness is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other scene-related tools, nor are prerequisites or context for invocation given. The description lacks any usage instructions.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_infoB

Retrieve metadata about a Godot project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the Godot project directory

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The verb 'retrieve' implies a read-only operation, but the description does not explicitly state that it has no side effects or what permissions it requires. Since there are no annotations, the description carries the full burden and only partially covers the behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words or repetition. It is well-structured and easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema or description of what metadata is returned. The term 'metadata' is vague and does not specify whether it returns project configuration, version info, or something else, leaving the agent without enough context to know what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'projectPath' is described as 'Path to the Godot project directory', which is clear and covers the basic meaning. However, since the schema already provides this description, the tool description adds no additional detail about path format, required existence, or edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'retrieve' and the target 'metadata about a Godot project', making the tool's basic purpose easy to understand. However, it does not explicitly differentiate itself from sibling tools like get_godot_version or get_uid, which could also be considered metadata retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 the sibling tools. There is no mention of scenarios, prerequisites, or exclusions, so an agent has little context for choosing this over more specific retrieval tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_scene_treeB

Get the scene tree structure of a scene file

ParametersJSON Schema
NameRequiredDescriptionDefault
scenePathYesPath to the scene file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description lacks behavioral details such as return format, performance implications, or permissions needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous information; efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema or behavioral details, the description is insufficient for an agent to understand what the tool returns or when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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; description adds no additional meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'scene tree structure', and distinguishes from sibling tools like 'add_node' and 'remove_node'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'read_script' or 'get_debug_output'.

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+)

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only adds a version constraint (Godot 4.4+) but omits essential information like what the UID is, error conditions, or whether any side effects occur. This is insufficient for a safe operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core purpose without extraneous information. Every word is necessary and no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 parameters, no output schema), the description provides minimal but adequate context. The version constraint is useful, but missing details like return value format or error handling would help the agent use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions. The tool description does not add any extra semantic meaning beyond what is already in the schema, so the score defaults to the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get) and resource (UID for a specific file) along with context (Godot project, version 4.4+). It distinguishes from siblings like update_project_uids (which is a write tool) and other read tools that return different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor any exclusions or prerequisites beyond the required parameters. The description only provides a basic purpose but no decision support for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

launch_editorC

Launch Godot editor for a specific project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the Godot project directory

TDQS

C2.8/5.0
Behavior2/5

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 any side effects, blocking behavior, or requirements (e.g., whether it opens a new window, requires an existing project, or modifies any files). This is insufficient for an agent to predict the tool's impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single sentence with no filler. However, it is under-specified rather than efficiently comprehensive. It lacks necessary details about behavior and usage, so while it is short, it doesn't earn its place by providing full value. A 3 reflects the balance between brevity and adequacy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no annotations, the description should provide enough context to call it correctly. It states the action but omits critical information such as whether the editor must be installed, whether the path must point to a valid project, and whether the call is blocking or returns immediately. This is incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter projectPath is fully documented in the schema. The description adds no additional semantics beyond the action, but the schema already explains the parameter. Baseline 3 is appropriate; the description doesn't harm, but it also doesn't enhance the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (launch) and the resource (Godot editor) for a specific project. It distinguishes implicitly from siblings like run_project (which runs the project rather than opening the editor) and list_projects (which lists projects). However, it doesn't explicitly name the alternative or the selection criteria, so it's clear but not maximally differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 run_project. The description does not mention any prerequisites, use cases, or conditions that would lead an agent to select this tool over its siblings. The agent must infer usage from the tool name alone.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYesDirectory to search for Godot projects
recursiveNoWhether to search recursively (default: false)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

list_scriptsC

List all script files in a Godot project

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoOptional: Search only in this subdirectory
extensionNoFilter by extension: ".gd", ".cs", or ".shader" (default: all)
projectPathYesPath to the Godot project directory

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral transparency. It only states 'list all script files' without disclosing side effects (safe/destructive), permissions needed, or return format. This is insufficient for an agent to anticipate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no unnecessary words. Efficient and easy to parse. Could slightly benefit from context, but no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description lacks critical completeness. It doesn't explain return values, pagination, recursion depth, or coverage of script types (only implied by extension param). Incomplete for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 extra meaning beyond the schema; it merely restates the action. No enrichment of parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all script files in a Godot project' – a specific verb and resource. However, it does not differentiate from sibling tools like 'list_projects' or 'read_script', missing opportunity for clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines provided. The description does not indicate when to use this tool over alternatives such as 'read_script' or 'write_script', nor does it mention any prerequisites or contexts.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nodePathYesPath to the Sprite2D node (e.g., "root/Player/Sprite2D")
scenePathYesPath to the scene file (relative to project)
projectPathYesPath to the Godot project directory
texturePathYesPath to the texture file (relative to project)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for disclosing side effects. It only states that a sprite is loaded into a node, without mentioning whether this modifies the scene file, requires a saved scene, returns a value, or has any persistent effects. This lack of detail leaves significant ambiguity about the tool's 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words or unnecessary details. It is concise and front-loaded, clearly stating the core action without distraction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 and the mutation-like nature of the action, the description is insufficiently contextual. It does not explain what 'load' means operationally (e.g., sets a texture property, replaces an existing asset), whether the scene must be saved, or what the expected result is. This leaves gaps for an agent attempting to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%—all four parameters have individual descriptions explaining their meaning (e.g., 'Path to the texture file (relative to project)'). The tool description itself adds no extra parameter information, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (load) and the target resource (a sprite into a Sprite2D node), making the tool's primary purpose understandable. It does not explicitly contrast with sibling tools like add_node, but the specific action is distinct enough for basic identification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 add_node or other scene modification tools. It omits any contextual conditions or prerequisites, leaving the agent to infer appropriate usage solely from the action description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_scriptA

Read the contents of a script file (.gd, .cs, .shader)

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptPathYesPath to the script file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Implies read-only operation with no side effects, but lacks details on return format, error handling for missing files, or any limitations (e.g., file size).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no unnecessary words. Essential information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple read operation with two parameters. Missing return format and error behavior, but acceptable given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The tool description adds value by specifying supported file extensions, which is not in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reads script file contents and lists specific extensions (.gd, .cs, .shader). Distinguishes from sibling tools like list_scripts (listing) and write_script (writing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., list_scripts for discovery). No prerequisites or context mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_nodeB

Remove a node from an existing scene

ParametersJSON Schema
NameRequiredDescriptionDefault
nodePathYesPath to the node to remove (e.g., "root/Player/Sprite2D")
scenePathYesPath to the scene file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

B3.2/5.0
Behavior2/5

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 only states the action but does not disclose behavioral traits such as whether removal is permanent, affects children, requires saving, or any other 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that clearly and efficiently communicates the core purpose with no waste. It is front-loaded and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is missing important context such as prerequisites, return value, or side effects. No output schema exists to compensate. The description is minimal and incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-specific information beyond what the schema provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Remove a node from an existing scene' uses a specific verb 'Remove' and a clear resource 'node', and distinguishes this tool from siblings like 'add_node' or 'create_scene' that perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no preconditions, and no exclusions. It lacks context about when removal is appropriate or what not to do.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_projectC

Run the Godot project and capture output

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNoOptional: Specific scene to run
projectPathYesPath to the Godot project directory

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the behavioral burden. It mentions 'capture output' but does not disclose side effects, blocking behavior, or whether the process continues running after invocation. The name 'run_project' implies execution but lacks specifics about what the user will observe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler or redundant information. It efficiently conveys the primary purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is present, and the description does not clarify what 'capture output' means—whether it returns logs, exit codes, or streams. It also omits whether the tool blocks until the project closes or returns immediately. This leaves the agent uncertain about the expected behavior and return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides full coverage for both parameters with their descriptions. The tool description adds no extra semantic detail beyond the schema, so it neither enhances nor detracts from the schema's clarity. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Run') and object ('the Godot project'), plus a specific outcome ('capture output'). It is distinct from siblings like `launch_editor` or `stop_project`, though the phrase 'capture output' could be more detailed about what output is captured.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It does not mention prerequisites, like whether the project must exist or if the Godot editor must be closed, nor does it explain the effect of the optional 'scene' parameter in context.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
newPathNoOptional: New path to save the scene to
scenePathYesPath to the scene file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only says 'Save changes', implying a write operation, but does not disclose side effects (e.g., overwriting, required permissions, or interaction with project state). Minimal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise at 6 words, no unnecessary information. Front-loaded and to the point, but at the expense of missing critical usage details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no output schema, no annotations), the description is too brief. It fails to explain what 'saving changes' entails, whether it overwrites, or how the optional newPath parameter works. More context is needed for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and parameter descriptions in the schema are clear. The description adds no extra meaning; it only restates the purpose. Since schema covers, baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Save changes to a scene file' which is a clear verb+resource. It distinguishes from sibling tools like 'create_scene' (creation) and 'load_sprite' (loading). However, 'scene file' is a bit generic and doesn't specify the context (Godot), but it's still clear enough for an AI agent familiar with the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. No when-not or exclusions. The description is a single sentence with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_node_propertyC

Set a property on a node in a scene

ParametersJSON Schema
NameRequiredDescriptionDefault
nodePathYesPath to the node (e.g., "root/Player")
scenePathYesPath to the scene file (relative to project)
projectPathYesPath to the Godot project directory
propertyNameYesName of the property to set
propertyValueYesValue to set (can be string, number, boolean, or object for Vector2/Color etc)

TDQS

C2.8/5.0
Behavior2/5

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 the action but does not mention side effects (e.g., persistance, project state requirements) or potential dangers like overwriting existing properties. The description is too minimal 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) and front-loaded, but it sacrifices detail. It earns its place but could be expanded to include usage hints without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 required parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values or the effect on the scene (e.g., does it require saving?). More context is needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds no additional meaning beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'property on a node in a scene', which distinguishes it from sibling tools like add_node or remove_node. However, it lacks specificity about the scope (e.g., modifies scene file) and could be more precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 vs alternatives, nor does it mention prerequisites or constraints. It is a one-line statement without usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_scriptB

Attach a script to a node in a scene. Creates the script file if it does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodePathYesPath to the node (e.g., "root/Player")
scenePathYesPath to the scene file (relative to project)
class_nameNoOptional class name for the script (for C# or GDScript classes)
scriptPathYesPath to the script file (relative to project, e.g., "scripts/player.gd")
projectPathYesPath to the Godot project directory
scriptLanguageNoScript language: "gdscript" or "csharp" (default: "gdscript")

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses that it attaches a script and creates the file if missing, but omits important behaviors like overwriting, error handling, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, no output schema, and no annotations, the description is too brief. It does not cover return values, error cases, or prerequisites, leaving the agent uninformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage), so the description adds no additional parameter meaning. Baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'attach' and clearly identifies the resource (script to a node), distinguishing it from sibling tools like write_script which focuses on content creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 write_script or add_node. The description lacks context for choosing this tool over others.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_uidsB

Update UID references in a Godot project by resaving resources (for Godot 4.4+)

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the Godot project directory

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It mentions resaving resources, implying file modifications, but does not disclose potential side effects, reversibility, permissions needed, or whether it may alter many files. The version requirement is useful but insufficient 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the primary action and resource. It avoids extraneous detail and is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter, no output schema, and no annotations, the description is minimally adequate. It explains what it does and the version constraint, but omits guidance on when to use it and potential side effects. Given the simplicity, it is not severely incomplete but lacks context an agent might need to decide correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 100% schema coverage with a clear description ('Path to the Godot project directory'). The tool description adds no additional meaning beyond the schema, so it meets the baseline for a fully documented parameter but does not enhance understanding further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Update'), a resource ('UID references in a Godot project'), and a method ('by resaving resources'). It clearly identifies the tool's function and includes a version constraint (Godot 4.4+), distinguishing it from sibling tools like get_uid that retrieve UIDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It only mentions a version requirement, but does not explain scenarios (e.g., after moving or renaming files) or when to prefer other project tools. The intended use is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_scriptA

Write or overwrite a script file. Use this to create new scripts or update existing ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe script content to write
scriptPathYesPath to the script file (relative to project)
projectPathYesPath to the Godot project directory

TDQS

A4/5.0
Behavior3/5

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 states the tool writes or overwrites, implying destructiveness, but does not detail what happens on overwrite (e.g., truncation, backups), error conditions, or prerequisites. More context would help, especially given the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded with the core action. No unnecessary words; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three required parameters and no output schema, the description covers the essential purpose and differentiates from siblings like 'set_script' and 'create_scene'. However, given the lack of annotations, slightly more detail on behavior (e.g., file handling) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so the description does not need to explain parameters in depth. The description adds general context but no additional detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Write or overwrite') and resource ('script file'), and explicitly says to use it for creating new scripts or updating existing ones. This distinguishes it from siblings like 'read_script' and 'list_scripts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this to create new scripts or update existing ones,' providing clear context for when to use the tool. However, it does not explicitly state when not to use it or mention alternatives, though the sibling list implies other script-related operations.

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.

  1. 21 tool updatesv1.0.0
    • First observedadd_node
    • First observedcreate_scene
    • First observedexport_mesh_library
    • First observedget_debug_output
    • First observedget_godot_version
    • First observedget_project_info
    • First observedget_scene_tree
    • First observedget_uid
    • First observedlaunch_editor
    • First observedlist_projects
    • First observedlist_scripts
    • First observedload_sprite
    • First observedread_script
    • First observedremove_node
    • First observedrun_project
    • First observedsave_scene
    • First observedset_node_property
    • First observedset_script
    • First observedstop_project
    • First observedupdate_project_uids
    • First observedwrite_script

TDQS

A3.5/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a distinct operation (e.g., add_node vs remove_node, create_scene vs save_scene, read_script vs write_script). No two tools appear to have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, using clear, imperative verbs like get, list, set, create, add, remove, etc. No mixing of conventions.

Tool Count5/5

21 tools is well-scoped for Godot game engine operations, covering scene editing, node manipulation, scripting, project management, and debugging without being overwhelming or sparse.

Completeness4/5

Core CRUD operations for scenes, nodes, and scripts are present, along with debugging and project management. Minor gaps exist (e.g., no scene deletion, no resource management beyond sprite loading), but the surface is largely complete.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to interact with the Godot game engine by launching the editor, running projects, capturing debug output, managing scenes and nodes, and controlling project execution through a standardized interface.
    18
    229 npm
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    33
    21 npm
    2
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to interact with the Godot game engine, including launching the editor, running projects, capturing debug output, and managing scenes.
    84
    57 PyPI
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to edit, run, inspect, and fix Godot 4 projects through an MCP server with dynamic tool groups and setup-gated capabilities.
    191 npm
    255
    MIT