Godot MCP Flash
Provides tools for interacting with the Godot game engine, enabling AI agents to launch the editor, run and debug projects, create and modify scenes, add nodes, load sprites, analyze scenes and scripts, capture screenshots, and manage file UIDs in a Godot project.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Godot MCP FlashRun the main scene and show me a screenshot of what it looks like."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Godot MCP Flash
A Model Context Protocol (MCP) server for interacting with the Godot game engine. It lets AI agents (Claude, Cursor, Cline, Codex, opencode, etc.) inspect, modify, run, and debug a Godot project directly.
This project is a streamlined and extended fork of the popular Coding-Solo/godot-mcp. It keeps the shared architecture and adds visual verification, project discovery, and scene/script analysis tools on top.Thank you for making this possible with your excellent open-source work!
Table of Contents
Related MCP server: Godot MCP
Features
Editor Management: Launch the Godot editor, close it, read its console output.
Running Projects: Run a project or a single scene in debug mode, capture output/errors, and stop it.
Scene Management: Create scenes, add nodes, load sprites/textures, export MeshLibrary resources, and save scenes.
Project Discovery: List browsable Godot projects and find files within a project by category.
Scene & Script Analysis: Read a
.tscnscene's hierarchy and a.gdscript's contents as structured JSON.Visual Verification: Render a scene and return a screenshot (requires a real display).
UID Management (Godot 4.4+): Read file UIDs and update project references.
Requirements
Component | Requirement |
Godot Engine | 4.x (4.4+ recommended) |
Node.js | >= 24.0.0 |
npm | bundled with Node |
If Godot is not installed, download it from godotengine.org/download.
Installation
1. Clone the repository
git clone <repo-url> godot-mcp-flash
cd godot-mcp-flash2. Install dependencies and build
npm install
npm run buildDuring npm install, the prepare script automatically runs the build. After building, two GDScript files are copied into build/scripts/:
godot_operations.gd— mutating operations such as creating scenes, adding nodes, and loading sprites.godot_insights.gd— scene and script analysis (read-only).
The server entry point is build/index.js.
Connecting an MCP Client
Claude Code
claude mcp add godot -- npx godot-mcp-flashIf the Godot path cannot be auto-detected, specify it with an environment variable:
claude mcp add godot -e GODOT_PATH=/path/to/godot -- npx godot-mcp-flashCline
Add to your MCP settings file (cline_mcp_settings.json):
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["godot-mcp-flash"],
"env": {
"GODOT_PATH": "C:\\Godot\\Godot_v4.7.1\\Godot_v4.7.1-stable_win64.exe"
},
"autoApprove": [
"launch_editor",
"run_project",
"run_scene",
"get_debug_output",
"stop_project",
"quit_godot",
"view_log",
"get_godot_version",
"list_projects",
"get_project_info",
"list_project_files",
"create_scene",
"add_node",
"load_sprite",
"export_mesh_library",
"save_scene",
"get_uid",
"update_project_uids",
"get_scene_insights",
"get_node_insights"
]
}
}
}Cursor
Via the Cursor UI: Cursor Settings > Features > MCP > + Add New MCP Server → name godot, type command, command npx godot-mcp-flash.
Project-level (.cursor/mcp.json):
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["godot-mcp-flash"],
"env": {
"GODOT_PATH": "/path/to/godot"
}
}
}
}opencode
Add the server to your opencode.json (or opencode.jsonc) under the mcp key:
{
"mcp": {
"godot": {
"type": "local",
"command": ["npx", "godot-mcp-flash"],
"enabled": true,
"environment": {
"GODOT_PATH": "C:\\Godot\\Godot_v4.7.1\\Godot_v4.7.1-stable_win64.exe"
}
}
}
}On Linux/macOS, replace GODOT_PATH with the path to your Godot binary. On Windows, use a full absolute path with escaped backslashes.
Generic MCP Client
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["godot-mcp-flash"],
"env": {
"GODOT_PATH": "/path/to/godot",
"DEBUG": "true"
}
}
}
}Windows note: Always provide a full absolute path, e.g.
"GODOT_PATH": "C:\\Godot\\Godot_v4.7.1\\Godot_v4.7.1-stable_win64.exe". Auto-detection scans common locations ifgodotis not on PATH, but setting the variable yourself is the reliable approach.
Tools
Editor & Process Management
Tool | Description | Inputs |
| Opens the Godot editor for a specific project. |
|
| Closes the editor that this server launched via | — |
| Returns the console output of the last launched editor. |
|
| Returns the installed Godot version. | — |
Running & Debugging
Tool | Description | Inputs |
| Runs the project in debug mode and captures output. |
|
| Runs a single scene (F6-style) with an auto-stop timeout. |
|
| Returns the active process's output and error lines. | — |
| Stops the running project. | — |
Discovery & Analysis
Tool | Description | Inputs |
| Lists Godot projects in a directory. |
|
| Project name, Godot version, and file statistics. |
|
| Lists scenes, scripts, and resources by category. |
|
| Returns a |
|
| Returns a |
|
Scene Editing
Tool | Description | Inputs |
| Creates a new scene with the given root node type. |
|
| Adds a node to an existing scene, optionally setting properties. |
|
| Loads a texture onto a |
|
| Exports a scene as a |
|
| Saves a scene, or saves it to a new path (variant). |
|
Visual Verification
Tool | Description | Inputs |
| Runs a scene and returns one rendered frame as an image. |
|
| Loads a |
|
Visual tools require a real display (they are not
--headless). On headless Linux, wrap Godot withxvfb-run(see below).
UID Management (Godot 4.4+)
Tool | Description | Inputs |
| Returns the UID for a specific file. |
|
| Updates UID references by resaving resources. |
|
How It Works / Architecture
The server uses two primary approaches:
Direct commands — simple operations such as
launch_editor,run_project, andget_godot_versionuse Godot's built-in CLI arguments directly (--editor,--path,--version).Bundled GDScript operations — complex operations such as
create_scene,add_node,load_sprite, andget_scene_insightsare executed by two GDScript files that are copied intobuild/scripts/during build:godot_operations.gd— packs/saves scenes, adds nodes, and writes resources.godot_insights.gd— parses.tscnand.gdfiles as plain text (noResourceLoaderneeded, so it also works in headless environments).
Both scripts receive an operation name and parameters as JSON and print the result to stdout, avoiding temporary files per operation.
The capture_screenshot tools run Godot without --headless to produce real pixels and return the PNG as a base64 image block.
Security Notes
Path validation blocks
..traversal and NUL byte (poison-null-byte) attacks.Class-name validation prevents arbitrary script instantiation (only
[A-Za-z_][A-Za-z0-9_]*identifiers are accepted).Godot execution uses argument arrays (
execFile/spawn) that bypass shell interpretation entirely, so there is no command-injection risk.
Environment Variables
Variable | Description |
| Full path to the Godot executable (overrides auto-detection). |
| When set to |
Example: screenshots on headless Linux
On a machine without a real display, create a virtual-display wrapper script:
#!/bin/sh
# /usr/local/bin/godot-xvfb
exec xvfb-run -a /usr/bin/godot "$@"chmod +x /usr/local/bin/godot-xvfb
export GODOT_PATH=/usr/local/bin/godot-xvfbTroubleshooting
Problem | Fix |
| Set the |
| Ensure the path points to a directory containing |
Visual tools report | No real display; use |
| Re-run |
Tools don't show up in Cursor | Confirm the MCP server is enabled under |
Visual tool error table:
Error | Likely cause | Fix |
| Headless Linux, no virtual display | Use |
| Wrong | Confirm the |
| Scene loading slowly or crashing | Increase |
Building from Source
git clone <repo-url> godot-mcp-flash
cd godot-mcp-flash
npm install
npm run buildThen point your MCP client directly at build/index.js instead of npx godot-mcp-flash.
To watch files during development:
npm run watchTo test tools with the MCP Inspector:
npm run inspectorLicense
This project is licensed under the MIT License.
Available Tools
22 toolsadd_nodeB
Add a node to an existing scene
| Name | Required | Description | Default |
|---|---|---|---|
| nodeName | Yes | Name for the new node | |
| nodeType | Yes | Type of node to add (e.g., Sprite2D, CollisionShape2D) | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| properties | No | Optional properties to set on the node | |
| projectPath | Yes | Path to the Godot project directory | |
| parentNodePath | No | Path to the parent node (e.g., "root" or "root/Player") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the intended action and gives no information about side effects, such as whether the scene file is modified on disk, whether the editor or running project updates immediately, how parentNodePath affects placement, or what errors may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that communicates the core purpose without any filler or redundant information. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, including a nested properties object, no output schema, and no annotations. The description only captures the high-level intent and leaves out important operational details such as required editor state, default placement behavior when parentNodePath is omitted, persistence semantics, and result/error feedback. This is inadequate for a tool an agent must invoke reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains all six parameters. The description adds no additional meaning beyond the schema, such as the relationship between parentNodePath and the scene root or how the optional properties object is applied. Baseline 3 is appropriate because the schema does the necessary work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add'), a specific resource ('a node'), and the target context ('an existing scene'). This clearly differentiates the tool from siblings like create_scene, which creates scenes rather than modifying existing ones, and save_scene, which handles persistence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing scene' provides some contextual guidance, implying this tool should be used when a scene already exists rather than when creating a new scene. However, it does not explicitly state when to prefer this over alternatives, nor does it mention prerequisites such as whether the project must be open in the Godot editor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_scene_screenshotA
Load a specific .tscn scene file and capture one rendered frame without running the full project. Returns the image for visual inspection. Requires a real display (not --headless).
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | res:// path to the .tscn file to load and capture. | |
| timeoutMs | No | Hard timeout in milliseconds (default 15000). | |
| projectPath | Yes | Path to the directory containing project.godot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It usefully discloses that the tool does not run the full project, that it captures exactly one frame, and that it requires a real display. It does not mention filesystem side effects or failure behavior, but it adds meaningful context beyond a bare capture statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences each earn their place: the load-and-capture behavior, the return value, and the critical display requirement. There is no filler, redundancy, or unnecessary schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description covers the essential invocation facts: what scene to load, that it returns an image, that it avoids a full project run, and that a display is required. Minor gaps remain around the exact representation of the returned image and error conditions, but the description is sufficient for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains projectPath, scenePath, and timeoutMs. The description adds no additional parameter-level meaning, such as scene-path conventions or timeout consequences, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Load', 'capture') and identifies a precise resource (a .tscn scene file), while clearly stating the output is one rendered frame returned as an image. The phrase 'without running the full project' also helps distinguish it from project/run_scene-like operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: when you want a single scene's rendered frame without launching the whole project. It also states a hard prerequisite ('Requires a real display (not --headless)'), but it does not explicitly name alternative sibling tools such as capture_screenshot or run_scene, so it stops 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.
capture_screenshotA
Run a Godot scene and capture a screenshot of the rendered output. Returns the image so the agent can visually verify the scene. Requires a real display (not --headless). On headless Linux, wrap Godot with xvfb-run.
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | No | Optional res:// path to a .tscn file to run. Defaults to the project main scene. | |
| timeoutMs | No | Hard timeout in milliseconds (default 15000). Godot is killed if the capture takes longer. | |
| waitFrames | No | Number of frames to render before capture (default 10). Lets shaders, physics, and layout settle. | |
| projectPath | Yes | Path to the directory containing project.godot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does a solid job: it discloses that the tool runs a scene, captures and returns an image, requires a non-headless display, and suggests xvfb-run for headless environments. It does not mention process lifecycle side effects or interactions with an already-running Godot instance, but the core behavioral expectations are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: the first states the action and result, the second explains why the agent would use it, and the third gives a crucial environment caveat. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a single-purpose capture tool: it states what it returns, why it matters, and the environment requirement. There is no output schema, so the description's note that it 'returns the image' is valuable. It could add a bit more about behavior when Godot is already running or about the returned image format, but those are secondary gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage for all four parameters, including defaults and timeout behavior. The description adds no parameter-specific detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run a Godot scene and capture a screenshot') and the resource ('rendered output'), and it explains the purpose: letting the agent visually verify the scene. It does not differentiate itself from the nearly identical sibling tool 'capture_scene_screenshot', so it loses the fifth point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context for when this tool is appropriate: when visual verification of a rendered scene is needed. It also provides an important operational prerequisite (real display required, xvfb-run for headless Linux). It does not explicitly name alternatives or state when not to use it, so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sceneC
Create a new Godot scene file
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Path where the scene file will be saved (relative to project) | |
| projectPath | Yes | Path to the Godot project directory | |
| rootNodeType | No | Type of the root node (e.g., Node2D, Node3D) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and does not mention whether existing files are overwritten, whether directories are created, what the default root node type is, or what the tool returns. This is a meaningful gap for a mutation-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It communicates the core action efficiently. It could be considered under-specified, but conciseness itself is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must provide more behavioral and contextual details to be complete. It does not explain what happens with the optional rootNodeType, whether existing files are overwritten, or what success looks like. The gaps are significant enough that an agent may call it incorrectly or with unhelpful assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description in the schema. The tool description adds no additional parameter context, which is acceptable under the high-coverage baseline. No parameter semantics are missing enough to lower the score below baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new Godot scene file'. It is clear and uses 'new' to imply this is not saving an existing scene, which loosely distinguishes it from sibling tools like save_scene. However, it does not explicitly name or contrast any sibling, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as save_scene, add_node, or run_scene. There are no conditions, exclusions, or workflow context. Usage must be inferred entirely from the word 'new', which is weak guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_mesh_libraryB
Export a scene as a MeshLibrary resource
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Path to the scene file (.tscn) to export | |
| outputPath | Yes | Path where the mesh library (.res) will be saved | |
| projectPath | Yes | Path to the Godot project directory | |
| meshItemNames | No | Optional: Names of specific mesh items to include (defaults to all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the high-level action. It does not mention whether the output file gets overwritten, whether the operation can fail, or any side effects on the Godot project.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, though slightly too terse to fully substitute for missing behavioral and usage information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is too minimal to be fully actionable. It does not explain what happens after export, how projectPath is used, or what the generated MeshLibrary resource will contain versus what the caller should expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured parameter descriptions already document the meaning of each argument. The main description adds no additional parameter-level detail, but it does not need to because the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Export') plus a specific resource ('a scene as a MeshLibrary resource'), and no sibling tool overlaps with this function. An agent can immediately identify what this tool does and why it exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool, what conditions are required, or how it relates to alternatives like run_scene or create_scene. There is no mention of prerequisites such as having a valid Godot project or scene path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debug_outputB
Get the current debug output and errors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden, but it only states that output is 'current' without explaining whether the call is read-only, clears the buffer, or requires any ongoing process. No side effects or return behavior are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short, front-loaded sentence with no filler. It is appropriately concise, though it could have used the remaining space to clarify its relationship to view_log.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter, the description conveys the basic action, but with no output schema and no usage guidance, an agent cannot know what the returned debug output looks like or how it differs from the log-viewing sibling tool. This is adequate as a minimal viable definition but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is no parameter detail for the description to add. The baseline for no-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: it retrieves the current debug output and errors. However, it does not distinguish itself from sibling tools like view_log, which could overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to call this tool instead of alternatives such as view_log, get_scene_insights, or get_node_insights. There is no mention of prerequisites like a running project or whether this should be used after a run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_godot_versionA
Get the installed Godot version
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. 'Get' implies a read-only operation, but the description does not mention what happens if Godot is not installed, whether any side effects occur, or what the response format is. It is minimally adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the exact operation without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the extremely low complexity of a zero-parameter getter, the description is functionally sufficient for an agent to select and invoke the tool. A note about the return value or failure behavior would improve completeness, but it is not critical for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema has no properties, so there is nothing to document. The baseline for a zero-parameter tool is 4, and the description correctly provides no irrelevant parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a concrete resource ('installed Godot version'), leaving no ambiguity about what the tool does. It is also clearly distinct from all sibling tools, which perform actions like launching, running, or inspecting projects, not querying version information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
For a zero-parameter query tool, the description makes the use case evident: call this when the installed Godot version is needed. It does not name alternatives, but none of the siblings serve the same purpose, so an explicit exclusion is not necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_insightsA
Understand a GDScript file (.gd): class name, extends, signals, exports, variables, methods, and dependencies. Returns structured JSON so the agent can understand a script without reading raw code.
| Name | Required | Description | Default |
|---|---|---|---|
| scriptPath | Yes | Path to the script file (relative to project) | |
| projectPath | Yes | Path to the Godot project directory | |
| includeMethods | No | Include method names (default: true) | |
| includeVariables | No | Include variable declarations (default: true) | |
| includeDependencies | No | Include dependency analysis (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does disclose the main behavior: parsing a .gd file and returning structured JSON with the listed elements. It does not address potential side effects, read-only guarantees, error behavior, or limitations such as not executing the script.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first front-loads the resource and output contents, and the second clarifies the return format and purpose. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with fully documented parameters and a description that enumerates the return fields, the essentials are covered. It could add explicit read-only/no-side-effect wording and error behavior, but the description is sufficient for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage, so the baseline is 3. The tool description names method, variable, and dependency categories that map to the include* boolean parameters, but it adds no parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource type (a GDScript .gd file) and lists the extracted content: class name, extends, signals, exports, variables, methods, and dependencies. It is clear about what the tool produces, though it does not explicitly distinguish itself from sibling tools like get_scene_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the general use case—understand a script without reading raw code—which implies when an agent would want it. However, it provides no explicit when-not-to-use guidance or alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoC
Retrieve metadata about a Godot project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Retrieve' implies a read-only action, but the description does not say what metadata is returned, how the project path is validated, or whether the tool scans/reads files versus just returns cached info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler and front-loads the core action. It could carry more useful detail, but as a concise statement it is appropriately short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does not explain what 'metadata' includes, what the invocation returns, or how this tool relates to the many Godot siblings. For a correctly selectable and callable tool, this leaves a material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so projectPath is already documented as 'Path to the Godot project directory.' The description adds no additional meaning beyond the schema, so it lands at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Retrieve') and the resource ('metadata about a Godot project'), so an agent can tell this is a read-oriented project-info tool. However, 'metadata' is vague and the description does not explicitly differentiate it from siblings like list_project_files, get_scene_insights, or get_godot_version, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related siblings, no stated prerequisites, and no exclusions. The sibling list contains several information-retrieval tools, but the description gives no routing help at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_insightsA
Understand a Godot scene file (.tscn): node hierarchy, attached scripts, and signal connections. Returns structured JSON so the agent can understand scene architecture without reading raw scene files.
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Path to the scene file (relative to project) | |
| projectPath | Yes | Path to the Godot project directory | |
| includeProperties | No | Include node properties in the structure (default: true) | |
| includeConnections | No | Include signal connections in the structure (default: true) | |
| includeScriptInsights | No | Include analysis for scripts attached to nodes (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects and behavioral traits. It mentions that structured JSON is returned, but never explicitly states that the tool is read-only/non-mutating, what happens on invalid paths, or whether it parses only vs. modifies. The 'get' name hints at safety but the description leaves this implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action and target file type front-loaded and the output format stated immediately. Every clause adds information: file type, extracted content, return type, and intended benefit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must carry more context. It conveys the high-level return content but does not describe the JSON shape, required path semantics beyond schema names, behavior for missing/invalid scenes, or side-effect safety. It is a viable minimal description, not a complete one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no parameter-specific meaning beyond naming the three insight categories that map to the boolean flags, which is exactly the baseline value expected when the schema carries the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Understand a Godot scene file') with concrete content areas: node hierarchy, attached scripts, and signal connections, and distinguishes the tool's scope from raw file reading. It does not explicitly name or differentiate sibling tools like get_node_insights, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context: use this when the agent needs structural scene understanding 'without reading raw scene files'. It does not mention alternatives or exclusions, but the intended scenario is evident enough for typical selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uidA
Get the UID for a specific file in a Godot project (for Godot 4.4+)
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the file (relative to project) for which to get the UID | |
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions the tool 'gets' a UID and the Godot 4.4+ requirement; it does not state whether the operation is read-only, how failures are handled, or what the return value looks like. The verb suggests a read operation, but significant behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no filler. The core action and target are front-loaded, followed by a useful version qualifier. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup, the description captures the essential purpose and version requirement. However, with no output schema and no mention of return format or error behavior, an agent is left without complete information about what to expect when invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (projectPath and filePath) with 100% coverage. The description adds no additional meaning or context about how these parameters should be used, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('UID for a specific file in a Godot project'), making the tool's function unambiguous. It also adds a version qualifier (Godot 4.4+), and while it does not explicitly name sibling tools, the retrieval action distinguishes it clearly from update_project_uids.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when you need a file's UID in a Godot 4.4+ project—but it does not explicitly state when not to use it or mention alternatives such as update_project_uids. The version constraint provides some context, but there is no direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_editorB
Launch Godot editor for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Launch', which implies starting an editor process, but does not disclose whether the call blocks, returns immediately, opens a GUI window, or requires the Godot executable to be installed. These are meaningful unknowns for an agent invoking a tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler or redundant wording. It front-loads the action and target resource appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one well-documented parameter, the description is minimally viable. However, it lacks usage guidance and behavioral detail, and with no output schema or annotations, the agent is left to guess important execution semantics. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents projectPath fully as 'Path to the Godot project directory' with 100% coverage. The description adds no further parameter detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Launch Godot editor for a specific project'. It is clear that the tool opens the editor rather than running the project, which separates it from siblings like run_project and run_scene, though it does not explicitly name that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It does not mention that run_project should be used for executing the project, or that launch_editor is for interactive editing. Sibling names imply this, but the description itself provides no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_filesB
List Godot scenes, scripts, resources, and shaders in a project
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional file category filter (default: all) | |
| pattern | No | Optional project-relative glob filter (for example, "enemies/**") | |
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden, but it only restates the listing action and file categories. It does not state whether the listing is recursive, whether it is read-only, how invalid project paths are handled, or the shape of the returned results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and scope. There is no redundant or tangential content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with a fully documented schema, the description is adequate but minimal. It omits behavior details like recursion and output format, and it does not position the tool relative to siblings, which an agent would need for correct invocation in ambiguous situations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with 100% coverage, so the description is not required to restate them. The description adds no extra meaning about the parameters themselves; the categories mentioned map loosely to the type enum but do not clarify the pattern or projectPath semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource (Godot project files across scenes, scripts, resources, and shaders), which clearly distinguishes it from siblings like list_projects or run_project. However, the enum in the schema does not include a 'shader' category, so the description slightly overstates the available filter options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_projects or get_project_info. It also does not mention recommended scenarios, prerequisites, or conditions under which the pattern/type filters should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
List Godot projects in a directory
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Directory to search for Godot projects | |
| recursive | No | Whether to search recursively (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. 'List' conveys a read-only operation, but it does not disclose how projects are identified, what happens for invalid directories, or whether the operation is purely local.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the essential action and scope efficiently without wasting the agent's attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter list operation, the description plus full schema coverage is mostly adequate. However, with no output schema, the description does not clarify the return format or how a 'Godot project' is recognized, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description adds no meaning beyond restating that the search occurs 'in a directory', which mirrors the schema's 'directory' parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List') and resource ('Godot projects') with a clear scope ('in a directory'). It does not explicitly differentiate itself from sibling tools like list_project_files, though the project-vs-file distinction is somewhat implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for discovering Godot projects in a directory, but it gives no explicit guidance on when to prefer this tool over alternatives such as get_project_info or list_project_files. There are no exclusions or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_spriteC
Load a sprite into a Sprite2D node
| Name | Required | Description | Default |
|---|---|---|---|
| nodePath | Yes | Path to the Sprite2D node (e.g., "root/Player/Sprite2D") | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| projectPath | Yes | Path to the Godot project directory | |
| texturePath | Yes | Path to the texture file (relative to project) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the core action and says nothing about side effects (whether the scene file is modified or saved), failure modes (node or texture not found), or idempotency. For a tool that mutates editor state, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is an efficient single sentence with no wasted words, and the core action is front-loaded. However, at only eight words it is under-sized for a four-parameter tool with no annotations or output schema, so its brevity comes at the cost of omitted useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should at least indicate what a successful load returns, whether the change persists to the scene file, and what prerequisites apply (e.g., the Sprite2D node must already exist, the texture must be imported). None of this is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (projectPath, scenePath, nodePath, texturePath) individually documented and nodePath given a concrete example. Under the high-coverage baseline, the description does not need to add parameter detail, and it does not waste space restating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Load'), the asset ('sprite'), and the target ('Sprite2D node'), making the operation unambiguous and not a tautology. However, it does not explicitly distinguish itself from sibling tools like add_node, which could plausibly be used to add a sprite 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over siblings such as add_node or get_scene_insights, and mentions no prerequisites, exclusions, or conditions. The phrase 'into a Sprite2D node' only faintly implies the node already exists, which is not enough routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quit_godotA
Close the Godot editor that was launched by this MCP server via launch_editor. Only closes editors spawned by this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly discloses the destructive action of closing an editor and the scope restriction. It does not describe return behavior or handling of unsaved changes, but the core side effect and boundary are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action and scope are front-loaded before the clarifying restriction, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is sufficiently complete: it names the source (launch_editor), the scope (this server), and the limitation. Only minor details like no-op or error behavior when no editor is open are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is complete by default; the baseline score of 4 applies. The description adds useful context about how the target editor is identified—via launch_editor—rather than listing nonexistent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Close' as the verb and 'Godot editor' as the resource, and specifies the scope 'launched by this MCP server via launch_editor.' This distinguishes it from siblings like stop_project and run_scene, which target running processes/scenes rather than the editor itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly ties usage to a prior launch_editor call and adds an exclusion: only server-spawned editors are affected. This tells an agent when the tool applies and when it does not, even though no alternative sibling tool is relevant for this action.
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
| Name | Required | Description | Default |
|---|---|---|---|
| scene | No | Optional: Specific scene to run | |
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether running blocks, whether an existing project must be open, whether it stops a previous run, or what 'capture output' actually returns or stores.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words and is easy to scan. It is appropriately brief for the limited parameter set, though it sacrifices behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a side-effecting tool with no annotations and no output schema, yet the description leaves the run lifecycle, output format, and relationship to related tools unexplained. The description is minimally viable but incomplete for confident autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters at 100% coverage, so the description adds little semantic value. The baseline of 3 applies because the schema handles parameter meaning adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'Run the Godot project', and a secondary behavior, 'capture output'. This clearly identifies the resource and distinguishes it from run_scene, though it does not explicitly name the sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus run_scene or stop_project, and there are no prerequisites or exclusions mentioned. The intended usage must be inferred entirely from the name and the short description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_sceneB
Run a specific Godot scene and capture output
| Name | Required | Description | Default |
|---|---|---|---|
| scenePath | Yes | Scene to run, as a res:// path or a path relative to the project | |
| timeoutMs | No | Time in milliseconds before the scene is stopped automatically (default: 30000) | |
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Capture output' hints at return behavior, but it does not explain whether the tool blocks until the scene exits, whether timeoutMs stops it, whether it launches a separate process, or what side effects running a scene may have. This is a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repetition of schema details. It communicates the core action and a key behavioral aspect ('capture output') in eight words, earning its place entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though the params are well-documented in the schema, there is no output schema and no annotation to clarify what 'capture output' means, how the run lifecycle works, or what the agent should expect as a response. The description leaves key operational context missing for a tool that launches a scene.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents projectPath, scenePath, and timeoutMs. The description does not add extra parameter meaning, but it also does not need to because the schema is complete. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run') and the target resource ('a specific Godot scene'), and distinguishes this from sibling tools like run_project by emphasizing the scene-level scope and adding the output-capture behavior. It is specific enough for an agent to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose run_scene over alternatives such as run_project, launch_editor, or stop_project. The word 'specific' lightly implies scene-level execution, but there is no explicit context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sceneC
Save changes to a scene file
| Name | Required | Description | Default |
|---|---|---|---|
| newPath | No | Optional: New path to save the scene to (for creating variants) | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Save changes' and fails to explain whether the original file is overwritten, how the optional newPath variant behaves, or what happens on failure. This is a minimal but not misleading statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to conveying the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with no annotations and no output schema, this definition is under-specified. It does not explain save-as behavior via newPath, overwrite semantics, or when a scene qualifies as savable, which an agent would need for correct invocation beyond a trivial call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter descriptions already document projectPath, scenePath, and newPath, including the variant intent. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb and resource ('Save changes to a scene file') and is understandable at a glance. It does not explicitly contrast with siblings like create_scene or run_scene, but the focus on persisting changes to an existing scene is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as create_scene for new scenes or run_scene for launching a scene. There are no prerequisites, exclusions, or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_projectA
Stop the currently running Godot project
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but does not explain side effects, such as whether the editor remains open, whether state is saved, or what happens if no project is running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler or redundant detail. It is appropriately concise for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless stop operation, the description is mostly complete. It lacks explicit failure-mode or return-value details, but these are not essential for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers parameter needs. The description adds no parameter information, but none is required here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Stop') and a clear resource ('the currently running Godot project'). It is readily distinguishable from sibling tools like run_project, run_scene, and quit_godot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently running' implies the tool should be used only when a project is active, but the description gives no explicit guidance about when to prefer this over quit_godot or how it interacts with run_scene. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_project_uidsA
Update UID references in a Godot project by resaving resources (for Godot 4.4+)
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that the operation mutates the project by resaving resources, which implies file-level writes. But it stops short of describing side effects (which files get rewritten), reversibility, or prerequisites such as whether the Godot editor must be closed during the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly packed sentence with zero filler. The verb, resource, mechanism, and version gate are front-loaded in order of importance, making the tool's purpose readable at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the core semantics are well covered: what it does, how it does it, and the version requirement. The main gap is what success looks like or exactly what changes on disk, but the tool's narrow scope makes this omission non-critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — projectPath is already documented as 'Path to the Godot project directory'. The description adds only the Godot 4.4+ version qualifier, which subtly constrains what projectPath should point to but contributes no new syntax or format details. The baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Update'), a precise resource ('UID references in a Godot project'), the mechanism ('by resaving resources'), and a version scope ('for Godot 4.4+'). This clearly differentiates it from siblings like get_uid (single-resource UID lookup) and save_scene (persisting a single scene) without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for Godot 4.4+' qualifier provides applicability context — this tool is only relevant for projects on Godot 4.4 or newer. However, there is no explicit statement of when to prefer this tool over alternatives (e.g., get_uid for individual UID checks) or when not to use it, leaving routing to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
view_logA
View recent console output from the last launched editor or running project. Returns the last N lines of captured stdout/stderr.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Number of trailing lines to return (default 50, max 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure. It does explain the main behavior — returning recent captured stdout/stderr lines — which is useful. However, it does not mention limitations, behavior when no editor/project has launched yet, whether the buffer is persistent, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose and then adds the specific return behavior. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and no annotations, the description is reasonably complete: it identifies the source of logs, the content type, and the return shape. It could be stronger by noting what happens when no prior launch/run exists, but this is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents lineCount, including its default and max. The description adds only the phrase 'last N lines,' which aligns with the parameter but does not add meaningful semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('View') and a specific resource ('recent console output from the last launched editor or running project'). It also clarifies the return value ('last N lines of captured stdout/stderr'). However, it does not explicitly distinguish this from the sibling tool get_debug_output, which could plausibly serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is relevant: after an editor has been launched or while a project is running. It gives no explicit guidance on when not to use it, nor does it mention an alternative such as get_debug_output, so an agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
22 tool updates
v1.0.0- First observed
add_node - First observed
capture_scene_screenshot - First observed
capture_screenshot - First observed
create_scene - First observed
export_mesh_library - First observed
get_debug_output - First observed
get_godot_version - First observed
get_node_insights - First observed
get_project_info - First observed
get_scene_insights - First observed
get_uid - First observed
launch_editor - First observed
list_project_files - First observed
list_projects - First observed
load_sprite - First observed
quit_godot - First observed
run_project - First observed
run_scene - First observed
save_scene - First observed
stop_project - First observed
update_project_uids - First observed
view_log
TDQS
Several near-overlapping pairs exist: get_debug_output/view_log both retrieve process output, run_project/run_scene and capture_screenshot/capture_scene_screenshot are similar paired operations, though descriptions mostly clarify the differences. get_node_insights is also misleading since it analyzes .gd script files, not scene-tree nodes, even though the description does clarify this.
All 22 tools follow a consistent snake_case verb_noun pattern (launch_editor, run_project, list_projects, capture_scene_screenshot) with no mixed conventions, vague single-word verbs, or stylistic deviations. Compound forms like update_project_uids and get_godot_version remain within the same predictable pattern.
At 22 tools, this sits in the heavy range, and several are ultra-specific (export_mesh_library, load_sprite, update_project_uids) that feel like edge-case additions rather than core workflow tools. However, the server does span project management, scene editing, debugging, and screenshot capture, so most tools have a legitimate place.
Project discovery, launching, running, debugging, and screenshot verification are well covered, but scene editing has dead ends: create_scene/add_node/save_scene exist with no remove_node or delete_scene counterpart. There is also no script creation or editing despite get_node_insights providing deep GDScript analysis, leaving the authoring surface one-directional.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Develop, manage, and debug Railway projects, services, and deployments from within agents.
Production-readiness for your AI coding agents.
Git-backed platform for skills, tools, and context for AI agents
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables 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.1824811MIT
- AlicenseBqualityNot gradedmaintenanceEnables 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.142481-
- AlicenseAqualityDmaintenanceEnables AI agents to create, edit, and run Godot 4.5+ games by providing tools for project scaffolding, scene manipulation, and engine interaction. It supports full game development workflows including node editing, script attachment, and project execution with debugging capabilities.245MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with the Godot game engine, including launching the editor, running projects, capturing debug output, and managing scenes.841MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gurolayanlar/godot-mcp-flash'
If you have feedback or need assistance with the MCP directory API, please join our Discord server