Godot MCP
Adds Android export validator support for Godot projects, enabling validation and configuration of Android-specific export settings and builds.
Provides tools for interacting with the Godot game engine, enabling AI agents to launch the editor, run projects, capture debug output, control execution, manage scenes, analyze project structure, and handle UID management for Godot 4.4+.
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 MCPlaunch the editor for my project at /home/user/godot-games/platformer"
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
Forked from Coding-Solo/godot-mcp at commit
1209744(MIT). This fork is maintained independently by @jamesdowzard and adds Android export validator support + other AI-friendly tooling. Upstream fork relationship is severed at the git level; copyright/attribution preserved per MIT.
((((((( (((((((
((((((((((( (((((((((((
((((((((((((( (((((((((((((
(((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((
((((( ((((((((((((((((((((((((((((((((((((((((( (((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((@@@@@@@(((((((((((((((((((((((((((@@@@@@@(((((((((((
(((((((((@@@@,,,,,@@@(((((((((((((((((((((@@@,,,,,@@@@(((((((((
((((((((@@@,,,,,,,,,@@(((((((@@@@@(((((((@@,,,,,,,,,@@@((((((((
((((((((@@@,,,,,,,,,@@(((((((@@@@@(((((((@@,,,,,,,,,@@@((((((((
(((((((((@@@,,,,,,,@@((((((((@@@@@((((((((@@,,,,,,,@@@(((((((((
((((((((((((@@@@@@(((((((((((@@@@@(((((((((((@@@@@@((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
@@@@@@@@@@@@@((((((((((((@@@@@@@@@@@@@((((((((((((@@@@@@@@@@@@@
((((((((( @@@(((((((((((@@(((((((((((@@(((((((((((@@@ (((((((((
(((((((((( @@((((((((((@@@(((((((((((@@@((((((((((@@ ((((((((((
(((((((((((@@@@@@@@@@@@@@(((((((((((@@@@@@@@@@@@@@(((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((
/$$ /$$ /$$$$$$ /$$$$$$$
| $$$ /$$$ /$$__ $$| $$__ $$
| $$$$ /$$$$| $$ \__/| $$ \ $$
| $$ $$/$$ $$| $$ | $$$$$$$/
| $$ $$$| $$| $$ | $$____/
| $$\ $ | $$| $$ $$| $$
| $$ \/ | $$| $$$$$$/| $$
|__/ |__/ \______/ |__/A Model Context Protocol (MCP) server for interacting with the Godot game engine.
Introduction
Godot MCP enables AI agents to launch the Godot editor, run projects, capture debug output, and control project execution. This direct feedback loop helps agents understand what works and what doesn't in real Godot projects, leading to better code generation and debugging assistance.
Related MCP server: Gear
Features
Launch Godot Editor: Open the Godot editor for a specific project
Run Godot Projects: Execute Godot projects in debug mode
Capture Debug Output: Retrieve console output and error messages
Control Execution: Start and stop Godot projects programmatically
Get Godot Version: Retrieve the installed Godot version
List Godot Projects: Find Godot projects in a specified directory
Project Analysis: Get detailed information about project structure
Scene Management:
Create new scenes with specified root node types
Add nodes to existing scenes with customizable properties
Load sprites and textures into Sprite2D nodes
Export 3D scenes as MeshLibrary resources for GridMap
Save scenes with options for creating variants
UID Management (for Godot 4.4+):
Get UID for specific files
Update UID references by resaving resources
Requirements
Godot Engine installed on your system
Node.js (>=18.0.0) and npm
An AI agent that supports MCP
Quick Start
Claude Code
claude mcp add godot -- npx @coding-solo/godot-mcpThat's it. Restart Claude Code and your Godot MCP tools are available.
With environment variables:
claude mcp add godot -e GODOT_PATH=/path/to/godot -e DEBUG=true -- npx @coding-solo/godot-mcpAdd to your Cline MCP settings file (~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["@coding-solo/godot-mcp"],
"env": {
"DEBUG": "true"
},
"disabled": false,
"autoApprove": [
"launch_editor",
"run_project",
"get_debug_output",
"stop_project",
"get_godot_version",
"list_projects",
"get_project_info",
"create_scene",
"add_node",
"load_sprite",
"export_mesh_library",
"save_scene",
"get_uid",
"update_project_uids"
]
}
}
}Using the Cursor UI:
Go to Cursor Settings > Features > MCP
Click on the + Add New MCP Server button
Fill out the form:
Name:
godotType:
commandCommand:
npx @coding-solo/godot-mcp
Click "Add"
You may need to press the refresh button in the top right corner of the MCP server card to populate the tool list
Using Project-Specific Configuration:
Create a file at .cursor/mcp.json in your project directory:
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["@coding-solo/godot-mcp"],
"env": {
"DEBUG": "true"
}
}
}
}For any MCP-compatible client, use this configuration:
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["@coding-solo/godot-mcp"],
"env": {
"GODOT_PATH": "/path/to/godot",
"DEBUG": "true"
}
}
}
}Environment Variables
Variable | Description |
| Path to the Godot executable (overrides automatic detection) |
| Set to |
git clone https://github.com/Coding-Solo/godot-mcp.git
cd godot-mcp
npm install
npm run buildThen point your MCP client to build/index.js instead of using npx.
Architecture
The Godot MCP server uses a bundled GDScript approach for complex operations:
Direct Commands: Simple operations like launching the editor or getting project info use Godot's built-in CLI commands directly.
Bundled Operations Script: Complex operations like creating scenes or adding nodes use a single, comprehensive GDScript file (
godot_operations.gd) that handles all operations.
The bundled script accepts operation type and parameters as JSON, allowing for flexible and dynamic operation execution without generating temporary files for each operation.
Troubleshooting
Godot Not Found: Set the
GODOT_PATHenvironment variable to your Godot executable pathConnection Issues: Ensure the server is running and restart your AI assistant
Invalid Project Path: Ensure the path points to a directory containing a
project.godotfileBuild Issues: Make sure all dependencies are installed by running
npm install
Ensure the MCP server shows up and is enabled in Cursor settings (Settings > MCP)
MCP tools can only be run using the Agent chat profile (Cursor Pro or Business subscription)
Use "Yolo Mode" to automatically run MCP tool requests
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
14 toolsadd_nodeC
Add a node to an existing scene
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| parentNodePath | No | Path to the parent node (e.g., "root" or "root/Player") | |
| nodeType | Yes | Type of node to add (e.g., Sprite2D, CollisionShape2D) | |
| nodeName | Yes | Name for the new node | |
| properties | No | Optional properties to set on the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation without behavioral details. It doesn't disclose permissions needed, whether the addition is reversible, error conditions, or how it interacts with the Godot editor. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after adding the node, potential side effects, or error handling. Given the complexity, more context is needed for safe and effective use.
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 all 6 parameters. The description adds no additional meaning beyond implying the tool operates on scenes, which is already clear from parameter names. Baseline 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('a node to an existing scene'), which is specific and understandable. However, it doesn't differentiate from sibling tools like 'create_scene' or 'save_scene' beyond the basic operation, missing explicit sibling 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 provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites like needing an existing scene or how it differs from 'create_scene'. The description lacks context for tool selection.
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 |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scenePath | Yes | Path where the scene file will be saved (relative to project) | |
| 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?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the tool creates a file but doesn't disclose whether it overwrites existing files, requires specific permissions, handles errors, or returns confirmation. For a file-creation tool, this lack of detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool creates files (a mutation with potential side-effects) and has no annotations or output schema, the description is incomplete. It doesn't explain what the tool returns, how errors are handled, or the impact on the filesystem. For a 3-parameter tool with no structured safety hints, more context is needed.
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 all three parameters. The description adds no additional meaning beyond implying 'scenePath' is for saving and 'rootNodeType' defines the scene structure. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new Godot scene file'), making the purpose immediately understandable. It distinguishes from siblings like 'save_scene' (which modifies existing scenes) and 'add_node' (which adds nodes to scenes). However, it doesn't specify what a 'scene file' contains or its format, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'save_scene' or 'add_node'. It doesn't mention prerequisites (e.g., needing a valid Godot project) or typical workflows (e.g., creating scenes before adding nodes). The context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_mesh_libraryC
Export a scene as a MeshLibrary resource
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scenePath | Yes | Path to the scene file (.tscn) to export | |
| outputPath | Yes | Path where the mesh library (.res) will be saved | |
| 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 full burden but lacks behavioral details. It doesn't disclose if this is a read-only or destructive operation, potential side effects (e.g., file system changes), error conditions, or output format beyond saving a .res file, making it insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the core action and resource, making it easy to parse quickly, which is ideal for conciseness in tool descriptions.
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 complexity of exporting scenes (likely involving file I/O and Godot-specific processing), no annotations, and no output schema, the description is incomplete. It doesn't explain what a MeshLibrary resource is, how it's used, or what happens on success/failure, leaving gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond implying the tool exports scenes to mesh libraries, which is already inferred from the tool name and schema. This meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export') and the resource ('MeshLibrary resource'), specifying it operates on a scene. However, it doesn't distinguish this from sibling tools like 'save_scene' or 'create_scene', which might also involve scene processing, leaving some ambiguity about its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid Godot project or scene, or compare it to siblings like 'save_scene' for different export purposes, leaving the agent to infer usage context.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe key behaviors such as whether the output is real-time or cached, if it requires specific permissions, or what format the debug output is returned in. This leaves significant gaps for a tool that likely involves system-level data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's function with zero wasted words. It's front-loaded and efficiently communicates the essential information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns complex debug data. It doesn't explain what 'debug output and errors' entails (e.g., logs, system status, error codes) or how the information is structured, which is crucial for an AI agent to use it effectively in a development or troubleshooting context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately focuses on the tool's purpose without redundant parameter information, earning a high score for not overcomplicating a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('debug output and errors'), making it immediately understandable. However, it doesn't explicitly differentiate from potential sibling tools like 'get_project_info' or 'get_godot_version', which might also provide diagnostic information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_project_info' that might overlap in diagnostic contexts, there's no explicit mention of when this tool is appropriate or what distinguishes it, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_godot_versionB
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—such as whether it requires specific permissions, returns a simple string or structured data, or has any side effects. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, 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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return value looks like (e.g., version string format) or any behavioral traits, which is inadequate for a tool that might be used in automated workflows. The simplicity of the tool mitigates this somewhat, but more context is needed.
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 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter details, so it meets the baseline for a parameterless tool. No compensation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('installed Godot version'), making the purpose immediately understandable. It doesn't specifically differentiate from siblings like 'get_project_info' or 'get_debug_output', but the scope is clear enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_project_info' or 'get_debug_output'. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'retrieve metadata' but doesn't specify what metadata is returned, whether it's read-only, if there are rate limits, or any error conditions. This leaves significant gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what metadata is retrieved, the return format, or any behavioral traits. For a tool with no structured support, this leaves the agent with insufficient information to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents the single parameter 'projectPath' as a path to the Godot project directory. The description doesn't add any additional meaning or context beyond what the schema provides, resulting in the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'metadata about a Godot project', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'list_projects' or 'get_godot_version', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'list_projects' or 'get_godot_version'. It lacks context about prerequisites, timing, or exclusions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uidC
Get the UID for a specific file in a Godot project (for Godot 4.4+)
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| filePath | Yes | Path to the file (relative to project) for which to get the UID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the basic function. It doesn't disclose behavioral traits such as whether this is a read-only operation, potential errors (e.g., if file doesn't exist), performance implications, or output format, leaving gaps for an AI agent.
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 zero waste, front-loading the core purpose. It's appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what a UID is used for, what the return value looks like, or any error conditions, which are crucial for a tool with two required parameters and potential complexity in file handling.
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 both parameters. The description adds no additional meaning beyond implying the tool operates within a Godot project context, meeting the baseline for high schema coverage without extra param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('UID for a specific file in a Godot project'), with specificity about the Godot version (4.4+). It doesn't explicitly differentiate from siblings like 'get_project_info' or 'update_project_uids', but the focus on a file's UID is distinct enough for clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention if this is for debugging, asset management, or other contexts, nor does it reference sibling tools like 'get_project_info' that might provide related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_editorC
Launch Godot editor for a specific project
| 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. It states what the tool does but lacks critical details: whether this launches the editor in a new process, if it requires specific permissions, what happens if the project path is invalid, or if there are any side effects like locking files. For a tool that likely involves system-level operations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of launching an external editor (which likely involves system interactions and potential errors), the description is insufficient. With no annotations, no output schema, and minimal behavioral details, it fails to provide enough context for safe and effective use, especially compared to siblings that might have overlapping or related functions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'projectPath' clearly documented as 'Path to the Godot project directory'. The description adds no additional semantic context beyond what the schema provides, such as format examples or constraints, but the schema does the heavy lifting, justifying a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Launch') and resource ('Godot editor for a specific project'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'run_project' or 'list_projects', but the action is specific enough to be distinguished by context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_project' (which might execute a project without launching the editor) or 'list_projects' (which might show available projects). There's no mention of prerequisites, such as needing the Godot editor installed or the project being valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsC
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on behavior: it doesn't specify the output format (e.g., list of paths, project names), error handling (e.g., for invalid directories), or performance considerations (e.g., impact of recursive search). This is a significant gap for a tool with no structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential 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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a list of project paths or metadata), how results are structured, or any behavioral traits like error conditions. For a tool with 2 parameters and no structured output, more context is needed to guide effective use.
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 clear descriptions for both parameters in the input schema. The description adds no additional parameter semantics beyond what's already documented (e.g., it doesn't explain what defines a Godot project or provide examples). Baseline 3 is appropriate as the schema adequately covers parameter meanings.
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 ('List') and target resource ('Godot projects in a directory'), making the purpose immediately understandable. It distinguishes itself from siblings like 'get_project_info' or 'run_project' by focusing on discovery rather than interaction with specific projects. However, it doesn't explicitly differentiate from potential similar tools (though none exist in the sibling list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a valid directory path), exclusions (e.g., what constitutes a Godot project), or comparisons to siblings like 'get_project_info' for detailed information. Usage is implied only by the tool name and description.
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 |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| nodePath | Yes | Path to the Sprite2D node (e.g., "root/Player/Sprite2D") | |
| texturePath | Yes | Path to the texture file (relative to project) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. 'Load' implies a read/write operation that modifies scene state, but it doesn't disclose whether this requires specific permissions, affects other nodes, has side effects (e.g., scene unsaved changes), or how errors are handled. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero wasted words—it directly states the tool's core function. Every word ('Load a sprite into a Sprite2D node') earns its place by specifying the action, resource, and target, making it highly efficient 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?
Given the tool's complexity (4 required parameters, mutation operation) and lack of annotations/output schema, the description is incomplete. It doesn't explain what 'load' does operationally, success/failure conditions, or how it integrates with other tools (e.g., 'save_scene'). For a scene-modifying tool in a Godot context, more context on behavior and workflow is needed.
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 all four parameters (projectPath, scenePath, nodePath, texturePath). The description adds no parameter-specific information beyond implying these paths are needed for loading. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't enhance understanding of parameter relationships or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load') and resource ('a sprite into a Sprite2D node'), making the purpose immediately understandable. It distinguishes from siblings like 'add_node' or 'create_scene' by focusing on loading textures into existing nodes rather than creating new elements. However, it doesn't specify what 'load' entails operationally (e.g., file loading vs. in-memory assignment).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an existing Sprite2D node), exclusions, or related tools like 'save_scene' for persistence. Without this context, an agent might misuse it when other tools like 'add_node' or 'create_scene' are more appropriate.
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 |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scene | No | Optional: Specific scene to run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'capture output', which hints at a read operation, but doesn't specify what kind of output (e.g., logs, errors, performance data), whether it's a blocking or non-blocking call, or any side effects like resource consumption or project state changes. This leaves significant gaps for a tool that likely involves execution and monitoring.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single, direct sentence that front-loads the core action ('run the Godot project') and adds a key detail ('capture output'). There is no wasted verbiage, making it efficient 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?
Given the complexity of running a project (which likely involves execution, monitoring, and output handling), the description is incomplete. With no annotations and no output schema, it fails to explain critical aspects like what the captured output includes, error handling, or how the tool interacts with sibling tools (e.g., 'stop_project'). This makes it inadequate for safe and effective use by an AI 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?
The schema description coverage is 100%, so the schema already documents both parameters ('projectPath' and 'scene') with clear descriptions. The tool description doesn't add any additional meaning or context about the parameters beyond what's in the schema, such as example paths or scene formats, but this is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run') and target ('Godot project'), with the additional detail of 'capture output' specifying what the tool does beyond just execution. However, it doesn't explicitly differentiate from sibling tools like 'launch_editor' or 'stop_project', which would require more specific comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify when to use 'run_project' versus 'launch_editor' or how it relates to 'stop_project'. The description lacks context about prerequisites or typical use cases.
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 |
|---|---|---|---|
| projectPath | Yes | Path to the Godot project directory | |
| scenePath | Yes | Path to the scene file (relative to project) | |
| newPath | No | Optional: New path to save the scene to (for creating variants) |
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 implies a write operation ('save changes') but lacks details on permissions, whether changes are destructive or reversible, error handling, or response format. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized, making it easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects, success indicators, or how it differs from sibling tools, leaving significant gaps 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 schema fully documents the three parameters (projectPath, scenePath, newPath). The description adds no additional meaning beyond implying 'newPath' is for creating variants, which is already hinted in the schema. Baseline 3 is appropriate as 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 'Save changes to a scene file' clearly states the verb ('save changes') and resource ('scene file'), making the purpose unambiguous. However, it doesn't differentiate from potential sibling tools like 'create_scene' or 'export_mesh_library', which might involve similar file operations, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., if the scene must be loaded first), exclusions (e.g., not for creating new scenes), or compare to siblings like 'create_scene' for initial saves, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_projectB
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?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Stop') but doesn't explain what 'stop' entails (e.g., graceful shutdown, force termination, state preservation), whether it requires specific conditions, or what happens after stopping. This leaves significant behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain the stopping mechanism, potential side effects, success/failure conditions, or what the agent should expect after invocation. Given the complexity of stopping a running project, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's purpose instead, which meets expectations for a parameterless tool.
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 ('Stop') and the target ('the currently running Godot project'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'run_project' or 'launch_editor' beyond the obvious opposite action, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'currently running' project, suggesting this tool should be used when a project is active. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'run_project' or what happens if no project is running, leaving some gaps in usage clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_project_uidsC
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?
No annotations are provided, so the description carries the full burden. It mentions 'by resaving resources', hinting at mutation behavior, but doesn't disclose critical details like whether this is destructive, requires specific permissions, has side effects, or handles errors. For a mutation tool with zero annotation coverage, this is a significant gap in behavioral transparency.
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 zero waste. It's front-loaded with the core action and includes relevant version context. Every word earns its place, making it appropriately sized and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, return values, error handling, and usage context. For a tool that modifies project files, this minimal description is inadequate to ensure safe and correct usage by an AI 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 schema already documents the single parameter 'projectPath'. The description adds no additional meaning or context about the parameter beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update UID references') and resource ('in a Godot project'), specifying the action and target. It distinguishes from siblings by mentioning the specific Godot version (4.4+), though it doesn't explicitly differentiate from tools like 'get_uid' or 'save_scene'. The purpose is specific but could be more distinct regarding sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance, only implying usage for Godot 4.4+ projects needing UID updates. It doesn't specify when to use this tool versus alternatives like 'save_scene' or 'get_uid', nor does it mention prerequisites or exclusions. No explicit when/when-not instructions are given, leaving usage context vague.
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.
14 tool updates
v0.2.0- First observed
add_node - First observed
create_scene - First observed
export_mesh_library - First observed
get_debug_output - First observed
get_godot_version - First observed
get_project_info - First observed
get_uid - First observed
launch_editor - First observed
list_projects - First observed
load_sprite - First observed
run_project - First observed
save_scene - First observed
stop_project - First observed
update_project_uids
TDQS
Most tools have distinct purposes targeting different aspects of Godot project management, scene manipulation, and debugging. However, there is some potential overlap between 'create_scene' and 'add_node' as both involve scene creation/modification, and 'get_debug_output' and 'run_project' both relate to runtime output, though their specific focuses differ enough to avoid major confusion.
The naming follows a consistent verb_noun pattern throughout (e.g., 'add_node', 'create_scene', 'get_debug_output'), which is clear and predictable. There are minor deviations like 'export_mesh_library' using a compound noun and 'update_project_uids' being slightly longer, but overall the convention is well-maintained and readable.
With 14 tools, the count is well-scoped for a Godot MCP server, covering project management, scene editing, debugging, and runtime operations. Each tool appears to earn its place by addressing specific needs in the Godot development workflow, without being overly sparse or bloated.
The tool set provides comprehensive coverage for core Godot operations, including project listing, scene CRUD, debugging, and runtime management. Minor gaps exist, such as the lack of tools for editing node properties directly or handling more advanced resource types, but agents can likely work around these with the available tools for most common tasks.
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that gives AI assistants direct control over Godot 4 game development projects. It enables launching the editor, running projects, creating and editing scenes, writing GDScript, and inspecting assets through natural language commands.44244MIT
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to directly run, inspect, modify, and debug Godot game development projects through 110+ tools covering scenes, scripts, resources, runtime debugging, and asset management.33212MIT
- AlicenseAqualityDmaintenanceAn enhanced MCP server for interacting with the Godot game engine, enabling AI assistants to launch the editor, run projects, manage scenes and nodes, and handle scripts.16MIT
- AlicenseAqualityBmaintenanceAn MCP server that lets AI coding agents work on Godot 4 projects, including reading and editing scenes, writing and validating GDScript, running the game, and capturing screenshots.2515MIT
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/jamesdowzard/godot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server