Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted game development.
Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted game development.
better-godot-mcp · v1.21.0 (latest)
by N24q02m
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.
Sister projects from n24q02m (click to expand)
| Project | Tagline | Tag |
|---|---|---|
| agent-chat-plugin | Peer AI agents chat in a shared folder — no human relay, no orchestrator, wor... | Tooling |
| better-code-review-graph | Knowledge graph for token-efficient code reviews -- semantic search and call-... | MCP |
| better-drive | 2-way Google Drive sync with .driveignore filter — rclone engine, Windows tray | Tooling |
| 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-semantic-release | Drop-in python-semantic-release fork with built-in release-safety guards (orp... | Tooling |
| better-telegram-mcp | Telegram for AI agents -- messages, chats, media, and contacts across both bo... | MCP |
| better-workspace-mcp | Google Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch... | 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 | A self-distilling neuro-symbolic cascade that amortises LLM cost across knowl... | 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 |
Table of contents
- Features
- Install
- Smithery
- Documentation
- Tools
- Comparison
- Configuration
- CLI
- Security
- Build from source
- Trust model
- License
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 running - GDScript 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 (only run/stop/export and editor actions need the binary).
Via npx (recommended)
npx -y @n24q02m/better-godot-mcp@latest
MCP 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-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.
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 |
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 |
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 (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 |
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 |
|---|---|---|---|
GODOT_PROJECT_PATH |
No | - | Default project path (tools also accept a project_path param) |
GODOT_PATH |
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 |
|---|---|---|---|
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) |
Limitations
- Requires Godot 4.x project structure
- Scene files (
.tscn) are parsed/modified via text manipulation, not Godot's internal API run/stop/exportactions require Godot binary to be installed- Docker 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 |
|---|---|
better-godot-mcp |
Start the MCP server (stdio default; --http for Streamable HTTP) |
better-godot-mcp detect |
Print the detected Godot binary as JSON (path, version, source); exits non-zero when none is found |
better-godot-mcp doctor |
Health-check the Godot binary and the current project (GODOT_PROJECT_PATH, else the working directory) |
# Detect the Godot binary (JSON output)
npx -y @n24q02m/better-godot-mcp detect
{
"found": true,
"path": "/path/to/godot",
"version": {
"major": 4,
"minor": 6,
"patch": 3,
"label": "stable.official",
"raw": "4.6.3.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.6.3.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 mode
Trust 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.