@godot-loop-mcp/server
v0.3.1
Published
MCP bridge server for godot-loop-mcp.
Maintainers
Readme
@godot-loop-mcp/server
TypeScript bridge server for godot-loop-mcp.
Requirements
- Node.js
22.14.0+
Install / run
From a Godot project root:
npx @godot-loop-mcp/serverIf the current directory is not the Godot project root, set GODOT_LOOP_MCP_REPO_ROOT.
Logging
- Default console output is
WARNand above so MCP clients do not get flooded with heartbeat chatter - Detailed logs still go to
.godot/mcp/*.logwith a default file threshold ofDEBUG - Override thresholds with
GODOT_LOOP_MCP_CONSOLE_LOG_LEVELandGODOT_LOOP_MCP_FILE_LOG_LEVEL
Local development
npm ci
npm run typecheck
npm run devTo verify the published entry locally:
npm run build
npm run startThe published CLI runs from compiled JS in dist/. The source repo still uses Node's --experimental-strip-types flow for local development, and prepack rebuilds dist/ before npm pack / npm publish.
Publishability checks:
npm run pack:dry-run
npm run publish:dry-runFor the M1 read-only observation smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m1For the M2 edit/play smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m2For the M3 search / UID / dynamic catalog smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m3For the M4 verification / prompts / template smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m4For the M4 adapter-detection smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m4:adaptersFor the M4 GUI screenshot / runtime-debug smoke:
$env:GODOT_LOOP_MCP_GODOT_GUI_BIN = (Get-Command godot.exe).Source
npm run smoke:m4:guiFor the M6 dangerous-mode smoke:
$env:GODOT_LOOP_MCP_GODOT_BIN = (Get-Command godot_console.exe).Source
npm run smoke:m6The startup MCP catalog is security-aware and intentionally stable for snapshotting clients such as Codex/Claude. Before the addon session becomes ready, the server still advertises the full non-dangerous surface; tools that depend on an active addon session return No ready addon session. until handshake completes. Once the addon is ready, tool calls continue to enforce addon capability and security checks at execution time.
On Godot 4.5+, get_output_logs / get_godot_errors prefer the addon-side editor console ring buffer via OS.add_logger(). In headless play_scene, the addon launches an external runtime and returns runtime-log-file entries from .godot/mcp/runtime.log once output is available. On Godot 4.4, the server falls back to .godot/mcp addon/server logs when editor/runtime capture is unavailable.
Security and audit notes:
GODOT_LOOP_MCP_SECURITY_LEVELcontrols the server-side maximum levelGODOT_LOOP_MCP_REPO_ROOToverrides workspace detection when the server is not launched from a Godot project rootGODOT_LOOP_MCP_ENABLE_EDITOR_SCRIPT,GODOT_LOOP_MCP_ALLOWED_WRITE_PREFIXES, andGODOT_LOOP_MCP_ALLOWED_SHELL_COMMANDSare enforced by the addon for dangerous-mode tools.godot/mcp/audit.logrecords tool/resource/prompt access with hashed arguments and duration- dangerous tools stay hidden unless both server and addon opt into
Dangerous
Relevant guides:
