Skip to main content
Glama
mulhans100-a11y

Godot MCP Assistant

Godot MCP Assistant

Godot MCP Assistant is a local Model Context Protocol (MCP) server for Godot 4 projects. It lets AI clients such as Cursor, Claude Desktop, and OpenAI Codex inspect project settings, create GDScript and text-scene files, and communicate with the Godot editor.

The Node.js server communicates with MCP clients over stdio. Its file tools work while Godot is closed. An optional Godot editor add-on adds a loopback bridge for opening and running scenes and capturing the editor's 2D or 3D viewport.

Features

  • create_gdscript — writes a GDScript file with a chosen base class. When source is omitted, it creates a starter script; CharacterBody2D and CharacterBody3D receive movement examples.

  • generate_tscn_scene — converts a JSON scene tree into a Godot 4 .tscn file, including external resources, sub-resources, node properties, groups, and instanced scenes.

  • analyze_project_godot — reads project.godot and returns the input map, enabled plugins, autoloads, global settings, parsed values, and original raw values.

  • inject_script_autoload — adds an existing res:// GDScript as an Autoload singleton in project.godot.

  • install_godot_editor_bridge — installs and enables the optional Godot editor add-on in a project.

  • godot_editor_status, godot_open_scene, godot_play_scene, and godot_stop_scene — inspect and control the connected editor.

  • capture_godot_viewport — returns a PNG image of the current Godot editor 2D or 3D viewport.

The tools expect the absolute path of a directory containing project.godot. Paths for files the server creates must be relative to that project directory.

Related MCP server: Godot MCP Server

Requirements

  • Node.js 18 or newer

  • A Godot 4 project with a project.godot file

  • An MCP-compatible client that can launch a local stdio server

  • Godot 4.0 or newer for editor bridge controls; viewport screenshots require Godot 4.2 or newer

Install

Clone this repository, then install its dependencies:

git clone https://github.com/YOUR-USERNAME/godot-mcp-assistant.git
cd godot-mcp-assistant
npm install

Run the server directly with:

npm start

The process waits for an MCP client on stdin and writes protocol messages to stdout. Do not add ordinary log output to stdout.

Connect the Godot editor

The file tools need no running Godot process. To open scenes, run or stop them, and capture editor viewport screenshots:

  1. Connect this MCP server to your client.

  2. Ask the assistant to call install_godot_editor_bridge with the target project's absolute projectPath. The tool copies the add-on into addons/godot_mcp_assistant, enables it in project.godot, and assigns a project-specific localhost port.

  3. Open or restart the project in the Godot editor. If it was already open during installation, restart it so Godot loads the add-on. Call godot_editor_status to confirm the bridge is connected.

The bridge listens only on 127.0.0.1. Use godot_open_scene to open a scene, godot_play_scene to run it, and godot_stop_scene to stop it. Call capture_godot_viewport with viewport set to 2d or 3d to attach a PNG of the editor viewport to the tool result. The screenshot is an editor viewport capture, not a recording or screenshot of the separate running game window.

Godot 4.0 and 4.1 can use the editor control tools. Godot added the editor viewport accessors needed for screenshots in 4.2, so screenshots require 4.2 or newer. The add-on is bundled under godot_plugin/addons/godot_mcp_assistant and is copied into each game project by the install tool.

Connect Codex

Codex CLI and the Codex IDE extension share the MCP configuration. From PowerShell, add this local stdio server with the Codex CLI. Replace the example path with the location of this repository:

codex mcp add godot-mcp-assistant -- node "C:\path\to\godot-mcp-assistant\index.js"
codex mcp list

Restart Codex after adding the server. The tools should then appear in Codex's MCP tool list.

You can also add the server manually to ~/.codex/config.toml (on Windows, usually %USERPROFILE%\.codex\config.toml):

[mcp_servers.godot-mcp-assistant]
command = "node"
args = ["C:\\path\\to\\godot-mcp-assistant\\index.js"]
enabled = true

See OpenAI's Codex MCP setup guide and Codex configuration reference.

Connect Cursor

Add the server to the project-specific .cursor/mcp.json file in the game project, or to Cursor's global MCP configuration. Replace the example path with the location of this repository on your machine.

{
  "mcpServers": {
    "godot-mcp-assistant": {
      "command": "node",
      "args": ["C:\\path\\to\\godot-mcp-assistant\\index.js"]
    }
  }
}

Restart Cursor or reload its MCP servers. Confirm that the Godot tools appear in the available tools list. Cursor documents project-specific configuration in its MCP guide.

Connect Claude Desktop

Install as a Claude Desktop extension

This repository includes an MCP Bundle manifest. From the repository directory, install dependencies and create the extension bundle:

npm install
npm install -g @anthropic-ai/mcpb
mcpb validate manifest.json
mcpb pack . godot-mcp-assistant.mcpb

In Claude Desktop, open Settings → Extensions → Advanced settings → Install Extension… and select the generated godot-mcp-assistant.mcpb file. Restart Claude Desktop if it does not appear immediately. The bundle starts the local Node.js server; the AI client supplies the absolute Godot project path in each tool call.

See Anthropic's local MCP server guide and the MCPB manifest specification.

Manual stdio configuration

For clients or Claude Desktop installations that use a manual MCP configuration, add this entry under mcpServers. On Windows, the Claude Desktop configuration file is usually under %APPDATA%\Claude\claude_desktop_config.json. If the client cannot find node, set command to the absolute path of your Node.js executable.

{
  "mcpServers": {
    "godot-mcp-assistant": {
      "command": "node",
      "args": ["C:\\path\\to\\godot-mcp-assistant\\index.js"]
    }
  }
}

Restart the client and check that the server and its tools are available. See Anthropic's MCP documentation for client setup information.

Example request

After connecting the server, ask the assistant something like:

Create a fully functional top-down player for my Godot 4 project at C:\Games\MyGame. Create scripts/player.gd extending CharacterBody2D with movement using Godot's default ui_left, ui_right, ui_up, and ui_down actions. Then create scenes/player.tscn with a CharacterBody2D root, attach that script, and add a Sprite2D and a CollisionShape2D with a capsule shape. Use existing project assets when appropriate, and tell me if an asset path is missing.

The assistant can analyze the project first, create the script, and then generate a scene that references the script and shape resource. For a new visual asset, provide an existing res:// path or ask your assistant to create the asset through another workflow.

Tool inputs

create_gdscript

{
  "projectPath": "C:/Games/MyGame",
  "scriptPath": "scripts/player.gd",
  "baseClass": "CharacterBody2D",
  "content": "extends CharacterBody2D\n\n@export var speed: float = 300.0\n\nfunc _physics_process(_delta: float) -> void:\n    var direction := Input.get_vector(\"ui_left\", \"ui_right\", \"ui_up\", \"ui_down\")\n    velocity = direction * speed\n    move_and_slide()"
}

The content field is optional. Without it, the tool generates a starter script for the selected base class. Supplied source gets an extends line if missing, and a conflicting extends declaration is rejected. Existing files are not overwritten unless overwrite is explicitly set to true.

generate_tscn_scene

Pass a JSON object with a root node, optional external resources, optional sub-resources, and nested children. Node and resource properties use Godot Variant-compatible JSON values. Use $expression only when a property needs a Godot expression such as Vector2(16, 16) or Color(1, 1, 1, 1). Use $extResource and $subResource to reference declared resources.

{
  "projectPath": "C:/Games/MyGame",
  "scenePath": "scenes/player.tscn",
  "scene": {
    "resources": [
      {
        "id": "player_script",
        "type": "Script",
        "path": "res://scripts/player.gd"
      }
    ],
    "subResources": [
      {
        "id": "player_shape",
        "type": "CapsuleShape2D",
        "properties": {
          "radius": 12.0,
          "height": 32.0
        }
      }
    ],
    "root": {
      "name": "Player",
      "type": "CharacterBody2D",
      "properties": {
        "script": {
          "$extResource": "player_script"
        }
      },
      "children": [
        {
          "name": "Sprite2D",
          "type": "Sprite2D"
        },
        {
          "name": "CollisionShape2D",
          "type": "CollisionShape2D",
          "properties": {
            "shape": {
              "$subResource": "player_shape"
            }
          }
        }
      ]
    }
  }
}

Scene files are created with Godot format version 3. External resource paths should use res://. This tool writes the scene text; it does not import or validate referenced assets in the Godot editor.

analyze_project_godot

{
  "projectPath": "C:/Games/MyGame"
}

The response includes a sections object. Each setting retains both its original raw text and a best-effort parsed value. Common packed-array constructors are parsed into arrays. Other Godot-specific constructors that are not simple arrays, dictionaries, strings, numbers, booleans, or null remain available as raw strings.

inject_script_autoload

{
  "projectPath": "C:/Games/MyGame",
  "singletonName": "GameState",
  "scriptPath": "res://scripts/game_state.gd"
}

The GDScript must already exist. If an Autoload with that name points elsewhere, the call returns an error unless replaceExisting is set to true. The tool preserves the other project settings and adds or updates only the named entry in [autoload].

Godot editor bridge tools

Install the optional add-on once for each game project:

{
  "projectPath": "C:/Games/MyGame"
}

Pass that input to install_godot_editor_bridge, then open the project in Godot. The editor must remain open for the bridge tools. For example, call godot_editor_status with the same project path, then use:

{
  "projectPath": "C:/Games/MyGame",
  "scenePath": "scenes/player.tscn"
}

Pass this input to godot_open_scene or godot_play_scene. To capture the editor's current 2D viewport, call capture_godot_viewport with {"projectPath":"C:/Games/MyGame","viewport":"2d"}; use "3d" for the 3D editor viewport. The tool attaches the PNG image to its MCP response. Screenshots require a normally running desktop editor, not --headless. Editor controls support Godot 4.0 and newer; viewport capture requires Godot 4.2 or newer.

File access and safety

  • projectPath must be absolute and must contain project.godot.

  • Created script and scene paths are relative to the project and cannot escape it.

  • Existing files are preserved by default. Set overwrite only when you intentionally want to replace a script or scene.

  • The Autoload tool requires an existing script inside the project and only accepts res:// paths.

  • The file tools do not execute GDScript. The optional editor bridge launches a scene through the open Godot editor. Review generated changes in version control and use Godot to validate project behavior.

  • The editor add-on listens only on loopback and accepts a limited set of bridge commands. Install it only in projects you trust.

MCP tools can read or change files accessible to the configured client process. Connect this server only to AI clients and projects you trust.

Development

npm install
npm start

This project uses the v1 @modelcontextprotocol/sdk package requested for compatibility with clients that support the standard MCP stdio transport. See the SDK v1 documentation and the stdio server guide.

License

MIT

Available Tools

10 tools
analyze_project_godotA

Read and parse project.godot. Returns parsed sections and raw values, with convenient input map, plugin, autoload, and project-name fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

A3.8/5.0
Behavior3/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 signals a read-only, non-mutating parse and sketches the return shape, but omits failure behavior (missing/unparseable project.godot), permission needs, and whether parsing is recursive or lazy. Adequate but thin for a zero-annotation 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?

A single sentence with the action front-loaded and the payoff (returned fields) trailing. No filler, no restatement of the tool name.

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?

With no output schema, the description usefully enumerates what comes back (parsed sections, raw values, input map, plugin, autoload, project-name). It stops short of error/edge-case behavior, but for a one-parameter read tool this is close to 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?

Only one parameter and schema coverage is 100%, with the schema itself documenting the absolute-path requirement, so the baseline is 3. The description adds nothing about projectPath semantics (e.g., relative paths, symlinks), so it neither compensates nor detracts.

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?

Specific verb+resource: 'Read and parse project.godot', and it further names the returned artifacts (parsed sections, raw values, input map, plugin, autoload, project-name keys). This distinguishes it cleanly from the sibling editor-control tools like godot_open_scene or capture_godot_viewport.

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?

Usage is implied by the resource ('project.godot') and the path parameter, but there is no explicit when-to-use, when-not, or pointer to any alternative tool. An agent can infer it is for inspecting a Godot project, but nothing routes it against siblings.

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

capture_godot_viewportB

Capture the Godot editor's current 2D or 3D viewport and return the screenshot as a PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewportNoGodot editor viewport to capture.2d
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

B3.3/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 behavioral burden. It discloses the return artifact (PNG image) and that it captures the *current* viewport, but says nothing about required state (editor open, bridge installed), permissions, latency, or image size limits — meaningful gaps for a tool that reaches into a live editor.

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 sentence with zero filler, front-loading the action and resource and ending with the output format. Every clause earns its place.

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?

With no output schema, the description usefully states the return type (PNG image), which is the key thing an agent needs. However, it omits the operational preconditions for a live-editor capture, so it is only adequate rather than 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?

Schema description coverage is 100%, so both parameters are already documented, including the 2d/3d enum and the project.godot directory requirement. The description only echoes the 2D/3D choice and adds no format or path nuance, so the baseline 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?

States a specific verb (capture), a precise resource (the Godot editor's current 2D or 3D viewport), and the output form (PNG screenshot). No sibling tool does anything similar, so an agent can select it unambiguously.

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?

There is no when-to-use guidance, no statement of prerequisites (e.g., that the editor bridge must be installed and the editor running, per install_godot_editor_bridge / godot_editor_status), and no exclusions. The description assumes the caller already knows the context.

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

create_gdscriptA

Create a GDScript file inside a Godot project. If content is omitted, generate a starter script; CharacterBody2D and CharacterBody3D get working movement examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoOptional complete GDScript source. An extends declaration is added when missing and must match baseClass when present.
baseClassNoGodot base class, for example Node, CharacterBody2D, Area2D, or CharacterBody3D.Node
overwriteNoReplace an existing file. Defaults to false.
scriptPathYesPath to the new .gd file relative to projectPath.
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries full disclosure burden. It usefully reveals that omitting content yields a starter script and that CharacterBody2D/3D get working movement examples, which is real behavioral value. However, it never states what happens when the target file already exists and overwrite is false (error? silent no-op?), nor any permission/path requirements, leaving notable gaps 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.

Conciseness5/5

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

Two tight sentences, front-loaded with the core action before the conditional behavior. Every clause carries information; nothing is restated from the title or schema.

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?

There is no output schema, so return values need not be explained, and the generation behavior is covered. But with no annotations on a file-writing tool, the description should address the pre-existing-file case and error/failure behavior; those omissions leave an agent guessing at a critical edge case.

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%, so baseline is 3, and the description earns a bump by tying the 'content' parameter to concrete fallback semantics ('if content is omitted, generate a starter script' with movement templates for physics bodies) that the schema does not spell out. It still says nothing about overwrite or baseClass interaction beyond what the schema documents.

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?

States a specific verb and resource ('Create a GDScript file inside a Godot project') and the .gd resource is plainly distinct from siblings like generate_tscn_scene or inject_script_autoload. The second sentence further characterizes the tool by describing its default-generation behavior, so an agent can identify it 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.

Usage Guidelines3/5

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

Usage is only implied: an agent infers this is the tool for producing a .gd source file. There is no explicit when-to-use/when-not framing, no mention of how it relates to inject_script_autoload (which also targets .gd files), and no stated prerequisites. The conditional 'if content is omitted' clause is behavior, not usage guidance.

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

generate_tscn_sceneC

Generate a Godot 4 text scene (.tscn) from a JSON scene tree, resources, sub-resources, groups, node properties, and optional scene instances.

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneYesScene data containing root, optional resources, optional subResources, and nested children.
overwriteNoReplace an existing scene. Defaults to false.
scenePathYesPath to the .tscn file relative to projectPath.
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

C2.9/5.0
Behavior2/5

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 implies a write operation ('Generate ... .tscn') but never states that a file is written to disk, what happens when the target already exists (the overwrite parameter exists but is not referenced), or whether the operation is idempotent or destructive. This is a significant gap for a filesystem-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.

Conciseness4/5

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

A single, front-loaded sentence listing the generated artifact and its inputs; no filler. It is appropriately sized, though the one-sentence form leaves no room for the usage or behavioral detail that is missing.

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 schema is rich and fully described (nested root/children, resources, sub-resources), so parameter semantics are largely covered. However, for a write tool with no annotations and no output schema, the description should still mention overwrite behavior and that a file is persisted. Adequate but 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 description coverage is 100% and the parameters are well documented in the schema, including overwrite's default and scenePath/projectPath semantics. The description's enumeration of scene-tree contents adds only marginal meaning beyond the schema. Baseline 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?

States a specific verb and resource: generate a Godot 4 .tscn text scene from a JSON scene tree. The scope of inputs (resources, sub-resources, groups, node properties, instances) is enumerated, so the agent knows exactly what the tool produces. It does not explicitly differentiate from siblings, though none of them overlap directly.

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 versus alternatives such as create_gdscript or godot_open_scene, and no mention of prerequisites (the schema notes projectPath must contain project.godot, but the description does not). The agent must infer usage context entirely.

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

godot_editor_statusB

Connect to the Godot editor add-on and report the editor version, current scene, play state, project path, and bridge port.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects of "Connect" such as whether it starts or requires the bridge, whether it is read-only, or what happens when the editor is unavailable. It lists reported fields, but that is return content rather than behavioral disclosure.

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 front-loaded sentence states the purpose and enumerates the reported values with no wasted wording.

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 low-complexity status tool with one fully documented parameter and no output schema, listing the returned fields fills an important gap. It still omits prerequisites and connection behavior, so it is 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 only parameter, projectPath, is fully documented in the schema at 100% coverage, so the baseline is 3. The description adds no additional 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.

Purpose4/5

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

Names a specific action (connect/report) and resource (Godot editor status), and enumerates returned fields, making it clearly distinct from scene, play, and install siblings. It does not explicitly name alternatives, so it is strong but not fully differentiated.

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?

Provides no when-to-use guidance, prerequisites such as a running editor/add-on, or alternatives/exclusions. Usage is only implied by the status-reporting wording.

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

godot_open_sceneC

Open an existing .tscn or .scn scene in the connected Godot editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenePathYesPath to an existing .tscn or .scn scene relative to projectPath.
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

C2.9/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 behavioral burden. It discloses that a connection to the Godot editor is required, but not what happens on failure, whether opening replaces the currently edited scene, whether unsaved changes are lost, or whether the operation has 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.

Conciseness4/5

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

A single, front-loaded sentence with no wasted words. It is efficient and readable, though it is so terse that it leaves little room to convey the behavioral context the tool lacks.

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 two-parameter tool with full schema coverage and no output schema, the description states the essential action. However, with no annotations it should say more about editor state, failure behavior, and prerequisites, so it is only minimally adequate.

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 both parameters are fully documented in the schema itself. The description adds no syntax or format detail beyond what the schema provides, 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.

Purpose4/5

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

States a specific verb ('Open') and resource (an existing .tscn/.scn scene) plus where it acts ('the connected Godot editor'). The word 'existing' implicitly distinguishes it from the sibling generate_tscn_scene, which creates scenes, though no sibling is named explicitly.

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?

There is no when-to-use, when-not-to-use, or alternative routing guidance. It is left to inference how this relates to godot_play_scene, godot_editor_status, or generate_tscn_scene, and no precondition (e.g. editor must be connected) is spelled out beyond the phrase 'connected Godot editor'.

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

godot_play_sceneB

Run a scene in the connected Godot editor. If scenePath is omitted, run the currently open scene.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenePathNoOptional existing .tscn or .scn path relative to projectPath.
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

B3.4/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. 'Run a scene in the connected Godot editor' implies an existing editor connection (relevant given siblings godot_editor_status and install_godot_editor_bridge) but never states it as a prerequisite, nor whether the call blocks, what it returns, 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.

Conciseness5/5

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

Two short sentences, zero waste, with the primary action front-loaded and the parameter-default behavior immediately after. Nothing superfluous and nothing buried.

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?

Adequate for a simple two-parameter tool with full schema coverage and no output schema. Still missing the most consequential context for an agent: that a live editor connection (bridge) must already exist, and whether the call is synchronous or long-running.

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%, so the baseline is 3, but the description adds real value beyond the schema: the schema documents scenePath only as an optional path, while the description explains the default behavior when it is omitted (run the currently open scene). projectPath's semantics are covered by its own schema description.

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?

States a specific verb+resource ('Run a scene') targeting the connected Godot editor, which is clearly distinct from siblings like godot_open_scene and godot_stop_scene. It stops short of explicitly naming those siblings, but the action is unambiguous.

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 second sentence supplies conditional usage ('if scenePath is omitted, run the currently open scene'), which is genuine guidance. However, it never says when to prefer this over godot_open_scene or what prerequisite state the editor must be in, so guidance is implied rather than explicit.

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

godot_stop_sceneB

Stop the scene currently running from the connected Godot editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesAbsolute path to a directory containing project.godot.

TDQS

B3.3/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 behavioral burden. It hints at a precondition (an editor connection and a running scene) but says nothing about what 'stop' destroys, whether unsaved runtime state is lost, what happens if nothing is playing, or whether the call blocks.

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?

One sentence, zero filler, action and scope front-loaded. Nothing in it is redundant or padded.

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 one-parameter control tool with no annotations and no output schema, the description states the action but omits the outcome of stopping, error/failure conditions, and any indication of what the call returns. Adequate but with clear 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 the single projectPath parameter is fully documented in the schema. The description adds no parameter meaning, so the baseline 3 for a well-covered schema 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 gives a specific verb (stop) plus resource (the currently running scene) and a scoping detail (from the connected Godot editor). An agent can distinguish it from godot_play_scene and godot_open_scene, though it never names those siblings explicitly.

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 'currently running' implies the precondition that a scene must already be playing, which is weak but real usage guidance. There is no explicit when-to-use/when-not-to-use statement and no routing to alternatives such as godot_play_scene or godot_editor_status.

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

inject_script_autoloadA

Add a GDScript as a Godot global Autoload singleton by editing project.godot. The script must exist in the project and use a res:// path.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptPathYesExisting script resource path such as res://scripts/game_state.gd.
projectPathYesAbsolute path to a directory containing project.godot.
singletonNameYesGlobal singleton name, for example GameState.
replaceExistingNoAllow changing an existing singleton with the same name. Defaults to false.

TDQS

A4/5.0
Behavior3/5

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

No annotations, so the description carries the burden. It usefully discloses that the tool mutates project.godot and requires a pre-existing script, but it says nothing about failure behavior, whether a backup is made, load-order placement, or what happens when the singleton name collides beyond what replaceExisting in the schema implies.

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 sentences, the action and the file it touches are front-loaded, and the constraint follows. No filler.

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 mutation tool with no annotations and no output schema, the description covers the target file, the required input shape, and the key precondition. Missing only edge-case behavior (duplicate names, load order, rollback), which is a modest gap.

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 description reinforces the res:// and existence constraints on scriptPath, but adds no semantics beyond the schema for projectPath, singletonName, or replaceExisting.

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?

Specific verb (add) plus resource (GDScript as a Godot global Autoload singleton) and the mechanism (editing project.godot). This clearly separates it from siblings like create_gdscript or generate_tscn_scene.

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?

States prerequisites explicitly: the script must already exist and must use a res:// path. It does not name an alternative tool or say when not to use it, which keeps it 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.

install_godot_editor_bridgeB

Install the Godot editor add-on into a Godot project, configure its localhost bridge port, and enable it in project.godot. Restart the Godot editor after installation.

ParametersJSON Schema
NameRequiredDescriptionDefault
overwriteNoReplace bridge files that differ from this server's bundled version. Defaults to false.
projectPathYesAbsolute path to a directory containing project.godot.

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 full burden, and it does disclose the concrete side effects: add-on files are written into the project, the bridge port is configured, project.godot is modified, and a restart is required. It omits failure/idempotency behavior (what happens if the bridge is already installed), whether it overwrites existing config, and any permission or editor-state constraints.

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?

Two compact sentences, front-loaded with the core action and followed by the required follow-up step; no filler. The unbacked port clause is the only slightly wasted/ambiguous element.

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 filesystem-mutating setup tool with no annotations and no output schema, the description covers the main effects and the restart requirement but says nothing about return values, idempotency, or how partial failures are handled. It is adequate but leaves real gaps for an agent invoking it unattended.

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 both parameters (projectPath, overwrite) are already documented in the schema; the description adds no parameter-level detail. It also mentions 'configure its localhost bridge port' even though no port parameter exists, which is mildly confusing but not a schema contradiction.

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?

Specific verb-plus-resource chain: installs the Godot editor add-on, configures its bridge port, and enables it in project.godot. An agent can distinguish it from siblings like inject_script_autoload or generate_tscn_scene, though the description never explicitly contrasts itself with them.

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?

Usage is implied rather than stated: it reads as a one-time setup step, and the closing sentence gives the post-install action (restart the editor). There is no explicit when-to-use, no prerequisites (e.g. whether the editor must be closed), and no comparison to related siblings that also modify the project.

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. 10 tool updatesv1.1.0
    • First observedanalyze_project_godot
    • First observedcapture_godot_viewport
    • First observedcreate_gdscript
    • First observedgenerate_tscn_scene
    • First observedgodot_editor_status
    • First observedgodot_open_scene
    • First observedgodot_play_scene
    • First observedgodot_stop_scene
    • First observedinject_script_autoload
    • First observedinstall_godot_editor_bridge

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target a clearly distinct action (screenshot, parse config, create script, generate scene, autoload, install bridge, status, open/play/stop). The editor-control group (godot_editor_status, godot_open_scene, godot_play_scene) is separable but all rely on the same bridge connection, creating slight adjacency. No two tools appear to duplicate each other.

Naming Consistency3/5

Most names are verb_noun, but the 'godot' token is placed inconsistently: as a prefix (godot_open_scene), infix (capture_godot_viewport), suffix (analyze_project_godot), and absent entirely (create_gdscript). The mix is readable but breaks a predictable pattern.

Tool Count5/5

Ten tools is well-scoped for a Godot editor assistant, covering project analysis, asset generation, editor control, and setup. Each tool earns its place with no obvious filler.

Completeness4/5

Core lifecycle for project setup, script/scene creation, and editor playback is covered. Gaps exist for editing or re-reading existing scripts/scenes and for deleting assets or autoloads, though agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers