# @yanhuifair/godot-mcp [Health: Active]

**Category:** 🎮 Gaming  
**Repository:** https://github.com/yanhuifair/Godot-MCP  
**GitHub Stars:** 49  
**npm Downloads (last month):** 3658  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/yanhuifair-godot-mcp

## Description
The most complete MCP server for Godot Engine 4.x — 386 tools. Let Claude, Cursor, Copilot, Windsurf or any MCP client edit .tscn scenes, .tres resources, GDScript and shaders, drive the live editor, and control the running game (freeze, frame-step, scree

## Tools
Capabilities this server exposes over MCP:

- **add_animation_library** — Add animation library to player.
- **add_animation_track** — Add track to animation.
- **add_audio_bus** — Add audio bus to layout.
- **add_autoload** — Add an autoload entry.
- **add_bus_effect** — Add effect to audio bus.
- **add_input_binding** — Add key/mouse/joypad binding to action.
- **add_node** — Add a node to a scene.
- **add_script_export** — Add @export variable to GDScript.
- **add_script_function** — Append a function to GDScript.
- **add_script_signal** — Add a signal declaration to GDScript.
- **add_shader_graph_node** — Add a node to a VisualShader graph. 40+ node types available (constants, math, textures, effects).
- **add_theme_type** — Add a control type (font size/color) to a Theme.
- **add_tileset_source** — Add an atlas source (texture) to a TileSet.
- **add_translation_key** — Append a translation key/row to an existing CSV.
- **attach_script** — Attach a script to a node.
- **capture_screenshot** — Capture screenshot of running game.
- **clear_game_logs** — Delete rotated Godot log backups (optionally the current log too).
- **clone_node** — Deep-clone a node in a scene.
- **compile_shader** — Compile (reimport) a .gdshader via Godot editor or local validation.
- **configure_file_logging** — Enable/disable engine file logging and set log_path / max_log_files in project.godot.
- **connect_shader_graph_nodes** — Connect two node ports in a VisualShader graph.
- **connect_signal** — Connect a signal between nodes.
- **create_animation** — Create Animation .tres resource.
- **create_atlas_texture** — Create AtlasTexture .tres.
- **create_audio_bus_layout** — Create AudioBusLayout.
- **create_camera_attributes** — Create CameraAttributes (Practical or Physical) for 3D camera DOF and auto-exposure.
- **create_collision_polygon** — Create CollisionPolygon2D.
- **create_curve** — Create Curve .tres.
- **create_directory** — Create a directory in project.
- **create_environment** — Create Environment from preset.
- **create_export_preset** — Create an export preset in export_presets.cfg (Windows Desktop/Linux/macOS/Android/iOS/Web).
- **create_gdextension** — Create a .gdextension config file.
- **create_gradient** — Create Gradient .tres.
- **create_grid_map** — Create a GridMap node for 3D tile-based level design.
- **create_image_texture** — Create an ImageTexture .tres pointing at an image file.
- **create_joint** — Create a physics joint.
- **create_mesh_primitive** — Create 3D mesh resource: Box, Capsule, Cylinder, Plane, Sphere, Torus, etc. (11 types).
- **create_multimesh** — Create a MultiMesh .tres resource.
- **create_nav_link** — Create a NavigationLink3D between two points.
- **create_nav_mesh** — Create NavigationMesh .tres.
- **create_noise_texture** — Create NoiseTexture2D.
- **create_physics_material** — Create PhysicsMaterial.
- **create_po_translation** — Create a Gettext .po translation file (optionally registering it).
- **create_resource** — Create a resource from template.
- **create_scene** — Create a new scene from template.
- **create_script** — Create a new script from template.
- **create_shader** — Create a new .gdshader from template.
- **create_shader_include** — Create a .gdshaderinc file.
- **create_sky** — Create a Sky .tres with a procedural or panorama sky material.
- **create_spring_arm** — Create a SpringArm3D for smooth camera follow.
- **create_sprite_frames** — Create a SpriteFrames .tres resource with named animations.
- **create_theme** — Create a Theme .tres resource.
- **create_tileset** — Create a TileSet .tres resource.
- **create_translation** — Create translation CSV.
- **create_vehicle_body** — Create a VehicleBody3D with VehicleWheel nodes for car physics.
- **create_visual_shader** — Create a new VisualShader .tres graph file.
- **create_world** — Create World3D .tres.
- **create_world_environment** — Create a .tscn with a WorldEnvironment node referencing an Environment.
- **delete_file** — Delete a file with .bak backup.
- **diff_animation** — Compare two Animation .tres files.
- **diff_project_config** — Compare two config files (project.godot, .cfg, .import) ignoring whitespace and comments.
- **diff_resource** — Compare two resource files.
- **diff_scene** — Compare two scene files.
- **diff_script** — Compare two GDScript files line-by-line.
- **disconnect_shader_graph_nodes** — Disconnect two node ports in a VisualShader graph.
- **disconnect_signal** — Disconnect a signal.
- **duplicate_resource** — Duplicate a .tres resource.
- **duplicate_scene** — Duplicate a scene file.
- **edit_scene** — Apply batch operations to a scene.
- **editor_add_autoload** — Add an autoload singleton via editor API.
- **editor_add_input_action** — Add an input action via editor API.
- **editor_add_node** — Add a node to the currently open scene in editor.
- **editor_attach_script** — Attach a script to a node in the editor.
- **editor_bake_lightmaps** — Trigger lightmap baking.
- **editor_bake_navigation** — Bake navigation meshes for all NavigationRegion nodes in current scene.
- **editor_clear_errors** — Clear the bridge error-capture buffer (always empty). Does not clear the editor console, which the plugin cannot read.
- **editor_close_scene** — Close the currently open scene in the editor (Godot 4.6+).
- **editor_connect_signal** — Connect a signal between nodes in the editor.
- **editor_copy** — Copy selected nodes to the editor clipboard.
- **editor_create_camera** — Create a Camera3D node in the open scene.
- **editor_create_csg_box** — Create a CSGBox3D node in the open scene.
- **editor_create_csg_cylinder** — Create a CSGCylinder3D node in the open scene.
- **editor_create_csg_merge** — Create a CSGCombiner3D node in the open scene.
- **editor_create_csg_polygon** — Create a CSGPolygon3D node in the open scene.
- **editor_create_csg_sphere** — Create a CSGSphere3D node in the open scene.
- **editor_create_folder** — Create a directory in the project via editor filesystem.
- **editor_create_gpu_particles** — Create a GPUParticles3D node in the open scene.
- **editor_create_mesh_instance** — Create a MeshInstance3D node in the open scene.
- **editor_create_multiplayer_spawner** — Create a MultiplayerSpawner3D node in the open scene.
- **editor_create_multiplayer_synchronizer** — Create a MultiplayerSynchronizer3D node in the open scene.
- **editor_create_scene** — Create and open a new scene in the editor.
- **editor_create_script** — Create and open a new GDScript in the editor.
- **editor_cut** — Cut selected nodes to the editor clipboard (with undo).
- **editor_debug_break** — Stop execution (break) in debugger.
- **editor_debug_continue** — Resume execution in debugger.
- **editor_debug_step** — Step into next line in debugger.
- **editor_debug_step_over** — Step over current line in debugger.
- **editor_delete_asset** — Delete a file or folder via editor.
- **editor_delete_selected** — Delete currently selected nodes.
- **editor_disable_plugin** — Disable a named editor plugin.
- **editor_disconnect_signal** — Disconnect a signal between nodes.
- **editor_duplicate_asset** — Duplicate a file via editor filesystem.
- **editor_duplicate_node** — Duplicate a node with children, scripts, and signals.
- **editor_enable_plugin** — Enable a named editor plugin.
- **editor_evaluate_expression** — Evaluate a GDScript expression in debugger/editor context.
- **editor_focus** — Bring the Godot editor window to the foreground.
- **editor_get_3d_snap** — Return 3D editor snap settings (grid step, rotation step, snap enabled).
- **editor_get_autoloads** — List autoload singletons via editor API.
- **editor_get_breakpoints** — List all breakpoints.
- **editor_get_camera** — Get the 3D editor viewport camera position.
- **editor_get_class_doc** — Open Godot documentation for a class in browser.
- **editor_get_class_list** — List all Godot classes, optionally filtered.
- **editor_get_class_properties** — List all editor-visible properties of a class.
- **editor_get_class_signals** — List all signals of a Godot class.
- **editor_get_debug_variables** — Get local variables from debugger.
- **editor_get_dependencies** — Get all resource dependencies for a file.
- **editor_get_editor_setting** — Read an editor preference value.
- **editor_get_errors** — Read the bridge error-capture buffer. NOTE: the editor console is NOT intercepted, so an empty result does not mean 'no errors' — use validate_script / read_game_log / monitor_output instead.
- **editor_get_filesystem_selection** — Return the editor filesystem dock selection (directory, current path, selected paths).
- **editor_get_info** — Get editor status info.
- **editor_get_input_map** — Read the Input Map via editor API.
- **editor_get_method_list** — List all methods of a Godot class.
- **editor_get_node_properties** — Read all editor-visible properties of a node.
- **editor_get_open_scene** — Get currently open scene path.
- **editor_get_open_scenes** — List all scenes currently open in the editor.
- **editor_get_paths** — Return editor data/config/cache/project-settings directory paths.
- **editor_get_performance** — Get FPS, draw calls, memory usage while game is running.
- **editor_get_playing_scene** — Return the path of the scene currently being played, if any.
- **editor_get_plugin_list** — List all installed editor plugins with enabled state.
- **editor_get_project_directory** — Get project res:// and user:// paths.
- **editor_get_project_setting** — Read a project setting via editor API.
- **editor_get_recent_scenes** — List recently opened scene paths.
- **editor_get_rect** — Get editor window dimensions.
- **editor_get_running_scene_tree** — Get the live scene tree while the game is running.
- **editor_get_scene_changes** — Check if current scene has unsaved changes.
- **editor_get_selection** — Get selected nodes in editor.
- **editor_get_stack_trace** — Get current call stack from debugger.
- **editor_get_unsaved_scenes** — List scenes that have unsaved changes.
- **editor_health_check** — Check if the Godot editor plugin is reachable.
- **editor_instantiate_scene** — Instantiate a PackedScene into the current scene.
- **editor_is_playing** — Return whether the editor is currently playing a scene and which scene.
- **editor_list_filesystem** — List files and directories in the editor filesystem.
- **editor_list_node_signals** — List signals and their connections on a node.
- **editor_mark_scene_unsaved** — Mark the current scene as having unsaved changes.
- **editor_move_asset** — Move a file to a new location via editor.
- **editor_move_node** — Move a 2D/3D node to a new position.
- **editor_open_asset** — Open an asset in editor.
- **editor_open_dock** — Open a dock: filesystem, inspector, scene, output.
- **editor_open_script_at_line** — Open a script in the editor and jump to a given line/column.
- **editor_paste** — Paste clipboard nodes into the scene (at selected node or root).
- **editor_pause** — Pause the editor scene tree (note: only affects the editor tree, not a separately running game).
- **editor_play** — Play project from editor.
- **editor_play_current_scene** — Play the currently edited scene from the editor.
- **editor_read_current_scene** — Read live editor scene tree.
- **editor_redo** — Redo last undone action.
- **editor_reimport_asset** — Force reimport of an asset.
- **editor_reload_scene** — Save and reload current scene.
- **editor_remove_autoload** — Remove an autoload singleton via editor API.
- **editor_remove_breakpoint** — Remove a breakpoint from a script.
- **editor_remove_input_action** — Remove an input action via editor API.
- **editor_remove_node** — Remove a node from the currently open scene.
- **editor_rename_asset** — Rename a file via editor filesystem.
- **editor_rename_node** — Rename a node in the editor.
- **editor_reparent_node** — Move a node to a new parent.
- **editor_restart** — Restart the editor (requires confirm=true; optional save). Destructive.
- **editor_run_gdscript** — Execute arbitrary GDScript code in editor context.
- **editor_run_specific_scene** — Run a specific scene (not just main).
- **editor_save** — Save current scene in editor.
- **editor_save_all** — Save all open scenes.
- **editor_save_scene_as** — Save the current scene under a new res:// path (optionally with preview).
- **editor_search_help** — Search Godot documentation in browser.
- **editor_select_node** — Select a node in the edited scene (optionally set a property on it).
- **editor_set_animated_sprite_param** — Set a property on an AnimatedSprite node in the open scene.
- **editor_set_area_param** — Set a property on an Area2D/3D node in the open scene.
- **editor_set_audio_listener_param** — Set a property on an AudioListener node in the open scene.
- **editor_set_audio_player_param** — Set a property on an AudioStreamPlayer node in the open scene.
- **editor_set_breakpoint** — Set a breakpoint in a script.
- **editor_set_camera** — Set the 3D editor viewport camera position.
- **editor_set_camera_param** — Set a property on a Camera node in the open scene.
- **editor_set_character_body_param** — Set a property on a CharacterBody node in the open scene.
- **editor_set_container_param** — Set a property on a Container node in the open scene.
- **editor_set_decal_param** — Set a property on a Decal node in the open scene.
- **editor_set_distraction_free** — Enable or disable distraction-free mode (pass enabled to set, omit to read).
- **editor_set_editor_setting** — Set an editor preference.
- **editor_set_main_scene** — Set the project main scene.
- **editor_set_marker_param** — Set a property on a Marker node in the open scene.
- **editor_set_movie_maker** — Enable or disable the movie maker mode (pass enabled to set, omit to read).
- **editor_set_multiplayer_spawner_param** — Set a property on a MultiplayerSpawner3D node in the open scene.
- **editor_set_multiplayer_synchronizer_param** — Set a property on a MultiplayerSynchronizer3D node in the open scene.
- **editor_set_node_properties** — Set multiple properties on a node at once.
- **editor_set_occluder_param** — Set a property on an Occluder node in the open scene.
- **editor_set_parallax_param** — Set a property on a ParallaxBackground node in the open scene.
- **editor_set_particles_param** — Set a property on a particle system node in the open scene.
- **editor_set_project_setting** — Set a project setting via editor API (auto-saves).
- **editor_set_rich_text_param** — Set a property on a RichTextLabel node in the open scene.
- **editor_set_selection** — Select node in editor.
- **editor_set_soft_body_param** — Set a property on a SoftBody3D node in the open scene.
- **editor_set_tab_container_param** — Set a property on a TabContainer/TabBar node in the open scene.
- **editor_set_video_player_param** — Set a property on a VideoStreamPlayer node in the open scene.
- **editor_set_viewport_param** — Set a property on a Viewport node in the open scene.
- **editor_show_in_filesystem** — Reveal a file in the FileSystem dock.
- **editor_show_toast** — Push a toast notification to the editor toaster (info/warning/error).
- **editor_simulate_key** — Simulate a key press in the editor (e.g. "F5" to run, "Ctrl+S" to save).
- **editor_stop** — Stop playing in editor.
- **editor_take_screenshot** — Capture the editor viewport as a PNG.
- **editor_toggle_grid** — Toggle 3D grid visibility.
- **editor_toggle_snap** — Toggle 3D snap mode.
- **editor_undo** — Undo last editor action.
- **editor_unpause** — Resume the editor scene tree from pause.
- **export_project** — Export project via Godot CLI preset.
- **find_nodes_in_scenes** — Search nodes across scenes by type/property.
- **find_unused_assets** — Find orphaned project files.
- **fix_missing_uids** — Inject generated UIDs into scene/resource headers missing them.
- **generate_cohesion_report** — Project cohesion report.
- **generate_project_report** — Generate comprehensive project overview.
- **get_godot_version** — Detect installed Godot version.
- **get_shader_node_defaults** — Get default ports and parameters for a specific VisualShader node type.
- **get_status** — System status / diagnostics: editor bridge, live-game runtime bridge, and tool count. Use to debug connection issues.
- **get_uid** — Get UID for a file.
- **get_user_data_dir** — Resolve where user:// points on this machine for this project (honours use_custom_user_dir), plus the effective file-logging configuration.
- **is_editor_running** — Check if Godot editor is running.
- **launch_editor** — Launch Godot editor with project.
- **list_all_signals** — List all signal connections across scenes.
- **list_animations** — List AnimationPlayers and animations.
- **list_audio_files** — List audio files by format.
- **list_autoloads** — List all autoload singletons.
- **list_cameras** — List Camera nodes.
- **list_csproj** — List C# project files.
- **list_environments** — List Environment resources.
- **list_game_logs** — List all Godot log files (current + rotated backups) with size and timestamp, newest first.
- **list_groups** — List all node groups across scenes.
- **list_import_files** — List .import files grouped by type.
- **list_joints** — List physics joints.
- **list_lights** — List light nodes.
- **list_materials** — List materials grouped by type.
- **list_missing_uids** — List files missing UIDs.
- **list_nav_regions** — List NavigationRegion nodes.
- **list_paths** — List Path2D/3D nodes.
- **list_physics_materials** — List PhysicsMaterials.
- **list_popups** — List Popup/Window/Dialog nodes.
- **list_project_files** — List files and directories in the Godot project.
- **list_projects** — Scan directory for Godot projects.
- **list_resources** — List all resource files.
- **list_scenes** — List all .tscn scene files.
- **list_scripts** — List all script files grouped by type.
- **list_shader_includes** — List all .gdshaderinc files.
- **list_shader_node_types** — List all VisualShader node types organized by category with input/output counts.
- **list_shaders** — List all .gdshader files.
- **list_skeletons** — List Skeleton nodes.
- **list_textures** — List all texture/image assets in the project.
- **list_tilesets** — List TileSet resources.
- **list_translations** — List translation files.
- **list_ui_nodes** — List Control-derived UI nodes.
- **list_visual_shaders** — List VisualShader graph files.
- **load_sprite** — Load a texture onto a Sprite2D node.
- **modify_node** — Modify node properties or rename.
- **monitor_output** — Read Godot process output.
- **move_file** — Move/rename a file within project.
- **read_animated_sprite** — Read AnimatedSprite settings.
- **read_animation** — Read animation tracks and keyframes.
- **read_animation_tree** — Read AnimationTree with state machine.
- **read_area** — Read Area2D/3D properties.
- **read_audio_bus_layout** — Read AudioBusLayout.
- **read_audio_listener** — List AudioListener2D/3D nodes for spatial audio positioning.
- **read_audio_player** — List AudioStreamPlayer nodes.
- **read_audio_stream** — Read audio file info: format, size, loop, bitrate from .import config.
- **read_camera** — Read camera configuration.
- **read_character_body** — Read CharacterBody properties.
- **read_collision_layers** — Read collision layer names.
- **read_collision_polygon** — Read CollisionPolygon2D points from a scene.
- **read_container** — Read Container layout.
- **read_csproj** — Read a C# .csproj (assembly, target framework, package refs).
- **read_curve** — Read Curve resource.
- **read_decal** — List Decal nodes with size and texture info.
- **read_environment** — Read Environment resource.
- **read_export_presets** — Read export presets from export_presets.cfg.
- **read_game_log** — Read the Godot engine log written by a game run (user://logs/godot.log). Filter by severity (error/warning/script/shader) or regex; tail or head N lines. NOTE: editor sessions never write log files, only actual game runs do.
- **read_gdextension** — Read .gdextension config.
- **read_gradient** — Read Gradient resource.
- **read_grid_map** — List GridMap nodes with cell size and mesh library references.
- **read_import_config** — Read .import file config.
- **read_input_map** — Read input map with key bindings.
- **read_joint** — Read a physics joint config in a scene.
- **read_light_2d** — List PointLight2D/DirectionalLight2D nodes with energy and shadow settings.
- **read_marker** — List Marker2D/Marker3D position markers across scenes.
- **read_material** — Read material with PBR formatting.
- **read_mesh_instance** — Read MeshInstance properties.
- **read_multimesh** — List MultiMeshInstance nodes.
- **read_nav_agent** — Read NavigationAgent properties across scenes.
- **read_nav_obstacle** — Read NavigationObstacle nodes across scenes.
- **read_nav_region** — Read navigation region.
- **read_occluder** — List OccluderInstance3D and OcclusionPolygon2D nodes.
- **read_parallax** — Read ParallaxBackground layers.
- **read_particles** — List particle systems.
- **read_path** — Read Path node with curve.
- **read_physics_material** — Read PhysicsMaterial.
- **read_project_config** — Read and parse project.godot.
- **read_project_icon** — Read project identity.
- **read_raycast** — List RayCast/ShapeCast nodes.
- **read_reflection_probe** — List GI probes.
- **read_resource** — Read a .tres resource file.
- **read_rich_text** — List RichTextLabel nodes.
- **read_scene** — Read a .tscn scene file.
- **read_script** — Read a script file with line numbers.
- **read_script_structure** — Analyze GDScript structure.
- **read_shader** — Read a .gdshader file.
- **read_shader_include** — Read a .gdshaderinc file.
- **read_skeleton** — Read Skeleton bone hierarchy.
- **read_soft_body** — List SoftBody3D nodes with mass and stiffness.
- **read_spring_arm** — List SpringArm3D nodes with spring length and collision settings.
- **read_sprite_frames** — List AnimatedSprite nodes and their SpriteFrames resources.
- **read_stylebox** — Read StyleBox resource.
- **read_tab_container** — Read TabContainer/TabBar.
- **read_texture_info** — Read texture asset info.
- **read_theme** — Read Theme resource with type-aware grouping.
- **read_tilemap** — Read TileMapLayer in scene.
- **read_tileset** — Read TileSet resource.
- **read_translation** — Read translation file.
- **read_vehicle_body** — List VehicleBody3D nodes with wheel counts.
- **read_video_player** — List VideoStreamPlayer nodes.
- **read_viewport** — Read Viewport settings.
- **read_visual_shader** — Read a VisualShader graph.
- **register_translation** — Register a translation file in project.godot so Godot loads it.
- **remove_animation_track** — Remove track from animation.
- **remove_audio_bus** — Remove audio bus.
- **remove_autoload** — Remove an autoload entry.
- **remove_export_preset** — Remove an export preset and renumber the remaining ones.
- **remove_input_action** — Remove an input action.
- **remove_joint** — Remove a physics joint node from a scene.
- **remove_node** — Remove a node from a scene.
- **remove_shader_graph_node** — Remove a node from a VisualShader graph by index.
- **rename_node** — Rename a node in a scene.
- **run_project** — Run the Godot project.
- **runtime_call_method** — Call a method on a node in the running game.
- **runtime_emit_signal** — Emit a signal on a node in the running game.
- **runtime_freeze** — Pause (freeze) the running game.
- **runtime_get_node** — Read live properties of a node in the running game.
- **runtime_get_tree** — Read the running game scene tree (live, inside the played game).
- **runtime_input** — Inject a key input event into the running game.
- **runtime_ping** — Check if the live-game runtime bridge is reachable.
- **runtime_resume** — Resume (unpause) the running game.
- **runtime_screenshot** — Capture a screenshot of the running game viewport.
- **runtime_set_node** — Set properties on a node in the running game (live mutation).
- **runtime_step** — Advance the running game by N frames deterministically while paused (frame stepping).
- **scene_dependency_graph** — Analyze inter-scene dependencies.
- **search_in_project** — Search for text across project files.
- **search_in_scripts** — Search in scripts with function context.
- **search_scene_content** — Full-text search in .tscn content.
- **search_tools** — Search all tools by keyword/description to discover the right tool name. Use this instead of guessing among 350+ tools.
- **set_animation_param** — Set animation parameter.
- **set_animation_tree_param** — Set AnimationTree parameter.
- **set_bus_volume** — Set bus volume in dB.
- **set_collision_shape** — Set collision shape for CollisionShape node.
- **set_environment_param** — Set environment parameter.
- **set_joint_param** — Set joint parameter.
- **set_keyframe** — Set keyframe on track.
- **set_light_2d_param** — Set a parameter on a 2D light node.
- **set_light_param** — Set light parameter.
- **set_material_param** — Set a single material parameter.
- **set_mesh_surface_material** — Set surface material on MeshInstance.
- **set_node_position** — Set node position (2D/3D auto-detect).
- **set_node_rotation** — Set node rotation (2D/3D).
- **set_node_scale** — Set node scale (2D/3D).
- **set_shader_node_param** — Set a parameter on a VisualShader node (constant, expression, operator, etc.).
- **set_shape_points** — Set shape on CollisionShape2D.
- **set_skeleton_bone_pose** — Set a bone pose (position/rotation/scale) in a skeleton.
- **set_stylebox** — Attach a StyleBoxFlat to a Theme type/state.
- **set_texture_import_flags** — Set import flags (compress, mipmaps, etc.) in a .import config.
- **simplify_polygon** — Simplify a polygon via Douglas-Peucker and return the reduced point list (pure computation — nothing is written to disk).
- **stop_project** — Stop all running Godot processes.
- **transform_node** — Apply a combined transform (position, rotation, scale) to a node in a scene.
- **unregister_translation** — Remove a translation file from the project translation list.
- **update_export_preset** — Update fields/options of an existing export preset (by name or index).
- **update_project_uids** — Scan for missing UIDs.
- **validate_project** — Validate project for broken refs, empty UIDs.
- **validate_script** — Validate GDScript for common issues.
- **validate_shader** — Validate .gdshader for syntax issues (shader_type, braces, declarations).
- **write_collision_layers** — Write/overwrite 2D and 3D collision layer names in project.godot.
- **write_import_config** — Write import settings.
- **write_input_action** — Create a new input action.
- **write_path_curve** — Write a curve into a Path2D/Path3D node in a scene.
- **write_project_config** — Write a config value to project.godot.
- **write_resource** — Write properties to a resource.
- **write_script** — Write content to a script file.
- **write_shader** — Write content to a .gdshader.
- **write_translation** — Write a full translation CSV (keys + entries).

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "godot-mcp": {
    "command": "npx",
    "args": ["-y","@yanhuifair/godot-mcp"]
  }
}
```

## Documentation

## What @yanhuifair/godot-mcp does

@yanhuifair/godot-mcp exposes Godot Engine 4.x project operations through the Model Context Protocol. Its tools cover native project-file handling for `.tscn` scenes, `.tres` resources, GDScript, C#, `.gdshader` files, and `project.godot`. These file operations use parsers and can run without an open Godot process.

The server also provides live editor and runtime functions when its Godot plugin is enabled. AI clients can manage nodes, signals, shaders, lightmap baking, breakpoints, debugging, game execution, and editor state. Runtime tools can inspect the live scene tree, invoke methods, inject input, freeze execution, advance one frame, and capture screenshots.

## How it works

The package runs as an MCP server that an AI client starts, commonly through `npx`. A project path points the server at the directory containing `project.godot`. The client communicates with the server over stdio, SSE, or streamable HTTP, depending on the selected transport.

The optional editor plugin bridges the server to a running Godot editor and game. Scene mutations performed through the editor are registered with Godot's native undo system, allowing them to be reverted with the normal undo command. `get_status` reports connection state, while `search_tools` helps locate capabilities across the large tool catalog.

## Setup and configuration

Godot 4.x and Node.js 18 or newer are required. Godot 3 is not supported. To install and enable the project plugin, run the package from the project directory:

```bash
npx @yanhuifair/godot-mcp --enable-plugin -p .
```

The path must resolve to the folder containing `project.godot`; an absolute path can be supplied instead. This places the plugin under `addons/godot-mcp/` and enables it in the project settings. Reload an already-open Godot project after installation.

A stdio client configuration can start the server with:

```json
{
  "mcpServers": {
    "godot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@yanhuifair/godot-mcp", "-p", "."]
    }
  }
}
```

Restart the AI client after changing its MCP configuration. Run `get_status` to check the connection and available bridges.

## Tools and capabilities

- Read and modify Godot scenes, resources, scripts, shaders, and project settings.
- Add, remove, rename, move, reparent, duplicate, and instantiate scene nodes with undo support.
- Control editor playback, selection, signals, breakpoints, debugging, viewport actions, and lightmap baking.
- Inspect running-game scene trees and call methods on live objects.
- Inject input, pause or freeze runtime execution, step by frame, and take screenshots.
- Discover tools with `search_tools` and inspect connectivity with `get_status`.

## Limitations and notes

Live editor and running-game features require the Godot plugin and a reachable Godot editor. More than 220 file-oriented tools can operate without the plugin or an open Godot process, but they do not provide live editor or runtime access. The project must use Godot 4.x, and the configured project path must contain `project.godot`.

_Full upstream README: https://allmcps.com/mcp/yanhuifair-godot-mcp/readme_

