
Godot Mcp
Connects Claude or Cursor directly to the Godot 4.x editor via WebSocket, exposing 42 tools across scene manipulation, script editing, project settings, and runtime control. You can create nodes, attach scripts, modify properties, run scenes, and query the ClassDB without leaving your AI chat. Ships with a browser based project visualizer that maps script relationships and lets you edit code with live sync back to Godot. Installation is a plugin drop in plus an npx command in your MCP config. Best when you're prototyping game mechanics, refactoring GDScript, or need AI to read and modify scene trees while you work. No remote connections, one instance at a time, changes save directly.
- GitHub stars
- 451
- tools
- 65
- transport
- STDIO
- last updated
- Oct 17, 2026
Install
From registry metadata$ npx add-mcp godot-mcp-server --name godot-mcpRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add godot-mcp -- npx -y godot-mcp-serverRun in your terminal. Replace YOUR_* placeholders with real values; add --scope user to install for every project.
Tools
Verified live · 65 toolsVerified live against the running server on Jun 11, 2026.
get_godot_statusCheck if Godot editor is connected to the MCP server.
Check if Godot editor is connected to the MCP server.
No parameters. Call it with no arguments.
get_guideRead a short markdown guide from the server. Same content as the MCP resources/read protocol, exposed as a tool so it works in MCP clients that do not support resources (e.g. Claude Desktop, Cursor chat). Call with no args to list available guides: testing-loop, scene-editing,...1 params
Read a short markdown guide from the server. Same content as the MCP resources/read protocol, exposed as a tool so it works in MCP clients that do not support resources (e.g. Claude Desktop, Cursor chat). Call with no args to list available guides: testing-loop, scene-editing,...
slugstringlist_dirList files and folders under a Godot project path (e.g., res://). Returns arrays of files and folders in the specified directory.1 params
List files and folders under a Godot project path (e.g., res://). Returns arrays of files and folders in the specified directory.
root*stringread_fileRead a text file from the Godot project, optionally a specific line range. Useful for reading GDScript files, scene files, or any text-based content.3 params
Read a text file from the Godot project, optionally a specific line range. Useful for reading GDScript files, scene files, or any text-based content.
end_linenumberpath*stringstart_linenumbersearch_projectSearch the Godot project for a substring and return file hits with line numbers. Useful for finding usages of functions, variables, or any text pattern.2 params
Search the Godot project for a substring and return file hits with line numbers. Useful for finding usages of functions, variables, or any text pattern.
globstringquery*stringcreate_scriptCreate a NEW GDScript file (.gd) that does not exist yet. Use this for creating new scripts, NOT for editing existing files (use edit_script for edits). Use classdb_query to verify unfamiliar Godot class methods. After creating a script, consider using run_scene to test and ge...2 params
Create a NEW GDScript file (.gd) that does not exist yet. Use this for creating new scripts, NOT for editing existing files (use edit_script for edits). Use classdb_query to verify unfamiliar Godot class methods. After creating a script, consider using run_scene to test and ge...
content*stringpath*stringcreate_sceneCreate a new Godot scene (.tscn) file with nodes. Use this to create player scenes, UI screens, game objects, etc.5 params
Create a new Godot scene (.tscn) file with nodes. Use this to create player scenes, UI screens, game objects, etc.
attach_scriptstringnodesarrayroot_node_namestringroot_node_type*stringscene_path*stringread_sceneRead and parse a scene file to get its full node structure and properties. Use this to understand a scene before editing.2 params
Read and parse a scene file to get its full node structure and properties. Use this to understand a scene before editing.
include_propertiesbooleanscene_path*stringadd_nodeAdd a node to an existing scene file. Supports an optional script attachment, group memberships, and a tree of children created in the same call (1 tool call instead of N). Children format: {name|node_name, type|node_type, properties?, script?, groups?, children?}. Both key st...8 params
Add a node to an existing scene file. Supports an optional script attachment, group memberships, and a tree of children created in the same call (1 tool call instead of N). Children format: {name|node_name, type|node_type, properties?, script?, groups?, children?}. Both key st...
childrenarraygroupsarraynode_name*stringnode_type*stringparent_pathstringpropertiesobjectscene_path*stringscriptstringremove_nodeRemove a node from an existing scene file.2 params
Remove a node from an existing scene file.
node_path*stringscene_path*stringmodify_node_propertyModify a single property on a node in a .tscn scene file. For multiple properties at once use set_node_properties. ALWAYS use a tool to modify .tscn files — NEVER edit them as text. To attach or change a script, use attach_script (NOT modify_node_property with property="script...4 params
Modify a single property on a node in a .tscn scene file. For multiple properties at once use set_node_properties. ALWAYS use a tool to modify .tscn files — NEVER edit them as text. To attach or change a script, use attach_script (NOT modify_node_property with property="script...
node_pathstringproperty_name*stringscene_path*stringvalue*valuerename_nodeRename a node in a scene.3 params
Rename a node in a scene.
new_name*stringnode_path*stringscene_path*stringmove_nodeMove a node to a different parent in a scene and optionally control its position among siblings.4 params
Move a node to a different parent in a scene and optionally control its position among siblings.
new_parent_path*stringnode_path*stringscene_path*stringsibling_indexnumberattach_scriptAttach or change a script on a node in a scene.3 params
Attach or change a script on a node in a scene.
node_pathstringscene_path*stringscript_path*stringdetach_scriptRemove a script from a node in a scene.2 params
Remove a script from a node in a scene.
node_path*stringscene_path*stringset_collision_shapeCreate and assign a collision shape resource to a CollisionShape2D or CollisionShape3D node. Supports: CircleShape2D, RectangleShape2D, CapsuleShape2D, SphereShape3D, BoxShape3D, etc.4 params
Create and assign a collision shape resource to a CollisionShape2D or CollisionShape3D node. Supports: CircleShape2D, RectangleShape2D, CapsuleShape2D, SphereShape3D, BoxShape3D, etc.
node_pathstringscene_path*stringshape_paramsobjectshape_type*stringset_sprite_textureAssign a texture resource to a Sprite2D / Sprite3D / TextureRect node in a .tscn scene file. Modes: • FromPath — load any texture file from disk (png/jpg/webp/svg/.tres) via load(). Returns whatever Texture2D the importer produced (usually CompressedTexture2D). Most common aft...4 params
Assign a texture resource to a Sprite2D / Sprite3D / TextureRect node in a .tscn scene file. Modes: • FromPath — load any texture file from disk (png/jpg/webp/svg/.tres) via load(). Returns whatever Texture2D the importer produced (usually CompressedTexture2D). Most common aft...
node_pathstringscene_path*stringtexture_paramsobjecttexture_type*stringFromPath · ImageTexture · NewImageTexture · PlaceholderTexture2D · GradientTexture2D · NoiseTexture2Dinstance_sceneAdd an instance of another scene (.tscn) as a child node. This is how you compose scenes from reusable parts (like prefabs). The instance maintains a live reference to the source scene. Use this instead of add_node when you want to reuse an existing scene.5 params
Add an instance of another scene (.tscn) as a child node. This is how you compose scenes from reusable parts (like prefabs). The instance maintains a live reference to the source scene. Use this instead of add_node when you want to reuse an existing scene.
instance_path*stringnode_namestringparent_pathstringpropertiesobjectscene_path*stringset_meshCreate and assign a mesh resource to a MeshInstance3D node. REQUIRED to make 3D geometry visible. Primitive types: BoxMesh, SphereMesh, CylinderMesh, CapsuleMesh, PlaneMesh, PrismMesh, TorusMesh, QuadMesh, TextMesh. Or load from file.4 params
Create and assign a mesh resource to a MeshInstance3D node. REQUIRED to make 3D geometry visible. Primitive types: BoxMesh, SphereMesh, CylinderMesh, CapsuleMesh, PlaneMesh, PrismMesh, TorusMesh, QuadMesh, TextMesh. Or load from file.
mesh_paramsobjectmesh_type*stringnode_pathstringscene_path*stringset_materialCreate and assign a material to a MeshInstance3D, CSG, or GeometryInstance3D node. Supports StandardMaterial3D or loading from file.5 params
Create and assign a material to a MeshInstance3D, CSG, or GeometryInstance3D node. Supports StandardMaterial3D or loading from file.
material_paramsobjectmaterial_type*stringnode_pathstringscene_path*stringsurface_indexnumberget_node_spatial_infoQuery computed 3D spatial data for a Node3D in a scene file. Returns local/global positions, scales, rotation quaternions, and subtree bounding boxes (AABB) when available. Use this before making precise 3D placement decisions.3 params
Query computed 3D spatial data for a Node3D in a scene file. Returns local/global positions, scales, rotation quaternions, and subtree bounding boxes (AABB) when available. Use this before making precise 3D placement decisions.
include_boundsbooleannode_pathstringscene_path*stringmeasure_node_distanceMeasure the world-space distance between two Node3D nodes in a scene file. Returns both the full 3D delta and the horizontal XZ distance.3 params
Measure the world-space distance between two Node3D nodes in a scene file. Returns both the full 3D delta and the horizontal XZ distance.
from_node_path*stringscene_path*stringto_node_path*stringsnap_node_to_gridSnap a Node3D position to a grid in local or global space. Useful for modular level building and keeping 3D scenes aligned.5 params
Snap a Node3D position to a grid in local or global space. Useful for modular level building and keeping 3D scenes aligned.
axesarraygrid_size*valuenode_pathstringscene_path*stringspacestringset_node_propertiesSet MULTIPLE properties on a node in a single tool call. Non-atomic: each property is applied independently; the response separates "applied" from "failed" so partial success surfaces clearly. Saves the scene once at the end. Resource-typed properties must use set_resource_pro...3 params
Set MULTIPLE properties on a node in a single tool call. Non-atomic: each property is applied independently; the response separates "applied" from "failed" so partial success surfaces clearly. Saves the scene once at the end. Resource-typed properties must use set_resource_pro...
node_pathstringproperties*objectscene_path*stringset_node_groupsSet, add, or remove a node's group memberships in a .tscn scene file. Groups persist to disk so the running game can call get_tree().get_nodes_in_group(name).4 params
Set, add, or remove a node's group memberships in a .tscn scene file. Groups persist to disk so the running game can call get_tree().get_nodes_in_group(name).
groups*arraymodestringreplace · add · removenode_pathstringscene_path*stringget_node_groupsRead the list of groups a node belongs to in a .tscn scene file.2 params
Read the list of groups a node belongs to in a .tscn scene file.
node_pathstringscene_path*stringfind_nodes_in_groupFind every node in a .tscn that belongs to a given group. Returns paths, names, and types. Useful for verifying that level.gd will actually pick up the right nodes via get_tree().get_nodes_in_group().2 params
Find every node in a .tscn that belongs to a given group. Returns paths, names, and types. Useful for verifying that level.gd will actually pick up the right nodes via get_tree().get_nodes_in_group().
group*stringscene_path*stringset_resource_propertyModify a property on a Resource that is currently held by a node (or by another resource attached to that node). Use this to tweak shape radii, material colors, gradient stops, etc., WITHOUT recreating the resource. resource_path walks from the node down to the resource using...5 params
Modify a property on a Resource that is currently held by a node (or by another resource attached to that node). Use this to tweak shape radii, material colors, gradient stops, etc., WITHOUT recreating the resource. resource_path walks from the node down to the resource using...
node_pathstringproperty_name*stringresource_path*stringscene_path*stringvalue*valuesave_resource_to_fileSave a Resource currently held by a node (or sub-resource) to a standalone .tres file so it can be referenced by other scenes / shared / committed. The node's property is then re-pointed to the loaded-from-disk version, so future set_resource_property calls write through to th...4 params
Save a Resource currently held by a node (or sub-resource) to a standalone .tres file so it can be referenced by other scenes / shared / committed. The node's property is then re-pointed to the loaded-from-disk version, so future set_resource_property calls write through to th...
node_pathstringresource_path*stringsave_to*stringscene_path*stringget_resource_infoInspect ANY Godot Resource. Two modes: • path mode: pass {path: "res://foo.png"} for a resource on disk (.tres / .res / image / .glb / .ogg / .tscn / etc.) • node mode: pass {scene_path, node_path, resource_property} to inspect a resource attached to a node WITHOUT having to s...4 params
Inspect ANY Godot Resource. Two modes: • path mode: pass {path: "res://foo.png"} for a resource on disk (.tres / .res / image / .glb / .ogg / .tscn / etc.) • node mode: pass {scene_path, node_path, resource_property} to inspect a resource attached to a node WITHOUT having to s...
node_pathstringpathstringresource_propertystringscene_pathstringlist_signal_connectionsList signal connections involving a node. source="scene_file" (default) reads connections persisted to a .tscn. source="runtime" requires the game to be running and reads live connections from the SceneTree. Use the runtime mode to verify dynamically-connected signals (those c...5 params
List signal connections involving a node. source="scene_file" (default) reads connections persisted to a .tscn. source="runtime" requires the game to be running and reads live connections from the SceneTree. Use the runtime mode to verify dynamically-connected signals (those c...
include_incomingbooleaninclude_outgoingbooleannode_path*stringscene_pathstringsourcestringscene_file · runtimeconnect_signalConnect a signal between two nodes inside a .tscn scene file. The target script must define the method (will refuse otherwise). Equivalent to clicking the "+" in the editor's Node > Signals panel and persists the connection to the .tscn. NOTE: scripts must be attached via atta...6 params
Connect a signal between two nodes inside a .tscn scene file. The target script must define the method (will refuse otherwise). Equivalent to clicking the "+" in the editor's Node > Signals panel and persists the connection to the .tscn. NOTE: scripts must be attached via atta...
flagsnumberfrom_node*stringmethod*stringscene_path*stringsignal*stringto_node*stringdisconnect_signalRemove a signal connection from a .tscn scene file. No-op if the connection doesn't exist.5 params
Remove a signal connection from a .tscn scene file. No-op if the connection doesn't exist.
from_node*stringmethod*stringscene_path*stringsignal*stringto_node*stringedit_scriptApply a SMALL, SURGICAL code edit (1-10 lines) to GDScript files. Auto-applies changes. For large changes, call multiple times. ONLY for .gd files - NEVER for .tscn scene files. Use classdb_query to verify unfamiliar Godot class methods. After making changes, consider using ru...1 params
Apply a SMALL, SURGICAL code edit (1-10 lines) to GDScript files. Auto-applies changes. For large changes, call multiple times. ONLY for .gd files - NEVER for .tscn scene files. Use classdb_query to verify unfamiliar Godot class methods. After making changes, consider using ru...
edit*objectvalidate_scriptValidate a GDScript file for syntax errors using Godot's built-in parser. Call after creating or modifying scripts to ensure they are error-free.1 params
Validate a GDScript file for syntax errors using Godot's built-in parser. Call after creating or modifying scripts to ensure they are error-free.
path*stringcreate_folderCreate a directory (with parent directories if needed).1 params
Create a directory (with parent directories if needed).
path*stringdelete_filePermanently delete a file from the project. REQUIRES confirm=true as an explicit safety gate — omitting confirm returns an error. Creates a .bak backup alongside the original by default (disable with create_backup=false). REFUSES if the file is currently open in the editor (an...4 params
Permanently delete a file from the project. REQUIRES confirm=true as an explicit safety gate — omitting confirm returns an error. Creates a .bak backup alongside the original by default (disable with create_backup=false). REFUSES if the file is currently open in the editor (an...
confirm*booleancreate_backupbooleanforcebooleanpath*stringrename_fileRename or move a file, optionally updating references in other files.3 params
Rename or move a file, optionally updating references in other files.
new_path*stringold_path*stringupdate_referencesbooleanlist_scriptsList all GDScript files in the project with basic metadata.
List all GDScript files in the project with basic metadata.
No parameters. Call it with no arguments.
get_project_settingsConcise project settings summary: main_scene, window size/stretch, physics tick rate, and render basics.2 params
Concise project settings summary: main_scene, window size/stretch, physics tick rate, and render basics.
include_physicsbooleaninclude_renderbooleanget_input_mapReturn the full InputMap: built-in actions (ui_*, spatial_editor/*) plus all project-defined actions from project.godot. Each action maps to an object with "events" (array of key/mouse/gamepad bindings) and optionally "deadzone". Use this before configure_input_map to see curr...1 params
Return the full InputMap: built-in actions (ui_*, spatial_editor/*) plus all project-defined actions from project.godot. Each action maps to an object with "events" (array of key/mouse/gamepad bindings) and optionally "deadzone". Use this before configure_input_map to see curr...
include_deadzonesbooleanget_collision_layersReturn named 2D/3D physics collision layers from ProjectSettings.
Return named 2D/3D physics collision layers from ProjectSettings.
No parameters. Call it with no arguments.
get_node_propertiesGet available properties for a Godot node type. Use this to discover what properties exist on a node type (e.g., anchors_preset for Control, position for Node2D).1 params
Get available properties for a Godot node type. Use this to discover what properties exist on a node type (e.g., anchors_preset for Control, position for Node2D).
node_type*stringget_console_logReturn the latest lines from the Godot editor output log.1 params
Return the latest lines from the Godot editor output log.
max_linesnumberget_errorsGet errors and warnings from both the Godot Output panel and the Debugger > Errors tab. Returns file paths, line numbers, severity, stack traces, and which source each error came from. If errors mention a missing method or property, use classdb_query to verify the correct API...2 params
Get errors and warnings from both the Godot Output panel and the Debugger > Errors tab. Returns file paths, line numbers, severity, stack traces, and which source each error came from. If errors mention a missing method or property, use classdb_query to verify the correct API...
include_warningsbooleanmax_errorsnumberclear_console_logMark the current position in the Godot editor log. Subsequent get_console_log and get_errors calls will only return output after this point.
Mark the current position in the Godot editor log. Subsequent get_console_log and get_errors calls will only return output after this point.
No parameters. Call it with no arguments.
open_in_godotOpen a file in the Godot editor at a specific line (side-effect only).2 params
Open a file in the Godot editor at a specific line (side-effect only).
linenumberpath*stringscene_tree_dumpDump the scene tree of the scene currently open in the Godot editor (node names, types, and attached scripts).
Dump the scene tree of the scene currently open in the Godot editor (node names, types, and attached scripts).
No parameters. Call it with no arguments.
list_settingsBrowse Godot project settings by category. Returns values from the editor's in-memory state — this matches project.godot after a normal Godot save, but direct edits to project.godot on disk are not reflected until the editor restarts (rescan_filesystem does not help). Call wit...1 params
Browse Godot project settings by category. Returns values from the editor's in-memory state — this matches project.godot after a normal Godot save, but direct edits to project.godot on disk are not reflected until the editor restarts (rescan_filesystem does not help). Call wit...
categorystringupdate_project_settingsUpdate one or more Godot project settings. Pass a dictionary of setting paths to their new values. Use list_settings first to discover available setting paths, current values, and valid options for a category. For input action bindings, prefer configure_input_map — if you do p...1 params
Update one or more Godot project settings. Pass a dictionary of setting paths to their new values. Use list_settings first to discover available setting paths, current values, and valid options for a category. For input action bindings, prefer configure_input_map — if you do p...
settings*objectconfigure_input_mapAdd, remove, or replace input actions and their key/button bindings. Use get_input_map to see current actions before modifying.4 params
Add, remove, or replace input actions and their key/button bindings. Use get_input_map to see current actions before modifying.
action*stringdeadzonenumbereventsarrayoperation*stringrun_sceneLaunch a scene in the Godot editor. By default the call BLOCKS until the editor flips to playing state (so the next get_errors / take_screenshot / send_input call sees a real game). The response includes started, runtime_connected, wait_for_started_ms, wait_for_runtime_ms, sce...4 params
Launch a scene in the Godot editor. By default the call BLOCKS until the editor flips to playing state (so the next get_errors / take_screenshot / send_input call sees a real game). The response includes started, runtime_connected, wait_for_started_ms, wait_for_runtime_ms, sce...
block_until_startedbooleanscenestringstartup_timeout_msnumberwait_for_runtimebooleanstop_sceneStop the currently running scene in the Godot editor. Always stop the scene before editing code to avoid errors repeating every frame.
Stop the currently running scene in the Godot editor. Always stop the scene before editing code to avoid errors repeating every frame.
No parameters. Call it with no arguments.
is_playingCompatibility shim: returns {playing, scene}. For richer info (uptime, runtime helper connectivity, last-launched target) prefer get_runtime_status.
Compatibility shim: returns {playing, scene}. For richer info (uptime, runtime helper connectivity, last-launched target) prefer get_runtime_status.
No parameters. Call it with no arguments.
get_runtime_statusCombined editor + runtime status snapshot. Returns playing, playing_scene, last_launched ("current"|"main"|res-path), uptime_ms since the most recent run_scene, and runtime_helper_connected (true once the in-game MCPRuntime autoload is talking to the MCP server).
Combined editor + runtime status snapshot. Returns playing, playing_scene, last_launched ("current"|"main"|res-path), uptime_ms since the most recent run_scene, and runtime_helper_connected (true once the in-game MCPRuntime autoload is talking to the MCP server).
No parameters. Call it with no arguments.
waitSleep server-side. Useful between input events to let the game process them. Capped at 30000ms / 30s. Pass either ms or seconds (ms wins if both given).2 params
Sleep server-side. Useful between input events to let the game process them. Capped at 30000ms / 30s. Pass either ms or seconds (ms wins if both given).
msnumbersecondsnumbertake_screenshotCapture the current viewport of the running game and save it as a PNG. REQUIRES the game to be running with the MCPRuntime autoload connected (run_scene with wait_for_runtime=true first). Returns resource_path, absolute_path, width, height, and (optionally) base64_png. Default...2 params
Capture the current viewport of the running game and save it as a PNG. REQUIRES the game to be running with the MCPRuntime autoload connected (run_scene with wait_for_runtime=true first). Returns resource_path, absolute_path, width, height, and (optionally) base64_png. Default...
return_base64booleansave_tostringsend_inputSynthesize an InputEvent and dispatch it to the running game via Input.parse_input_event. REQUIRES the game to be running with the MCPRuntime autoload connected. Use this to drive automated tests: click buttons, press keys, fire input actions. For multi-step interactions, alte...1 params
Synthesize an InputEvent and dispatch it to the running game via Input.parse_input_event. REQUIRES the game to be running with the MCPRuntime autoload connected. Use this to drive automated tests: click buttons, press keys, fire input actions. For multi-step interactions, alte...
event*objectquery_runtime_nodeQuery a live node in the running scene tree. REQUIRES the game to be running with the MCPRuntime autoload connected. Returns class, path, valid, groups, and a map of property values. By default returns position, global_position, rotation, scale, visible, modulate — pass `prope...4 params
Query a live node in the running scene tree. REQUIRES the game to be running with the MCPRuntime autoload connected. Returns class, path, valid, groups, and a map of property values. By default returns position, global_position, rotation, scale, visible, modulate — pass `prope...
include_childrenbooleaninclude_groupsbooleannode_path*stringpropertiesarrayget_runtime_logReturn entries from the MCPRuntime in-game ring buffer. The buffer holds the last ~500 lines pushed via MCPRuntime.push_runtime_log(level, text) from your scripts plus internal connection events. For full engine stdout (script prints, errors, warnings) use get_console_log — th...2 params
Return entries from the MCPRuntime in-game ring buffer. The buffer holds the last ~500 lines pushed via MCPRuntime.push_runtime_log(level, text) from your scripts plus internal connection events. For full engine stdout (script prints, errors, warnings) use get_console_log — th...
limitnumbersince_msnumberclassdb_queryQuery Godot's ClassDB for class information: properties, methods, signals, and inheritance. Use this to verify that a class, method, or property actually exists in the running Godot engine before writing code. Prevents using wrong method names, outdated Godot 3 API, or incorre...3 params
Query Godot's ClassDB for class information: properties, methods, signals, and inheritance. Use this to verify that a class, method, or property actually exists in the running Godot engine before writing code. Prevents using wrong method names, outdated Godot 3 API, or incorre...
class_name*stringinclude_virtualbooleanquerystringrescan_filesystemTrigger a full filesystem rescan in the Godot editor. Use after creating, deleting, or modifying files externally (e.g. from the terminal or another tool). The scan is asynchronous and returns immediately.
Trigger a full filesystem rescan in the Godot editor. Use after creating, deleting, or modifying files externally (e.g. from the terminal or another tool). The scan is asynchronous and returns immediately.
No parameters. Call it with no arguments.
setup_autoloadRegister, unregister, or list autoload singletons. Autoloads are scripts/scenes loaded automatically at project start.3 params
Register, unregister, or list autoload singletons. Autoloads are scripts/scenes loaded automatically at project start.
namestringoperation*stringpathstringgenerate_2d_assetRender an SVG to a PNG asset on disk via Image.load_svg_from_buffer. The SVG is rendered directly from bytes — no temp file is created, so concurrent calls are safe and project-rename quirks (user:// rebinding) cannot break it. Returns resource_path, absolute_path, dimensions...6 params
Render an SVG to a PNG asset on disk via Image.load_svg_from_buffer. The SVG is rendered directly from bytes — no temp file is created, so concurrent calls are safe and project-rename quirks (user:// rebinding) cannot break it. Returns resource_path, absolute_path, dimensions...
filename*stringheightnumbersave_pathstringscalenumbersvg_code*stringwidthnumbermap_projectCrawl the entire Godot project and build an interactive visual map of all scripts showing their structure (variables, functions, signals), connections (extends, preloads, signal connections), and descriptions. Opens an interactive browser-based visualization.2 params
Crawl the entire Godot project and build an interactive visual map of all scripts showing their structure (variables, functions, signals), connections (extends, preloads, signal connections), and descriptions. Opens an interactive browser-based visualization.
include_addonsbooleanrootstringSponsors
Readme
Godot MCP
Give your AI assistant full access to the Godot editor.
Build games faster with Claude, Cursor, or any MCP-compatible AI — no copy-pasting, no context switching. AI reads, writes, and manipulates your scenes, scripts, nodes, and project settings directly.
Godot 4.4+ · 69 tools · Undo/redo · Interactive project visualizer · MIT license
Now on the Godot Asset Store as Godlink MCP. If it helps you, please leave a review there. It's the main way other Godot developers find it.
An AI agent in Cursor building a platformer level in the Godot editor
Quick Start
0. Install Node.js (one-time setup)
Download and run the installer from nodejs.org (LTS version). It's a standard installer — no terminal needed.
1. Install the Godot plugin
Godot 4.7 and newer: inside the Godot editor, click the Asset Store tab at the top → search "Godlink" → find "Godlink MCP" → Install. (Store page)
Details
- Repository
- github.com/tomyud1/godot-mcp
- Category
- Design & Creative
- Package
godot-mcp-server- Transport
- STDIO
- Registry
- MCP registry, active
- Resources
- 5
- Tools verified
- Jun 11, 2026