Godot MCP

Pure-Python FastMCP server for Godot 4 — 28 headless & animation tools. Runs via uvx.

OtherPythonv1.0.4

godot-mcp — Pure Python FastMCP Server for Godot 4

Python FastMCP License: MIT M8ven Verified

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

VariableDescription
GODOT_PATHPath to the Godot 4 executable (auto-detected if unset)
DEBUG"true" enables verbose stderr logging

Tools (28 total)

Core Runtime (14)

ToolDescription
get_godot_versionReturn installed Godot version
launch_editorOpen Godot editor for a project
run_projectRun project in debug mode, capture output
get_debug_outputRead stdout/stderr from running project
stop_projectKill running project, return final output
list_projectsFind Godot projects in a directory
get_project_infoMetadata, file counts, version
create_sceneCreate a new .tscn file via GDScript
add_nodeAdd a node to an existing scene
load_spriteLoad texture onto Sprite2D/TextureRect
export_mesh_libraryExport .tscn as MeshLibrary .res
save_sceneSave / save-as a scene file
get_uidGet UID for a Godot 4.4+ resource
update_project_uidsResave all resources to regenerate UIDs

Animation Text Pipeline (4)

ToolDescription
quantize_animation_keyframesRound timestamps to fixed fps increments (12/24 fps anime look)
set_animation_interpolation_modeBulk-swap easing: linear, cubic, nearest/stepped
stitch_animation_libraryMerge external .glb/.tres clips into master AnimationLibrary
generate_track_filterGenerate AnimationNodeBlendFilter for upper/lower body isolation

AnimationTree Blueprinting (3)

ToolDescription
generate_state_machineInject AnimationNodeStateMachine into a .tscn file
compile_state_transitionsWrite transition arrows with conditions
calculate_blend_space_2dGenerate 2D blend space for directional locomotion

Camera & Cinematic (3)

ToolDescription
generate_bezier_camera_pathCatmull-Rom bezier Path3D + PathFollow3D + Camera3D with tension control
inject_lookat_trackingGenerate LookAt tracking GDScript for Camera3D
build_camera_switcher_timelineWrite Animation that switches Camera3D.current at timestamps

NPR Materials & Shaders (2)

ToolDescription
batch_shader_uniformsBulk-override shader_parameter/* in all .tres files
remap_texture_channelsWire textures into material property slots

Pipeline Automation (2)

ToolDescription
toggle_movie_makerEdit project.godot to enable/disable Movie Maker mode
run_headless_diagnosticsValidate 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:

  1. Subprocess bridge — core 14 tools invoke godot_operations.gd headlessly via subprocess.run()
  2. Text manipulation — pro-port 14 tools parse/write .tscn, .tres, project.godot files as plain text using Python stdlib re only

Requirements

  • Python 3.10+
  • Godot 4.x installed (set GODOT_PATH or ensure it is on $PATH)
  • uv or pip

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx godot-mcp-uvx

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jxlee007-godot-mcp": {
      "command": "uvx",
      "args": [
        "godot-mcp-uvx"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

godot-mcp-uvxpypi

Compatible MCP Clients

Godot MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More