A full-featured bridge between Claude and Godot Engine 4.x projects. Gives you direct control over scene files, node hierarchies, GDScript CRUD, shader management, animation, tilemaps, physics, audio, navigation, and UI elements without needing the editor open. The 17 composite tools let you create and modify .tscn files, attach scripts, wire up signals, configure input maps, and manage resources in a single call. Built with token optimization in mind through compressed tool descriptions and an on-demand help system. Supports both stdio and HTTP transports, though the author notes recent architecture stabilization after earlier credential handling churn. If you're prototyping game mechanics with AI or automating Godot workflows, this handles the engine-specific plumbing so you can stay in the conversation.
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 |
|---|---|---|
| better-code-review-graph | Knowledge graph for token-efficient code reviews -- semantic search and call-... | MCP |
| better-email-mcp | IMAP/SMTP email for AI agents -- read, send, organize folders, and manage att... | MCP |
| better-godot-mcp | Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted g... | MCP |
| better-notion-mcp | Markdown-first Notion for AI agents -- pages, databases, blocks, and comments... | MCP |
| better-telegram-mcp | Telegram for AI agents -- messages, chats, media, and contacts across both bo... | MCP |
| claude-plugins | Claude Code plugin marketplace for the n24q02m MCP servers -- install web sea... | Marketplace |
| imagine-mcp | Image and video understanding + generation for AI agents -- across Gemini, Op... | MCP |
| jules-task-archiver | Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling |
| mcp-core | Shared foundation for building MCP servers -- Streamable HTTP transport, OAut... | MCP |
| mnemo-mcp | Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP |
| qwen3-embed | Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library |
| skret | Secrets without the server. | CLI |
| tacet | TACET: a self-distilling neuro-symbolic cascade that amortises LLM cost in kn... | Tooling |
| web-core | Shared web infrastructure package for search, scraping, HTTP security, and st... | Library |
| wet-mcp | Open-source MCP server for AI agents: web search, content extraction, and lib... | MCP |
.tscn files directly without Godot runninghelp toolRuns 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 (only run/stop/export and editor actions need the binary).
npx -y @n24q02m/better-godot-mcp@latest
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.
docker run -i --rm -v /path/to/your/godot/project:/project n24q02m/better-godot-mcp
The image is published for amd64 and arm64. Mount your project directory so the server can read and write scene, script, and resource files.
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
| Tool | Actions | Description |
|---|---|---|
project | info, version, run, stop, settings_get, settings_set, export | Project metadata, run/stop, and settings |
scenes | create, list, info, delete, duplicate, set_main | Scene file management |
nodes | add, remove, rename, list, set_property, get_property | Scene tree node manipulation |
scripts | create, read, write, attach, list, delete | GDScript file CRUD |
editor | launch, status | Launch Godot editor and check status |
config | status, set, detect_godot, check | Server configuration and environment detection |
resources | list, info, delete, import_config | Resource file management |
input_map | list, add_action, remove_action, add_event | Input action and event mapping |
signals | list, connect, disconnect | Signal connections |
animation | create_player, add_animation, add_track, add_keyframe, list | Animation players and tracks |
tilemap | create_tileset, add_source, set_tile, paint, list | TileMap and TileSet management |
shader | create, read, write, get_params, list | Shader file CRUD with Godot 4 syntax |
physics | layers, collision_setup, body_config, set_layer_name | Collision layers and physics bodies |
audio | list_buses, add_bus, add_effect, create_stream | Audio bus and effect management |
navigation | create_region, add_agent, add_obstacle | Navigation regions, agents, and obstacles |
ui | create_control, set_theme, layout, list_controls | UI control creation and theming |
help | - | Get full documentation for any tool |
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 (scenes: create/list/info/delete/duplicate/set_main) | Yes (create/save) | Yes (create/save) | Yes (create/read/modify) |
| Node tree manipulation | Yes (nodes: add/remove/rename/list/get+set_property) | Partial (add only) | Yes (add/edit/remove) | Yes (add/remove/reparent) |
| GDScript file CRUD | Yes (scripts: create/read/write/attach/list/delete) | No | No | Partial (create from template + runtime eval) |
| Shader file CRUD | Yes (shader: create/read/write/get_params/list) | No | No | Partial (create/read .gdshader) |
| Animation authoring | Yes (animation: player/track/keyframe) | No | No | Yes (player/tween/state machine) |
| TileMap / TileSet | Yes (tilemap: tileset/source/set_tile/paint) | No | No | Yes (TileMapLayer cells) |
| Physics layers / bodies | Yes (physics: layers/collision/body_config) | No | No | Yes (collision/joints/raycast) |
| Audio bus management | Yes (audio: buses/effects/streams) | No | No | Yes (buses/routing/effects) |
| Navigation setup | Yes (navigation: region/agent/obstacle) | No | No | Yes (navigation) |
| UI control authoring | Yes (ui: control/theme/layout) | No | Partial (via add node) | Yes (controls/themes/menus) |
| Input map editing | Yes (input_map: action/event) | No | No | Yes (actions/key bindings) |
| Signal connections | Yes (signals: connect/disconnect/list) | No | No | Yes (connect/emit/await) |
| Launch editor / run project | Yes (editor, project run/stop) | Yes | Yes | Yes |
| Works without running editor | Yes (text-based .tscn parsing) | 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 + --http) | 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 help) | No | No | No |
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 |
|---|---|---|---|
GODOT_PROJECT_PATH | No | - | Default project path (tools also accept a project_path param) |
GODOT_PATH | No | Auto-detected | Path to the Godot binary |
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 |
|---|---|---|---|
MCP_TRANSPORT | No | stdio | Set to http for Streamable HTTP transport |
PORT | No | 0 (auto-assign) | HTTP port (HTTP mode only) |
HOST | No | Server default | HTTP host (HTTP mode only) |
.tscn) are parsed/modified via text manipulation, not Godot's internal APIrun/stop/export actions require Godot binary to be installedgit 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 mode
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 |
MIT -- See LICENSE.
GODOT_PROJECT_PATHDefault Godot project path. Most tools also accept project_path parameter.
GODOT_PATHPath to Godot binary. Auto-detected if not set.
miapre/html-to-figma-design-system
ie3jp/illustrator-mcp-server
coding-solo/godot-mcp
ivanmurzak/unity-mcp
yctimlin/mcp_excalidraw
figma/mcp-server-guide