Godot MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Godot MCP Servercreate a 2D player scene with CharacterBody2D root and Sprite2D"
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 Server
An MCP (Model Context Protocol) server that integrates Godot game engine with Copilot MCP, allowing LLMs to create scenes, scripts, animations, and make other changes in Godot projects.

Features
MCP capabilities
The server advertises tools, resources, prompts, and logging. Tools are annotated (read-only / destructive / open-world), mutation tools emit resources/list_changed, project content is exposed as godot:// resources, and diagnostics are streamed over notifications/message. See the MCP capabilities section below for details.
Scene Management
create_scene - Create new Godot scenes (.tscn) with specified root node types
add_node - Add nodes to existing scenes (supports instancing child scenes via
instance_scene_path)remove_node - Remove nodes from scenes
modify_node - Modify node properties
apply_scene_changes - Apply ordered add/modify/remove operations transactionally with one scene load and save
read_scene - Read scene structure as JSON (includes groups, metadata, signal connections, and stored properties)
list_nodes - List all nodes in a scene
add_node_group / remove_node_group - Manage persistent node groups
set_node_meta / remove_node_meta - Set/remove node metadata
connect_signal / disconnect_signal - Wire signals between nodes (persisted with the scene)
Script Generation
create_script - Create GDScript files with templates or custom content
attach_script - Attach scripts to scene nodes
read_script - Read script file contents
edit_script - Edit existing scripts
list_scripts - List all scripts in project
check_script - Compile-check GDScript source without saving (returns errors/warnings with line+column)
Animation
create_animation - Create AnimationPlayer with animations
add_animation_track - Add animation tracks with keyframes. Supports all Godot track types:
value,position_3d,rotation_3d,scale_3d,blend_shape,method,bezier,audio,animation
Project Management
init_project - Initialize new Godot projects
get_project_info - Get project information
list_open_projects - List projects currently opened in Godot editor processes
list_scenes - List all scene files
launch_editor - Launch Godot editor
run_project - Run the project
run_project_diagnostics - Run a project or selected scene headlessly for a bounded number of frames and return structured parser/runtime diagnostics, exit status, timing, and captured output
get_editor_state / read_editor_scene - Read live editor selection, play state, open scenes, and the active in-memory scene through the optional authenticated editor bridge
control_editor_play / get_editor_performance - Start/stop editor play sessions and read live timing, memory, object, node, rendering, and video-memory monitors
get_godot_version - Get Godot version info
create_resource - Create resource files (.tres)
list_resources / read_resource / update_resource / delete_resource - Inspect and manage
.tresand.resresources; deletion is dependency-protected by defaultrun_godot_script - Run custom GDScript inside a project and return JSON-safe results
Project Configuration & Introspection
get_class_info - Introspect any Godot class via ClassDB (methods, properties, signals, enums, constants, default values, inheritance chain). Without a class name, lists all known classes.
get_project_settings / set_project_setting - Read/write any section/key in
project.godotlist_autoloads / set_autoload / remove_autoload - Manage autoload singletons
list_input_actions - List InputMap actions with bound events (keys, buttons, joypad)
Build & Dependency Analysis
list_export_presets - Parse
export_presets.cfg(no Godot spawn)export_project - Run
godot --headless --export-releasefor a preset (10-minute timeout)upgrade_project - Run
godot --headless --upgrade+--importto migrate to the current engine versionread_project_file - Read any text file inside the project root
get_dependency_graph - Forward + reverse dependency graph across scenes/scripts/resources/shaders; the cached filesystem scan is the default, while
engine: trueenriches binary, UID, and loader-reported dependencies through headless Godotfind_usages - Reverse dependency lookup: "what references
res://foo.gd?" with the same optional engine enrichmentlist_project_files - List tracked assets by kind
Project-targeted tools accept project_path, but it is optional when Godot has an opened project. If exactly one open project is detected, the server uses it by default. If multiple projects are open, provide project_name or project_path; ambiguous requests report the available open projects so the client can ask which one to use.
Engine-dependent operations are executed by headless Godot through the bundled godot_operations.gd script. Script reads/edits and scene/script inventories use containment-checked filesystem fast paths, avoiding a Godot startup for operations that do not require engine semantics.
For multi-step scene authoring, prefer apply_scene_changes over repeated add_node, modify_node, and remove_node calls. Changes are evaluated in order against one in-memory scene, packed once, and saved only when every change succeeds. Scene mutations are serialized per project and scene to prevent concurrent MCP calls from overwriting each other.
MCP capabilities
The server advertises the standard MCP capabilities and uses them alongside the tool surface:
tools— every tool is annotated withreadOnlyHint,destructiveHint,idempotentHint, oropenWorldHint(per the MCP spec) so clients can show appropriate confirmation prompts and badges. Mutation tools emitnotifications/resources/list_changedafter a successful change.resources(withlistChanged) — read-only Godot content is exposed as resources under thegodot://URI scheme:godot://projects— registered projects and their stable IDs.godot://project/{project_id}— metadata pinned to one canonical project.godot://scene/{project_id}/{path}— serialized node tree pinned to a project;{path}is a percent-encodedres://path.godot://script/{project_id}/{path}— project-pinned GDScript source, read without spawning Godot. Legacy unqualified URIs remain readable when exactly one project is resolvable, but are no longer listed. Templates are exposed viaresources/templates/listso clients can populate a resource picker.
prompts— workflow templates:new-2d-player,new-3d-player,gdscript-conventions, andaudit-scene.logging— diagnostic logs (headless spawn timing, parse warnings, non-zero exits) are streamed asnotifications/message. Clients can change verbosity withlogging/setLevel.
The server also sends an instructions payload during initialization so clients can guide the model on resource usage and project selection.
Related MCP server: Godot MCP
Prerequisites
Node.js 18.0.0 or higher
Godot 4.x installed and accessible via PATH or
GODOT_PATHenvironment variable
Installation
# Clone the repository
git clone https://github.com/koltyakov/godot-mcp.git
cd godot-mcp
# Install dependencies
npm install
# Build
npm run buildConfiguration
Optional live editor bridge
Copy addons/godot_mcp_bridge into the target project's addons directory, then enable Godot MCP Editor Bridge under Project Settings → Plugins. The plugin binds only to 127.0.0.1, generates a fresh 256-bit token for each editor session, and publishes a short-lived descriptor under .godot/godot_mcp_bridge/instances.
The bridge is read-mostly. It exposes the active in-memory scene, current selection, open scenes, play state, and performance without permitting arbitrary method calls. Live scene reads include ownership, instantiated-scene provenance, persistent signals, and conservative dirty-state confidence. Godot versions with an unsaved-scenes API provide exact scene status; Godot 4.3 reports tracked dirty transitions but leaves potentially clean scenes unknown because direct unsaved markers are not public. Inactive tabs and unsaved script buffers are not inspected. Explicit play controls may trigger Godot's normal run-bar autosave behavior, so they are scheduled as project mutations and emit resource invalidation. All existing disk/headless tools continue working when the plugin is absent.
VS Code / Copilot
Add to your VS Code settings (.vscode/mcp.json):
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/path/to/godot-mcp/dist/index.js"],
"env": {
"GODOT_PATH": "/Applications/Godot.app/Contents/MacOS/Godot" // Adjust path as needed
}
}
}
}Usage Examples
Create a new project
Create a new Godot project called "MyGame" at /path/to/projects/MyGameCreate a player scene
Create a 2D player scene with a CharacterBody2D root,
add a Sprite2D and CollisionShape2D, and attach a movement scriptAdd animation
Add a jump animation to the player scene that modifies
the position.y property over 0.5 secondsValidate a project at runtime
Run the project diagnostics for 120 frames and fix any script or runtime errorsrun_project_diagnostics supports a specific scene_path, deterministic fixed_fps, bounded frame count and timeout, and output limits. Diagnostics include severity plus res:// file and line/column locations when Godot reports them.
Development
# Run directly from TypeScript
npm run dev
# Build for production
npm run build
# Run unit tests
npm test
# Run tests with coverage
npm run test:coverage
# Run the built server
npm startEnvironment Variables
GODOT_PATH- Path to Godot executable (optional if Godot is in PATH)GODOT_MCP_MAX_PROCESSES- Maximum concurrent managed Godot processes (default4)
Tool calls support MCP cancellation. Queued work is removed immediately, running Godot process groups are terminated, and all managed children are cleaned up when the server or transport closes. Large operation payloads are passed through owner-only temporary request files instead of command-line arguments.
Supported Node Types
The server supports creating most common Godot node types including:
2D: Node2D, Sprite2D, Camera2D, CharacterBody2D, RigidBody2D, StaticBody2D, Area2D, CollisionShape2D, TileMap, etc.
3D: Node3D, MeshInstance3D, Camera3D, CharacterBody3D, RigidBody3D, DirectionalLight3D, etc.
UI: Control, Label, Button, TextureRect, Panel, etc.
Audio: AudioStreamPlayer, AudioStreamPlayer2D, AudioStreamPlayer3D
Animation: AnimationPlayer, AnimatedSprite2D
And many more...
Supported Resource Types
Shapes: CircleShape2D, RectangleShape2D, BoxShape3D, SphereShape3D, etc.
Meshes: BoxMesh, SphereMesh, CylinderMesh, PlaneMesh, etc.
Materials: StandardMaterial3D, ShaderMaterial, CanvasItemMaterial
Textures: GradientTexture1D, GradientTexture2D, NoiseTexture2D
And more...
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/koltyakov/godot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server