Better Godot MCP
Better Godot MCP is a local, credential-free MCP server exposing 17 composite tools for AI-assisted Godot 4.x game development, letting an AI agent read and write your project files directly.
Project: read metadata, check engine version, run/stop the game, view run logs, get/set project settings, export builds
Scenes: create, list, inspect, delete, duplicate
.tscnfiles, and set the main sceneNodes: add, remove, rename, list, and get/set properties on scene tree nodes
Scripts: create, read, write, attach, list, and delete GDScript files
Editor: launch the Godot editor and check its status
Config: view server config, update settings, detect the Godot binary, and verify project/environment availability
Resources: list, inspect, delete resource files, and view import settings
Input map: list, add, and remove input actions and add key/mouse/joypad events
Signals: list, connect, and disconnect signal connections in scenes
Animation: create AnimationPlayers, add animations, tracks, and keyframes
TileMap: create TileSets, add sources, set tiles, and paint tiles
Shader: create, read, write, list
.gdshaderfiles and get shader parametersPhysics: manage collision layers, collision setup, body config, and layer names
Audio: list/add audio buses, add effects, and create stream players
Navigation: create navigation regions and add agents and obstacles
UI: create Control nodes, set themes, apply layouts, and list controls
Help: fetch full documentation for any tool to save tokens
Transport/ops: stdio by default or Streamable HTTP (
--http), plusdetectanddoctorCLI diagnostics; runs via npx or Docker (amd64/arm64)
Enables AI agents to manage Godot Engine projects through a suite of composite tools for scene manipulation (.tscn), GDScript and shader editing, node property configuration, input mapping, and project export operations.
ARCHIVED 2026-09-13 — This repository is no longer maintained. Use the Godot editor + GDScript CLI toolchain instead of this MCP server. Existing installations keep working but receive no updates or support.
Better Godot MCP
mcp-name: io.github.n24q02m/better-godot-mcp
Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted game development.
Project | Tagline | Tag |
Peer AI agents chat in a shared folder — no human relay, no orchestrator, wor... | Tooling | |
Knowledge graph for token-efficient code reviews -- semantic search and call-... | MCP | |
2-way Google Drive sync with .driveignore filter — rclone engine, Windows tray | Tooling | |
IMAP/SMTP email for AI agents -- read, send, organize folders, and manage att... | MCP | |
Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted g... | MCP | |
Markdown-first Notion for AI agents -- pages, databases, blocks, and comments... | MCP | |
Drop-in python-semantic-release fork with built-in release-safety guards (orp... | Tooling | |
Telegram for AI agents -- messages, chats, media, and contacts across both bo... | MCP | |
Google Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch... | MCP | |
Claude Code plugin marketplace for the n24q02m MCP servers -- install web sea... | Marketplace | |
Image and video understanding + generation for AI agents -- across Gemini, Op... | MCP | |
Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling | |
Shared foundation for building MCP servers -- Streamable HTTP transport, OAut... | MCP | |
Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP | |
Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library | |
Secrets without the server. | CLI | |
A self-distilling neuro-symbolic cascade that amortises LLM cost across knowl... | Tooling | |
Shared web infrastructure package for search, scraping, HTTP security, and st... | Library | |
Open-source MCP server for AI agents: web search, content extraction, and lib... | MCP |
Table of contents
Related MCP server: Godot MCP Unified
Features
17 composite mega-tools -- scene, node, script, shader, animation, tilemap, physics, audio, navigation, UI, and more
Full scene control -- create, parse, and modify
.tscnfiles directly without Godot runningGDScript CRUD -- create, read, write, and attach scripts in a single call
Tiered token optimization -- compressed descriptions + on-demand
helptool
Install
Runs over stdio by default. No credentials, no account, no relay -- the server reads and writes your local Godot project files directly. Godot 4.x is optional for file operations; only run/stop/export and editor actions need a Godot binary. The detector accepts Godot >=4.1. Live engine compatibility is currently verified with Godot 4.7.1 stable; this does not claim that every future minor release has been verified.
Via npx (recommended)
npx -y @n24q02m/better-godot-mcp@latestMCP client config
Add to your client's MCP config (Claude Code, Cursor, Windsurf, Codex, mcp.json):
{
"mcpServers": {
"better-godot-mcp": {
"command": "npx",
"args": ["-y", "@n24q02m/better-godot-mcp"],
"env": {
"GODOT_PROJECT_PATH": "/path/to/your/godot/project"
}
}
}
}GODOT_PROJECT_PATH is optional -- every tool also accepts a project_path argument per call.
Via Docker
docker run -i --rm -v /path/to/your/godot/project:/project n24q02m/better-godot-mcpThe image is published for amd64 and arm64. Mount your project directory so the server can read and write scene, script, and resource files.
Smithery
better-godot-mcp ships a smithery.yaml so it can be discovered and deployed through Smithery. Smithery launches the server over stdio via npx -y @n24q02m/better-godot-mcp, and no configuration is required to start -- the server has no credentials and reads your local Godot project files directly.
Documentation
Full setup guide at mcp.n24q02m.com/servers/better-godot-mcp/setup/ -- install steps for Claude Code, Codex, Gemini CLI, Cursor, Windsurf, and mcp.json.
Install with AI agent -- paste this to your AI coding agent:
Install MCP server
better-godot-mcpfollowing the steps at https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-godot-mcp/setup-with-agent.md
Tools
Tool | Actions | Description |
|
| Project metadata, run/stop, and settings |
|
| Scene file management |
|
| Scene tree node manipulation |
|
| GDScript file CRUD |
|
| Launch Godot editor and check status |
|
| Server configuration and environment detection |
|
| Resource file management |
|
| Input action and event mapping |
|
| Signal connections |
|
| Animation players and tracks |
|
| TileMap and TileSet management |
|
| Shader file CRUD with Godot 4 syntax |
|
| Collision layers and physics bodies |
|
| Audio bus and effect management |
|
| Navigation regions, agents, and obstacles |
|
| UI control creation and theming |
| - | Get full documentation for any tool |
Comparison
How better-godot-mcp stacks up against direct competitors in each pillar:
Capability | better-godot-mcp | Coding-Solo/godot-mcp | bradypp/godot-mcp | tugcantopaloglu/godot-mcp |
Scene file management | Yes ( | Yes (create/save) | Yes (create/save) | Yes (create/read/modify) |
Node tree manipulation | Yes ( | Partial (add only) | Yes (add/edit/remove) | Yes (add/remove/reparent) |
GDScript file CRUD | Yes ( | No | No | Partial (create from template + runtime eval) |
Shader file CRUD | Yes ( | No | No | Partial (create/read .gdshader) |
Animation authoring | Yes ( | No | No | Yes (player/tween/state machine) |
TileMap / TileSet | Yes ( | No | No | Yes (TileMapLayer cells) |
Physics layers / bodies | Yes ( | No | No | Yes (collision/joints/raycast) |
Audio bus management | Yes ( | No | No | Yes (buses/routing/effects) |
Navigation setup | Yes ( | No | No | Yes (navigation) |
UI control authoring | Yes ( | No | Partial (via add node) | Yes (controls/themes/menus) |
Input map editing | Yes ( | No | No | Yes (actions/key bindings) |
Signal connections | Yes ( | No | No | Yes (connect/emit/await) |
Launch editor / run project | Yes ( | Yes | Yes | Yes |
Works without running editor | Yes (text-based | Yes (headless GDScript bridge) | Yes (headless GDScript bridge) | Partial (CLI headless or live TCP socket) |
No credentials stored (TC-Local) | Yes | Yes | Yes | Yes |
stdio + HTTP transports | Yes (stdio default + | No (stdio only) | No (stdio only) | No (stdio only) |
Docker image (amd64 + arm64) | Yes | No | No | No |
Token-tiered tool descriptions | Yes (compact + on-demand | No | No | No |
Configuration
The Godot binary is auto-detected from common install locations and PATH. No environment variables are required for basic usage. Optionally set GODOT_PROJECT_PATH and GODOT_PATH to override the defaults.
Variable | Required | Default | Description |
| No | - | Default project path (tools also accept a |
| No | Auto-detected | Path to the Godot binary |
HTTP transport
The server runs over stdio by default. To serve over Streamable HTTP instead, pass --http or set MCP_TRANSPORT=http (TRANSPORT_MODE=http is also accepted). HTTP mode exposes an unauthenticated /mcp endpoint -- there are no credentials to protect, so it is meant for trusted local or self-hosted use.
Variable | Required | Default | Description |
| No |
| Set to |
| No |
| HTTP port (HTTP mode only) |
| No | Server default | HTTP host (HTTP mode only) |
Limitations
Requires a Godot 4.x project structure; a Godot binary is optional for file operations
Scene files (
.tscn) are parsed/modified via text manipulation, not Godot's internal APIrun/stop/exportactions require Godot binary to be installedDocker mode has limited filesystem access (mount your project directory)
CLI
The better-godot-mcp binary runs the MCP server by default (stdio; add --http for Streamable HTTP). It also exposes two diagnostic subcommands for checking your Godot environment before wiring up an MCP client.
Command | Description |
| Start the MCP server (stdio default; |
| Print the detected Godot binary as JSON (path, version, source); exits non-zero when none is found |
| Health-check the Godot binary and the current project ( |
# Detect the Godot binary (JSON output)
npx -y @n24q02m/better-godot-mcp detect{
"found": true,
"path": "/path/to/godot",
"version": {
"major": 4,
"minor": 7,
"patch": 1,
"label": "stable.official",
"raw": "4.7.1.stable.official"
},
"source": "system"
}# Health-check the Godot binary and project
npx -y @n24q02m/better-godot-mcp doctor[ok] godot binary: /path/to/godot (source: system)
[ok] godot version: 4.7.1.stable.official
[warn] project: no project.godot found at /path/to/cwd (set GODOT_PROJECT_PATH)detect exits 1 when no Godot binary is found; doctor exits 1 when the binary is missing (a missing project.godot is only a warning).
Security
Binary detection -- Multi-path Godot detection (env, PATH, common locations)
Project validation -- Verifies project.godot exists before operations
Cross-platform -- Windows, macOS, Linux path handling
Build from source
git clone https://github.com/n24q02m/better-godot-mcp.git
cd better-godot-mcp
bun install
bun run dev # stdio mode (default)
bun run dev:http # Streamable HTTP modeTrust model
This plugin implements TC-Local (no auth required -- no credentials stored). See the trust model reference for full classification.
Mode | Storage | Encryption | Who can read your data? |
stdio (default) | N/A (no credentials) | N/A | N/A |
HTTP self-host | N/A (no credentials) | N/A | N/A |
License
Apache-2.0 -- See LICENSE.
Available Tools
17 toolsanimationC
Animation management. Actions: create_player|add_animation|add_track|add_keyframe|list. Use help tool for full docs.
Inputs: action (required), loop, name, parent, +7 more. Returns: object
audioC
Audio bus and stream management. Actions: list_buses|add_bus|add_effect|create_stream. Use help tool for full docs.
Inputs: action (required), bus, name, parent, +6 more. Returns: object
configAIdempotent
Server configuration and environment.
Actions (required params -> optional):
status: current config
set (key, value): update setting
detect_godot: find Godot binary path
check: verify project and Godot availability
Inputs: action (required), key, value. Returns: object
editorAIdempotent
Godot editor control.
Actions (required params -> optional):
launch (-> project_path): open editor
status (-> project_path): check if editor is running
For running the game, use project(action="run") instead.
Inputs: action (required), project_path. Returns: object
helpARead-onlyIdempotent
Full documentation. Omit topic for the overview; use a topic when compressed descriptions are insufficient.
Inputs: topic.
input_mapADestructive
Input action management.
Actions (required params -> optional):
list (-> project_path): all input actions
add_action (action_name -> deadzone=0.5, project_path)
remove_action (action_name -> project_path)
add_event (action_name, event_type, event_value -> project_path)
event_type: key | mouse | joypad. event_value: e.g., KEY_SPACE.
Inputs: action (required), deadzone, event_type, action_name, +2 more. Returns: object
nodesADestructive
Scene node operations.
Actions (required params -> optional):
add (scene_path, name -> type="Node", parent=".", project_path)
remove (scene_path, name -> project_path)
rename (scene_path, name, new_name -> project_path)
list (scene_path -> project_path)
set_property (scene_path, name, property, value -> project_path)
get_property (scene_path, name, property -> project_path)
Node paths: relative to scene root using "/" (e.g., "Player/Sprite2D"). Use "." for root.
Inputs: action (required), name, type, value, +5 more. Returns: object
physicsC
Physics config. Actions: layers|collision_setup|body_config|set_layer_name. Use help tool for full docs.
Inputs: action (required), mass, name, dimension, +6 more. Returns: object
projectA
Godot project operations.
Actions (required params -> optional):
info (-> project_path): project metadata
version: Godot engine version
run (-> scene_path, project_path): launch game
logs (-> pid): last captured stdout/stderr lines from a run (default: most recently started)
stop: stop running game
settings_get (key -> project_path): read project setting
settings_set (key, value -> project_path): write project setting
export (preset, output_path -> project_path): export game build
Inputs: action (required), key, pid, value, +4 more. Returns: object
resourcesBDestructive
Resource file management.
Actions (required params -> optional):
list (-> type, project_path): browse resources (type: image|audio|font|shader|scene|resource)
info (resource_path -> project_path): resource metadata
delete (resource_path -> project_path)
import_config (resource_path -> project_path): view import settings
Inputs: action (required), type, project_path, resource_path. Returns: object
scenesADestructive
Scene file (.tscn) CRUD.
Actions (required params -> optional):
create (scene_path -> root_type="Node2D", root_name, project_path)
list (-> project_path)
info (scene_path -> project_path)
delete (scene_path -> project_path)
duplicate (scene_path, new_path -> project_path)
set_main (scene_path -> project_path)
scene_path: relative to project root (e.g., "scenes/main.tscn"), NOT res:// prefix. Use nodes tool to edit nodes within a scene.
Inputs: action (required), new_path, root_name, root_type, +2 more. Returns: object
scriptsADestructive
GDScript file CRUD.
Actions (required params -> optional):
create (script_path -> extends="Node", content, project_path): generate template
read (script_path -> project_path)
write (script_path, content -> project_path): replace entire file
attach (script_path, scene_path, node_name -> project_path): link to scene node
list (-> project_path)
delete (script_path -> project_path)
script_path: relative to project root (e.g., "scripts/player.gd").
Inputs: action (required), content, extends, node_name, +3 more. Returns: object
shaderC
Godot shader management. Actions: create|read|write|get_params|list. Use help tool for full docs.
Inputs: action (required), content, shader_path, shader_type, +1 more. Returns: object
signalsADestructive
Signal connection management.
Actions (required params -> optional):
list (scene_path -> project_path): all signal connections
connect (scene_path, signal, from, to, method -> flags, project_path)
disconnect (scene_path, signal, from, to, method -> project_path)
Inputs: action (required), to, from, flags, +4 more. Returns: object
tilemapC
TileSet and TileMap management. Actions: create_tileset|add_source|set_tile|paint|list. Use help tool for full docs.
Inputs: action (required), tile_size, scene_path, project_path, +2 more. Returns: object
uiC
UI Control nodes and themes. Actions: create_control|set_theme|layout|list_controls. Use help tool for full docs.
Inputs: action (required), name, type, parent, +5 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Each tool targets a distinct Godot subsystem, and explicit notes (e.g., editor launch vs project run) reduce confusion. Some overlap remains between project settings and config, and between scenes and generic resource management.
Tool names follow a consistent single-noun domain pattern with verb-style actions underneath. Minor inconsistencies like plural scenes/nodes/scripts vs singular animation/shader and the underscore in input_map prevent a perfect score.
At roughly 16-17 tools, the server sits at the upper edge of the ideal range, but each tool covers a separate Godot domain and earns its place. It is slightly heavy but not bloated.
The surface covers the core Godot development lifecycle: project, editor, scenes, scripts, resources, input, signals, rendering, physics, audio, navigation, and UI. Minor gaps exist, such as no generic resource creation and abbreviated documentation for several advanced domains.
Maintenance
Related MCP Connectors
Gamedev tools for AI agents: level design, renders, sprites, GLB optimizer. Pay per call with x402.
Discover AI tools for game development — 100+ tools indexed by engine, task, and pricing.
AI game assets for agents: consistent sprites, 2D animations, tiles, maps, music and engine exports.
30+ deterministic dev and delivery tools: linting, metrics, diagrams, model advice, AI-text checks.
Related MCP Servers
- AlicenseAqualityAmaintenanceMarkdown-first MCP server for Notion that provides 7 composite action-based tools consolidating 28+ REST API endpoints, enabling AI agents to efficiently manage pages, databases, blocks, and content with automatic pagination and bulk operations.1097 npm36Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables complete natural language control of Godot Engine 4.5+ with 76 tools for managing scripts, scenes, nodes, animations, physics, tilemaps, audio, shaders, navigation, particles, UI, lighting, assets, and exports. Integrates with Claude Desktop, VS Code, and Ollama for AI-assisted game development.192 npm2MIT
- AlicenseAqualityAmaintenanceWeb search (embedded SearXNG), content extraction, and library docs indexing with hybrid search. No API keys required.624Apache 2.0
- AlicenseAqualityAmaintenancePersistent AI memory with SQLite hybrid search (FTS5 + semantic), built-in Qwen3 embedding, and rclone sync across machines.1513 npm12Apache 2.0