# Godot MCP [Health: Active]

**Category:** 🎮 Gaming  
**Repository:** https://github.com/tugcantopaloglu/godot-mcp  
**GitHub Stars:** 498  
**npm Downloads (last month):** 404  
**Views:** 8  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/godot-mcp-4

## Description
MCP server for full Godot 4.x engine control with 165 tools for AI-driven game development

## Tools
Capabilities this server exposes over MCP:

- **launch_editor** — Launch Godot editor for a specific project
- **run_project** — Run the Godot project and capture output
- **get_debug_output** — Get the current debug output and errors
- **stop_project** — Stop the currently running Godot project
- **get_godot_version** — Get the installed Godot version
- **list_projects** — List Godot projects in a directory
- **get_project_info** — Retrieve metadata about a Godot project
- **create_scene** — Create a new Godot scene file
- **add_node** — Add a node to an existing scene
- **load_sprite** — Load a sprite into a Sprite2D node
- **export_mesh_library** — Export a scene as a MeshLibrary resource
- **save_scene** — Save changes to a scene file
- **get_uid** — Get the UID for a specific file in a Godot project (for Godot 4.4+)
- **update_project_uids** — Update UID references by resaving resources (4.4+)
- **game_screenshot** — Screenshot the running game (returns base64 PNG)
- **game_click** — Click at a position in the running Godot game window
- **game_key_press** — Send a key press or input action to the running game
- **game_mouse_move** — Move the mouse in the running Godot game
- **game_get_ui** — Get visible UI elements from the running game
- **game_get_scene_tree** — Get scene tree structure of the running game
- **game_eval** — Execute GDScript in the running game. Use "return" for values.
- **game_get_property** — Get a property value from any node in the running game by its path
- **game_set_property** — Set a property on a node in the running game
- **game_call_method** — Call a method on any node in the running game with optional arguments
- **game_get_node_info** — Get node info: class, properties, signals, methods, children
- **game_instantiate_scene** — Load a PackedScene and add it as a child of a node in the running game
- **game_remove_node** — Remove and free a node from the running game's scene tree
- **game_change_scene** — Switch to a different scene file in the running game
- **game_pause** — Pause or unpause the running game
- **game_performance** — Get performance metrics (FPS, memory, draw calls)
- **game_wait** — Wait N frames in the running game
- **read_scene** — Read scene file as JSON node tree (headless)
- **modify_scene_node** — Modify node properties in a scene file (headless)
- **remove_scene_node** — Remove a node from a scene file (headless)
- **read_project_settings** — Read project.godot as structured JSON
- **modify_project_settings** — Modify a project.godot setting
- **list_project_files** — List project files, optionally filtered by extension
- **game_connect_signal** — Connect a signal from one node to a method on another node in the running game
- **game_disconnect_signal** — Disconnect a signal connection in the running game
- **game_emit_signal** — Emit a signal on a node in the running game, optionally with arguments
- **game_play_animation** — Control an AnimationPlayer node: play, stop, pause, or list animations
- **game_tween_property** — Tween a node property in the running game
- **game_get_nodes_in_group** — Get all nodes belonging to a specific group in the running game
- **game_find_nodes_by_class** — Find all nodes of a specific class type in the running game
- **game_reparent_node** — Move a node to a new parent in the running game's scene tree
- **attach_script** — Attach a GDScript to a scene node (headless)
- **create_resource** — Create a .tres resource file (headless)
- **read_file** — Read a text file from a Godot project
- **write_file** — Create or overwrite a text file in a Godot project
- **delete_file** — Delete a file from a Godot project
- **create_directory** — Create a directory inside a Godot project
- **game_get_errors** — Get new push_error/push_warning messages since last call
- **game_get_logs** — Get new print output from the running game since last call
- **game_key_hold** — Hold a key down without auto-releasing
- **game_key_release** — Release a previously held key
- **game_scroll** — Send mouse scroll wheel event at position
- **game_mouse_drag** — Drag mouse between two points over N frames
- **game_gamepad** — Send gamepad button or axis input event
- **create_project** — Create a new Godot project from scratch
- **manage_autoloads** — Add, remove, or list autoloads in a Godot project
- **manage_input_map** — Add, remove, or list input actions and bindings
- **manage_export_presets** — Create or modify export preset configuration
- **game_get_camera** — Get active camera position, rotation, and size
- **game_set_camera** — Move or rotate the active camera
- **game_raycast** — Cast a ray and return collision results
- **game_get_audio** — Get audio bus layout and playing streams
- **game_spawn_node** — Create a new node of any type at runtime
- **game_set_shader_param** — Set a shader parameter on a node's material
- **game_audio_play** — Play, stop, or pause an AudioStreamPlayer node
- **game_audio_bus** — Set volume, mute, or solo on an audio bus
- **game_navigate_path** — Query a navigation path between two points
- **game_tilemap** — Get or set cells in a TileMapLayer node
- **game_add_collision** — Add a collision shape to a physics body node
- **game_environment** — Get or set environment and post-processing settings
- **game_manage_group** — Add or remove a node from a group, or list groups
- **game_create_timer** — Create a Timer node with configuration
- **game_set_particles** — Configure GPUParticles2D/3D node properties
- **game_create_animation** — Create an animation with tracks and keyframes
- **export_project** — Export a Godot project using a preset
- **game_serialize_state** — Save or load node tree state as JSON
- **game_physics_body** — Configure physics body properties (mass, velocity, etc.)
- **game_create_joint** — Create a physics joint between two bodies
- **game_bone_pose** — Get or set bone poses on a Skeleton3D node
- **game_ui_theme** — Apply theme overrides to a Control node
- **game_viewport** — Create or configure a SubViewport node
- **game_debug_draw** — Draw debug lines, spheres, or boxes in 3D
- **game_http_request** — HTTP GET/POST/PUT/DELETE with headers and body
- **game_websocket** — WebSocket client connect/disconnect/send messages
- **game_multiplayer** — ENet multiplayer create server/client/disconnect
- **game_rpc** — Call or configure RPC methods on nodes
- **game_touch** — Simulate touch press/release/drag and gestures
- **game_input_state** — Query pressed keys, mouse position, connected pads
- **game_input_action** — Manage runtime InputMap actions and strength
- **game_list_signals** — List all signals on a node with connections
- **game_await_signal** — Await a signal with timeout and return args
- **game_script** — Attach, detach, or get source of node scripts
- **game_window** — Get/set window size, fullscreen, title, position
- **game_os_info** — Get platform, locale, screen, adapter, memory info
- **game_time_scale** — Get/set Engine.time_scale and timing info
- **game_process_mode** — Set node process mode (pausable/always/disabled)
- **game_world_settings** — Get/set gravity, physics FPS, and world settings
- **game_csg** — Create/configure CSG nodes with boolean operations
- **game_multimesh** — Create/configure MultiMeshInstance3D for instancing
- **game_procedural_mesh** — Generate meshes via ArrayMesh from vertex data
- **game_light_3d** — Create/configure 3D lights (directional/omni/spot)
- **game_mesh_instance** — Create MeshInstance3D with primitive meshes
- **game_gridmap** — GridMap set/get/clear cells and query used cells
- **game_3d_effects** — Create ReflectionProbe, Decal, or FogVolume
- **game_gi** — Create/configure VoxelGI or LightmapGI
- **game_path_3d** — Create Path3D/Curve3D and manage curve points
- **game_sky** — Create/configure Sky with procedural/physical sky
- **game_camera_attributes** — Configure DOF, exposure, auto-exposure on camera
- **game_navigation_3d** — Create/configure NavigationRegion3D and bake
- **game_physics_3d** — Area3D queries and point/shape intersection tests
- **game_canvas** — Create/configure CanvasLayer and CanvasModulate
- **game_canvas_draw** — 2D drawing: line/rect/circle/polygon/text/clear
- **game_light_2d** — Create/configure 2D lights and light occluders
- **game_parallax** — Create/configure ParallaxBackground and layers
- **game_shape_2d** — Line2D/Polygon2D point manipulation
- **game_path_2d** — Path2D/Curve2D management and AnimatedSprite2D
- **game_physics_2d** — Area2D queries and 2D point/shape intersections
- **game_animation_tree** — AnimationTree state machine travel and params
- **game_animation_control** — AnimationPlayer seek/queue/speed/info control
- **game_skeleton_ik** — SkeletonIK3D start/stop/set target position
- **game_audio_effect** — Add/remove/configure audio bus effects
- **game_audio_bus_layout** — Create/remove/reorder audio buses and routing
- **game_audio_spatial** — Configure AudioStreamPlayer3D spatial properties
- **rename_file** — Rename or move a file within the project
- **manage_resource** — Read or modify .tres/.res resource files
- **create_script** — Create a GDScript file from a template
- **manage_scene_signals** — List/add/remove signal connections in .tscn files
- **manage_layers** — List/set named layer definitions in project
- **manage_plugins** — List/enable/disable editor plugins
- **manage_shader** — Create or read .gdshader files
- **manage_theme_resource** — Create/read/modify Theme .tres resources
- **set_main_scene** — Set the main scene in project.godot
- **manage_scene_structure** — Rename/duplicate/move nodes within .tscn scenes
- **manage_translations** — List/add/remove translation files in project
- **game_locale** — Set/get locale and translate strings at runtime
- **game_ui_control** — Set focus, anchors, tooltip, mouse filter on Control
- **game_ui_text** — LineEdit/TextEdit/RichTextLabel text operations
- **game_ui_popup** — Show/hide/popup for Popup/Dialog/Window nodes
- **game_ui_tree** — Tree control: get/select/collapse/add/remove items
- **game_ui_item_list** — ItemList/OptionButton: get/select/add/remove items
- **game_ui_tabs** — TabContainer/TabBar: get/set current tab
- **game_ui_menu** — PopupMenu/MenuBar: add/remove/get menu items
- **game_ui_range** — ProgressBar/Slider/SpinBox/ColorPicker get/set
- **game_render_settings** — Get/set MSAA, FXAA, TAA, scaling mode/scale
- **game_resource** — Runtime resource load, save, or preload
- **game_visual_shader** — Create and edit VisualShader graphs: add/connect/disconnect nodes
- **game_terrain** — Create/modify terrain meshes from heightmap data
- **game_video** — Video playback control: play, pause, stop, seek on VideoStreamPlayer
- **manage_ci_pipeline** — Create/read GitHub Actions workflow for automated Godot exports
- **manage_docker_export** — Create Dockerfile for headless Godot export

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

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

## Documentation

## What Godot MCP does

Godot MCP MCP server exposes 157 tools for working with Godot 4.x projects and running games. Its coverage includes project scaffolding, scene and resource files, scripts, project settings, input actions, autoloads, export presets, runtime nodes, signals, animation, physics, audio, cameras, navigation, UI, particles, and debugging data.

The server supports both ordinary GDScript projects and .NET projects. A project can be created with C# support, and the server can generate C# scripts with Godot-compatible class and method structure. Script diagnostics can check one file or validate changed files and, when requested, the whole project.

## How it works

Godot MCP MCP server uses headless operations for tasks that do not require a running game. These include parsing and editing `.tscn` scene files, creating `.tres` resources, reading or changing `project.godot`, and managing project files. Runtime operations communicate with the active game through the project’s runtime interaction system.

During a running session, an agent can inspect node properties, methods, signals, children, and groups; call methods; change scenes; add or remove nodes; reparent nodes; connect or emit signals; and execute GDScript with return values and asynchronous `await` support. Runtime tools also expose performance information, logs, errors, camera state, physics queries, audio state, and game input events.

## Setup and configuration

The material identifies Godot 4.4 or later as a requirement and reports testing with Godot 4.7. The server is implemented in TypeScript and includes a headless GDScript operations system plus a TCP-based runtime interaction server.

Projects can be created from scratch through `create_project`. Passing `dotnet: true` creates a .NET project, including a matching `Godot.NET.Sdk` version and the C# feature flag. The `get_project_info` tool reports whether a project is a .NET project.

## Tools and capabilities

Representative tool groups include:

- Create, read, modify, and delete project files and directories.
- Parse, edit, and remove scene nodes, attach scripts, and create resources.
- Read or update project settings, autoloads, input maps, and export presets.
- Validate GDScript syntax and type information before running a project.
- Inspect and manipulate live nodes, properties, methods, scenes, signals, groups, and animations.
- Send keyboard, mouse, scroll, drag, and gamepad input for testing.
- Configure physics bodies, joints, collisions, cameras, navigation, tilemaps, shaders, audio, particles, environments, viewports, and debug geometry.
- Export projects headlessly and serialize node-tree state as JSON.

## Limitations and notes

Godot MCP MCP server targets Godot 4.x and specifically requires Godot 4.4 or newer according to the project notes. Runtime controls depend on a running game, while headless scene and project operations do not. The server can execute arbitrary GDScript through `game_eval`, so deployments should account for the access and modification scope granted to the connected assistant.

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

