About Godot MCP
Godot MCP is a Python FastMCP server for operating Godot 4 projects, aimed at game developers and project workflows. It combines headless runtime operations with text-based scene, animation, camera, and shader editing tools.
Key features
- 01Runs and inspects Godot projects
- 02Creates and edits scenes and nodes
- 03Builds animation state machines and blend spaces
- 04Generates camera paths and tracking
- 05Edits shader materials and project settings
Use cases
- 01Run a project and inspect debug output
- 02Create or update Godot scenes
- 03Set up animation transitions and locomotion blending
- 04Automate camera and material edits
MCP support
The server exposes 28 Godot 4 project and animation tools to MCP clients. It runs over stdio and invokes Godot headlessly or edits project files as text.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
28Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEgodot-mcp — Pure Python FastMCP Server for Godot 4
A zero Node.js Model Context Protocol server for Godot 4 — translated from
Coding-Solo/godot-mcp and youichi-uda/godot-mcp-pro into pure Python using
the official FastMCP framework. Runs with ultra-low RAM via uvx.
Quick Start
You can invoke this server over standard I/O (stdio) from anywhere on your machine instantly using uvx without manually cloning files or configuring virtual environments:
# Run globally via uvx from PyPI (Bypasses local setup completely)
GODOT_PATH=/path/to/godot4 uvx --from godot-mcp-uvx godot-mcp
# Local development installation (For active contributors)
git clone https://github.com/jxlee007/godot_mcp
cd godot_mcp
uv tool install --editable .
MCP Client Configuration
Add this structural configuration block straight into your global client matrix environment profile (e.g., ~/.gemini/antigravity-cli/settings.json or Claude / Cline settings):
{
"mcpServers": {
"godot_render": {
"command": "uvx",
"args": [
"--from",
"godot-mcp-uvx",
"godot-mcp"
],
"env": {
"GODOT_PATH": "/path/to/godot4",
"DEBUG": "false"
}
}
}
}
Environment Variables
| Variable | Description |
|---|---|
GODOT_PATH | Path to the Godot 4 executable (auto-detected if unset) |
DEBUG | "true" enables verbose stderr logging |
Tools (28 total)
Core Runtime (14)
| Tool | Description |
|---|---|
get_godot_version | Return installed Godot version |
launch_editor | Open Godot editor for a project |
run_project | Run project in debug mode, capture output |
get_debug_output | Read stdout/stderr from running project |
stop_project | Kill running project, return final output |
list_projects | Find Godot projects in a directory |
get_project_info | Metadata, file counts, version |
create_scene | Create a new .tscn file via GDScript |
add_node | Add a node to an existing scene |
load_sprite | Load texture onto Sprite2D/TextureRect |
export_mesh_library | Export .tscn as MeshLibrary .res |
save_scene | Save / save-as a scene file |
get_uid | Get UID for a Godot 4.4+ resource |
update_project_uids | Resave all resources to regenerate UIDs |
Animation Text Pipeline (4)
| Tool | Description |
|---|---|
quantize_animation_keyframes | Round timestamps to fixed fps increments (12/24 fps anime look) |
set_animation_interpolation_mode | Bulk-swap easing: linear, cubic, nearest/stepped |
stitch_animation_library | Merge external .glb/.tres clips into master AnimationLibrary |
generate_track_filter | Generate AnimationNodeBlendFilter for upper/lower body isolation |
AnimationTree Blueprinting (3)
| Tool | Description |
|---|---|
generate_state_machine | Inject AnimationNodeStateMachine into a .tscn file |
compile_state_transitions | Write transition arrows with conditions |
calculate_blend_space_2d | Generate 2D blend space for directional locomotion |
Camera & Cinematic (3)
| Tool | Description |
|---|---|
generate_bezier_camera_path | Catmull-Rom bezier Path3D + PathFollow3D + Camera3D with tension control |
inject_lookat_tracking | Generate LookAt tracking GDScript for Camera3D |
build_camera_switcher_timeline | Write Animation that switches Camera3D.current at timestamps |
NPR Materials & Shaders (2)
| Tool | Description |
|---|---|
batch_shader_uniforms | Bulk-override shader_parameter/* in all .tres files |
remap_texture_channels | Wire textures into material property slots |
Pipeline Automation (2)
| Tool | Description |
|---|---|
toggle_movie_maker | Edit project.godot to enable/disable Movie Maker mode |
run_headless_diagnostics | Validate imports, UIDs, shader entry points via Godot CLI |
Architecture
src/godot_mcp/
├── __init__.py
├── server.py # FastMCP app — all 28 tools
└── scripts/
└── godot_operations.gd # Bundled GDScript engine (preserved untouched)
Two operation modes:
- Subprocess bridge — core 14 tools invoke
godot_operations.gdheadlessly viasubprocess.run() - Text manipulation — pro-port 14 tools parse/write
.tscn,.tres,project.godotfiles as plain text using Python stdlibreonly
Requirements
- Python 3.10+
- Godot 4.x installed (set
GODOT_PATHor ensure it is on$PATH) uvorpip
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.