Repository navigation
Releases
v0.12.0
Bounded 2D/UI scene construction, six uniformly presented sample games, and clearer installation/documentation.
The minimal platformer remains an internal compatibility fixture. Existing game rules and source artwork are retained.
Added
node_add_tree(available since 0.12.0): strict, bounded, parent-first native 2D/UI subtree construction for an explicitly
selected empty Node2D/Control scene. Preview is non-mutating; apply is one undo action; saving stays separate.- Shared packaged property/limit policy, selected embedded shapes/styles and imported PNG references, with English/
Japanese guides and a typed example in the bundled agent skill. No Python dependency is required by this tool. - Addon-free standalone copies of platformer, blocks, shooter, action and RPG, alongside the existing Marble sample.
A single-authority generator preserves the original resource paths, input actions, rules and assets. - New Tower Defense sample 灯畑の番人: one map, two tower roles, three waves, original artwork/SFX, and three replayable
node_add_treeplans (13/30/11 added nodes). Ordinary start/win/loss/retry/pause/quit checks remain separate from fixtures. - English/Japanese architecture, getting-started, sample catalog and upgrade-comparison guides; per-game play,
design and upgrade notes. Public 0.11.0 (48 tools) is distinguished from 0.12.0 (49 tools, six showcased games and a
retained internal compatibility fixture).
Changed
- Curate the README/gallery/sample guide to six equally presented games; remove the minimal platformer from the showcase while retaining its code, tests, default scene and CLI compatibility.
- Align repository/package/registry/plugin descriptions with editing, execution, observation and test capabilities; use the selected installer executable rather than a version-label registry fallback in setup guidance.
- Sample CLI output puts addon-free play first, including the one-time import a fresh copy needs before its first run.
Optional MCP setup uses the exact selected distribution's installer,
rather than silently directing a source sample to a different public package. The installer's client advice also
names that exact executable; a matching version label is not treated as proof of matching registry content. - Add cold standalone startup and ordinary TD mouse-route checks to the existing windowed sample test job.
Fixed
- Configure the TD sample's own logical canvas as well as physical window size, so repository integration retains 960×640
mouse/layout coordinates without changing the root project's main scene or other games. - Use path-only relocated texture references when fresh integrated imports receive new UIDs, avoiding stale standalone
texture-UID warnings on gameplay/results/retry scenes. The standalone original assets and gameplay remain unchanged.
Security
- Validate the complete plan on both server and addon before detached allocation or commit; refuse scripts, custom
classes, scene instances, unsupported properties, protected paths and over-budget inputs. - Check bounded PNG metadata, current source checksums and confined import remaps before texture loading; never
repair imports or silently use an unrestricted policy. Preserve human edits and report ambiguous dispatched state
explicitly without automatic replay or rollback.
Install
npx -y godot-mcp-loop@0.12.0 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.12.0 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.12.0 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.12.0.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.12.0.tgz for the server.
SHA-256
bf335419fd287c8886973b27ce9792278de0482f7ea66580422211428d1092a5 godot-mcp-loop-addon-0.12.0.zip
8ddf5e2f90102c1af6e41d0c746766d15eee4bde969c0d8b5e0d8710b58ffbfb godot-mcp-loop-0.12.0.tgz
Full changelog: CHANGELOG.md
v0.11.0
Added
- Read-only
doctor <project> [--json] [--artwork]CLI with static installation checks, stable diagnostic codes,
actionable hints and explicit runtime-not-checked output. It never launches the editor or connects/repairs. - Bounded metadata inspection, conservative ambiguous-setting classification, fixed trusted version probes,
and opt-in Python/Pillow checks; English/Japanese usage and safety guides.
Security
- Refuse Unicode syntax whitespace instead of normalizing different native keys/values into a false installation
pass. Preserve quoted Unicode and handle a leading project BOM separately from ConfigFile addon metadata. - Keep diagnosis on the standalone CLI branch, with no project code loading, bridge contact or automatic repair;
native literal-decoder/ProjectSettings regressions and actual installed-package checks cover the new command.
Install
npx -y godot-mcp-loop@0.11.0 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.11.0 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.11.0 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.11.0.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.11.0.tgz for the server.
SHA-256
860a3d3b80ee6ee63f6843b638610432884aefd194459c460097dc2748e0133e godot-mcp-loop-addon-0.11.0.zip
0d5cb7c0e7c59b707ea378ed5963b1587e9922aac32c98059be6196c31f5614e godot-mcp-loop-0.11.0.tgz
Full changelog: CHANGELOG.md
v0.10.0
Added
- Optional 2D artwork-production workflow: strict production briefs, approved external GPT Image 2 medium
requests, real PNG receipts with requested/reported quality separation, deterministic crop/key/fit/common-scale
and RGBA atlas builds, image-block previews and source/code/output change detection. asset_scene_addplaces validated artwork as standard Sprite2D/AnimatedSprite2D/SpriteFrames under one
undoable group, with explicit anchors, scale, drawing order and frames; refuses target/name changes during import.- Fixed Python/Pillow helper included in the npm payload (
Pillow==13.0.0, Python 3.11+, optional to existing tools),
with bounded JSON/PNG input, no executable recipes, no automatic dependency installation or image API/auth code. - English/Japanese artwork-production guides and updated agent workflow. Artwork previews, native screenshots,
automated input checks, human acceptance and unverified model/billing/rights claims are kept distinct. - Separate original-manifest checksums, encoded PNG byte-limit checks before publication, fixed Pillow startup
checks and environment-sensitive verification; production JSON uses exclusive atomic publication rather than
writing partial bytes to its final revision name.
Security
- Bound every exact text-replacement intermediate before allocation; stream native path lookup with a 4096-entry
fail-closed limit. Reject invalid indexed builtin members before native access, preserving shared Resource copies. - Reject artwork-path reparse metadata and resolved escapes; atomically publish build directories without replacing
a concurrent empty-directory claimant. Unsupported no-replace platforms fail closed. - Bind preview decoding to verified byte generations and capture artwork scene/parent identity before the earlier
worker wait, not only during native import. - Pin the optional artwork runtime to Pillow 13.0.0 / Python 3.11+; refuse oversized intermediate pose geometry,
per-frame PNG area and aggregate retained selections before allocation/publication. - Require screenshot baseline
.pngpaths in both schema and writer; an update refuses an existing non-PNG file. - Bind owned-editor readiness/quit to the authenticated connection's PID/port/token identity, not merely a separate
session-file PID, and recheck the session after reconnect awaits. Missing owned PIDs fail closed. - Recheck physical path containment for scenario/evidence/baseline/export I/O, including linked output companions,
ownership manifests, hard-linked leaf files, and delayed file undo. Internal session, movie, test and launcher
paths now have explicit checks rather than relying on the public file guard. - Refuse installer/sample destinations inside the running package by filesystem identity, including native Unicode
aliases, and destructive destinations containing the running package or loose-checkout copy sources. - Reject copied or hard-linked session files that could connect the wrong project; validate connection metadata.
- Bound PNG inflation/dimensions, scenario structure/recursive aliases, test-log reads (last 64 KiB) and JUnit input
(8 MiB). These are per-input limits, not an aggregate memory/disk quota. - Mark
game_wait_foras non-read-only: method conditions can change state. Clarify that project loading, callbacks,
dry_runvalidation, test runners and exports are not an OS sandbox. - Revalidate every open scene's native save destination before save/play/quit, including inactive scenes; refuse
generic edits of native scene/resource path identities. Project-settings undo refuses changed paths without
consuming the pending action. - Reject argv values Godot reinterprets (
%20, edge whitespace, control characters and option-like export presets)
before launching or making output folders. Ordinary Unicode names and interior spaces remain supported. - Prepare indexed Resource previews on copies; refuse indexed Script/non-Resource Object edits. Mask real
@tool
annotation tokens even after an inline annotation without changing strings, comments or locations. - Cap all non-active WebSocket states together and forcibly close withheld handshakes; retain the authenticated client.
- Bound project-controlled Node reads, shrink movie frames before retaining samples, bound portrait dimensions and
cap encoded GIFs at 64 MiB. None of these is an overall process-memory or disk quota. - Update transitive
body-parserto 2.4.0 andfast-urito 3.1.9 for newly published advisories, with lockfile
regression tests; pin the staged-publishing npm CLI to 12.2.1 rather than resolvingnpm@latest.
Fixed
- Synchronize the two short-lived shooter regression checkpoints with explicit pause/physics stepping rather than
remote-call latency; preserve every original condition and gameplay rule, and independently verify the20/120-tick lifetimes. - Serialize simulation step/input/pause and game run/stop/quit lifecycles. Refuse paused inline timed edits before
side effects; correlate launched children with their own hello and avoid force-stopping a successor game. - Use monotonic minimum wall waits for ordinary millisecond input without changing Movie Maker's fixed-step clock.
- Refuse a passing test-run verdict when native Godot errors were logged, even with exit zero and successful JUnit.
- Validate generated artwork requests against the same schema used by registration before publishing a revision.
- Make explicit
assert_no_errorsfail when log acquisition fails or returns a malformed envelope; unavailable
logs are not a verified empty error log. Preserve best-effort final diagnostics separately. - Pass the selected project to visual checks in folder/list scenario runs, just as for a single scenario.
- Bind relative Godot executable candidates to the discovery working directory before validation/spawn. Handle
asynchronous spawn errors without an unhandled process event; failed no-PID launches release their ownership entry. - Refuse file/script/image replacement when the original cannot be read for its undo snapshot, rather than recording
an empty original. Keep failed inverse recovery ahead of older edits after unobserved native redo/undo cycles. - Reject incomplete or structurally malformed JUnit XML before accepting partial passing cases, including with
process exit zero; retain supported GUT/GdUnit4 reports and single-suite roots. - Report failed file/script/image/settings/input saves instead of successful edit metadata. Check file inverse I/O
before consuming native undo; retain failed and native-redone recovery entries, preserve original errors and
partial-step results, snapshot mutable input settings, and refuse reentrant file/history operations. PNG sidecars
are checked before removal and orphan metadata is not overwritten; paired removal remains non-atomic. - Never pass a test runner that exits nonzero, even when its JUnit report claims success. The server also rejects a
stale addon's contradictory success flag and displays the process exit code in failed summaries. - Retain editor process ownership after readiness timeout, refuse concurrent/repeated spawn while it is alive, and
match readiness/quit to its PID. Pin the entire editor-launch request through its final status reply. - Remove only session metadata matching a successful publication fingerprint. Correlate runtime responses with live
pending requests, native sessions and run generations; discard late/unsolicited replies and foreign callbacks. - Refuse changed main/current scene selection after launch/restart waits and recheck physical paths and open-scene
save destinations at native play. Keep valid main-scene UIDs intact rather than converting them into argv filenames. - Count inline scenario object keys in the UTF-8 text budget. Enforce colour-specific PNG
tRNSlengths and forbid
redundant transparency chunks on alpha images while preserving supported grayscale, RGB and indexed transparency. - Confirm direct-child exit after termination requests instead of reporting an unobserved successful stop.
Failed editor shutdown retains ownership; an unconfirmed test-runner stop retainsBUSYuntil exit is observed.
Export timeouts retain partial diagnostics and remain bounded when descendants inherit output pipes. - Keep synthetic action holds across application focus changes in both
game_inputandgame_step, while preserving
input callbacks and explicit/timed/tap release. Native focus-loss tests include a raw-event negative control. - Finish
hold_frames/wait_framesafter game-node physics callbacks, not at the frame-start signal: a one-frame
hold was released before the RPG could see it. The exact-count regression also exercises physics catch-up at 10 fps. - Keep project selection pinned through multi-step scenarios/evidence, exports and editor startup/shutdown; concurrent
project switches returnBUSY, and failed operations release the pin. A native save refusal does not force-kill an editor.
See SECURITY-AUDIT.md for the qualification scope and remaining limits. The earlier unpublished 0.9.3 work below
is included in 0.10.0; npm's preceding public version was 0.9.2.
Install
npx -y godot-mcp-loop@0.10.0 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.10.0 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.10.0 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.10.0.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.10.0.tgz for the server.
SHA-256
256c5977315cf1ca6c507ca8d8f40908972b57478ba749f551c4e23681d455b9 godot-mcp-loop-addon-0.10.0.zip
92ef970437910458e36b86df78f81471ab803cd03e62...
v0.9.2
Fixed
- The 3D sample is actually inside the npm package now. 0.9.1 added
samplestofiles, butfilesis relative to
server/, and the bundler did not copy the folder there — sogodot-mcp-loop samplehad nothing to list. The
bundler now copiessamples/like the addon and the skill, and a test follows both halves of the rule.
Install
npx -y godot-mcp-loop@0.9.2 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.9.2 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.9.2 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.9.2.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.9.2.tgz for the server.
SHA-256
162879009c12cfb09a70462ee020079b3f579d6b9e41599ae1a2307b23366e98 godot-mcp-loop-addon-0.9.2.zip
36c7e7a99f42ecd9ce6222132a8fbcedc536d896c514ddaa76fcba6f1afde7db godot-mcp-loop-0.9.2.tgz
Full changelog: CHANGELOG.md
v0.9.1
Added
- The 3D sample ships with the package:
godot-mcp-loop sample marble-3d <dir>copies the standalone Marble Run project
(its ownproject.godot, scenes, scripts, seven scenarios,README.mdandDESIGN.md), andsamplealone lists
what is bundled.examples/marbleis generated fromsamples/marble-3dbyscripts/sync-marble-example.mjs, with a
test that fails when the copy drifts. - Reason-focused comments in every Marble Run script, and
DESIGN.md: why the course is a staircase (0.54 m drop over
3 m versus a 1.6 m jump), grounded-only braking, the total-velocity speed cap, theexpcamera smoothing, the wall
ray's exclusion, the input lock, and why the coin, goal and checkpoint only report.
Install
npx -y godot-mcp-loop@0.9.1 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.9.1 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.9.1 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.9.1.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.9.1.tgz for the server.
SHA-256
eaf79d896f9754287c241a5602bf91c05787b23460a31b20e9cc4a1a7613e827 godot-mcp-loop-addon-0.9.1.zip
88f74dcd926196c931d56d8f1127f28a5a91d960a3d8d5f530cf6ebc6af3da94 godot-mcp-loop-0.9.1.tgz
Full changelog: CHANGELOG.md
v0.9.0
Added
server.jsonandmcpNameprepare the package for the official MCP Registry (nameio.github.AI-osho/godot-mcp-loop);
a test keeps the manifest's version and name in step withserver/package.json.- README (en/ja): a five-minute tour (install → connect → one change and one check → record with
movie) and the
Marble Run recording at the top of the samples. project_export: build the project with one of itsexport_presets.cfgpresets (--export-release, headless, fixed
argument list, no shell). The output is confined tores://build/—res://build/<preset>/by default,index.html
for Web — so an export can never overwrite the project. Reports the files written with their sizes and the log tail;
dry_runshows the command; a missing template set fails withTEMPLATES_MISSINGand the menu path to install them.
Install
npx -y godot-mcp-loop@0.9.0 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.9.0 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.9.0 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.9.0.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.9.0.tgz for the server.
SHA-256
27a60ebe82a2035f58e41be1ed6ae490f6bf23288d49c5adc63354e87b0e3075 godot-mcp-loop-addon-0.9.0.zip
b548b010760ba8fbb608f0619ff0b113922bd70345ffd310d80126b74e32d45f godot-mcp-loop-0.9.0.tgz
Full changelog: CHANGELOG.md
v0.8.1
Fixed
- Scenario evidence can no longer be written into
addons/mcp_loop/:save_to: "res://addons/mcp_loop/…"used to write
PNGs and reports into the addon, where a script runs in the editor. Found by the new mutation test; other addons stay
writable, matching the addon's own rule.
Security
- Two property tests generate spellings of protected paths (case flips, doubled slashes,
./) — about 1,400 per run —
and require every one that still resolves to be refused. They fail against the pre-fix code by design, and found the
evidence hole above.
Install
npx -y godot-mcp-loop@0.8.1 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.8.1 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.8.1 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.8.1.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.8.1.tgz for the server.
SHA-256
24c24c4f7bdd61e78cff9f823ca8cf299352ab335468b3e65fa51c536a125fa2 godot-mcp-loop-addon-0.8.1.zip
4add738fd67d80c0dc774dde7f4b74f757f68090e5b0e9c6465613a91052bdb4 godot-mcp-loop-0.8.1.tgz
Full changelog: CHANGELOG.md
v0.8.0
Superseded by v0.8.1: the path mutation tests found that scenario evidence could be written into addons/mcp_loop/. Nothing was published to npm from this tag.
v0.7.0
One registration for many projects, an agent that can open and close the editor, Movie Maker recordings with a GIF
and a contact sheet, and the sample games' scenarios in CI (which found two runtime bugs fixed here).
Added
project_connect/project_list: one server registration for many projects (#12). Start the server with
--projects-root <folder>(repeatable, orGODOT_PROJECTS_ROOT) and the agent can list the Godot projects below it
(name, addon installed, editor running) and point the running server at another one; the following tool calls work
on it. Targets must containproject.godotand resolve inside a root (symbolic links included, not.godot/or
.git/). Without--projects-rootnothing changes (PROJECT_SWITCH_DISABLED).godot_statusshows
projects_roots; theGODOT_NOT_RUNNINGhint mentions switching when it is enabled. A connect still in flight for
the previous project is discarded.editor_launch/editor_quit: the agent can open the Godot editor on the current project and close it again.
Godot is the server's new--godot <path>/GODOT_BIN, else the first Godot 4.5+ onPATHor in the usual install
folders (checked with--version). The editor starts detached with a fixed argument list ([--headless] -e --path <project>), no shell, output inres://.godot/mcp_loop/editor.log; the tool waits until the bridge answers and
returns thegodot_statusfields. It refuses projects without the addon installed and enabled, and reports an
editor that exits early with the end of its log.editor_quitcloses only editors this server opened: stops the
game, saves the open scenes (new bridge methodeditor.quit), waits for the process, SIGTERM aftertimeout_ms.scenario_runmovie: records the run with Godot's Movie Maker (fixed frame rate) and savesmovie.gifand
contact.png— evenly spaced, labelled frames in one image, also returned to the agent so it can see the motion —
with the evidence (save_to);frames: truekeeps every frame. Optionsfps,gif,gif_fps,max_width,
contact_sheet. The addon sets the Movie Maker settings only for that launch, the frames go to
res://.godot/mcp_loop/movie/, and the game is asked to quit by itself at the end (game.stop {graceful: true}, new
runtime commandquit). GIF and PNG encoding are built in (no new dependencies). Needs a game window
(RENDERING_UNAVAILABLEwhen the game runs headless).- Test: every tool is listed in
docs/tools.mdand the three READMEs. - CI job "samples": the 19 regression scenarios of the sample games (platformer, Falling Blocks, shooter, side-scroller,
RPG) and two Movie Maker recordings run against a real editor with the games in a window (xvfb, software OpenGL);
the screenshots, reports and GIFs are kept as thesample-evidenceartifact for a visual check. - Release automation: pushing tag
vX.Y.Zruns.github/workflows/release.yml— checks that the tag, the package,
the addon and the CHANGELOG agree, builds the addon zip, the npm tarball andSHA256SUMS.txt
(scripts/release-artifacts.sh), creates the GitHub release with notes from the CHANGELOG, and stages exactly that
tarball on npm with trusted publishing (no token); a maintainer approves it with 2FA.docs/releasing.md.
Fixed
screenshotwithtarget: "editor"no longer hangs (30 sTIMEOUT) when the editor is idle in the background: in
low-processor mode it draws only on changes, so the addon now requests a redraw (and forces one after 2 s).- Commands sent to a running game no longer run in the middle of the game's own code. GDScript polls the debugger
every few thousand executed lines, and the runtime agent handled requests right there, so e.g. agame_callthat
freed enemies could run inside the game's loop over those enemies ("previously freed" errors, found by the new CI
job). Requests are now queued and handled at the next deferred-call flush, between callbacks. - Recording a movie on a slow machine:
wait_fortimeouts count game time while recording (like waits and holds), a
scenario'swait_mswaits in the game instead of in the server, and the editor's and server's safety timeouts get
ten times more room — before, a game rendering slower than real time hit timeouts early.
Install
npx -y godot-mcp-loop@0.7.0 install-addon /path/to/my-game --skill # addon of the same version, enabled
claude mcp add godot-loop -- npx -y godot-mcp-loop@0.7.0 --project /path/to/my-gameOther clients: command npx, arguments -y godot-mcp-loop@0.7.0 --project /path/to/my-game (docs/clients.md).
Manual install: unzip godot-mcp-loop-addon-0.7.0.zip into your project (addons/mcp_loop) and enable MCP Loop in
Project Settings › Plugins; npm install -g ./godot-mcp-loop-0.7.0.tgz for the server.
SHA-256
b94f88214ec0c36f7b01102d0aeba1b24a0cdeda56430fd58d810147b749913d godot-mcp-loop-addon-0.7.0.zip
8706a38c8b87661fbf0a5a866dad1b9b1184c98fc5c8449420f1692291a71ead godot-mcp-loop-0.7.0.tgz
Full changelog: CHANGELOG.md
v0.6.0 — unit tests, evidence on disk, session continuity, npm package
Agent workflow and distribution, from reviewing Claude-Code-Game-Studios and Coding-Solo/godot-mcp (#13–#16).
Highlights
test_run— runs the project's GUT or GdUnit4 unit tests in a separate headless Godot process started by the editor (its own executable, no shell, only the framework's runner script, with a timeout) and returns pass/fail counts, each failing test with its message, and the log's error lines (#15).scenario_runsave_to— keeps the evidence as files: every screenshot,report.mdandreport.json(a folder run: one subfolder per scenario andsummary.md). The editor does not import them; re-runs replace only their own files (#13).- New-project template (
scripts/new-game.sh) —PROGRESS.mdplus Claude Code project settings: aSessionStarthook puts it, the last commits and uncommitted changes into the agent's context at startup, on resume and after context compaction; godot-loop tools allowed, destructive shell commands denied (#14). - npm package — the server with the addon and agent skill bundled (#16):
npx -y godot-mcp-loop@0.6.0 install-addon /path/to/my-game --skill # addon of the same version, enabled claude mcp add godot-loop -- npx -y godot-mcp-loop@0.6.0 --project /path/to/my-game
Manual install
- Addon: unzip
godot-mcp-loop-addon-0.6.0.zipinto your project (addons/mcp_loop), enable MCP Loop in Project Settings › Plugins. - Server:
npm install -g ./godot-mcp-loop-0.6.0.tgz, then registergodot-mcp-loop --project /path/to/my-game.
Tests: GDScript 227, TypeScript 193 including end-to-end runs against Godot 4.7, GUT 9.7.1 and GdUnit4 6.2.2.
SHA-256
3da5d52706ace99aaa57cfafcde870f367f0dcba173259f9f13f388abb193451 godot-mcp-loop-addon-0.6.0.zip
979e878abe1645009d0245ca9447406befbc4cc3545589c851b00052fffc08c5 godot-mcp-loop-0.6.0.tgz
Full changelog: CHANGELOG.md