Skip to content

Releases

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 13:23

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_tree plans (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-game

Other 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 15:41
6fcac10

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-game

Other 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 03:59

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_add places 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 .png paths 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_for as non-read-only: method conditions can change state. Clarify that project loading, callbacks,
    dry_run validation, 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-parser to 2.4.0 and fast-uri to 3.1.9 for newly published advisories, with lockfile
    regression tests; pin the staged-publishing npm CLI to 12.2.1 rather than resolving npm@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_errors fail 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 tRNS lengths 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 retains BUSY until 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_input and game_step, while preserving
    input callbacks and explicit/timed/tap release. Native focus-loss tests include a raw-event negative control.
  • Finish hold_frames / wait_frames after 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 return BUSY, 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-game

Other 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...
Read more

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 09:59

Fixed

  • The 3D sample is actually inside the npm package now. 0.9.1 added samples to files, but files is relative to
    server/, and the bundler did not copy the folder there — so godot-mcp-loop sample had nothing to list. The
    bundler now copies samples/ 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-game

Other 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

v0.9.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 09:42

Added

  • The 3D sample ships with the package: godot-mcp-loop sample marble-3d <dir> copies the standalone Marble Run project
    (its own project.godot, scenes, scripts, seven scenarios, README.md and DESIGN.md), and sample alone lists
    what is bundled. examples/marble is generated from samples/marble-3d by scripts/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, the exp camera 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-game

Other 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

Choose a tag to compare

@github-actions github-actions released this 20 Oct 08:25

Added

  • server.json and mcpName prepare the package for the official MCP Registry (name io.github.AI-osho/godot-mcp-loop);
    a test keeps the manifest's version and name in step with server/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 its export_presets.cfg presets (--export-release, headless, fixed
    argument list, no shell). The output is confined to res://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_run shows the command; a missing template set fails with TEMPLATES_MISSING and 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-game

Other 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

Choose a tag to compare

@github-actions github-actions released this 20 Oct 05:25

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-game

Other 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

v0.8.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 02:39

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

Choose a tag to compare

@github-actions github-actions released this 18 Oct 16:08

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, or GODOT_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 contain project.godot and resolve inside a root (symbolic links included, not .godot/ or
    .git/). Without --projects-root nothing changes (PROJECT_SWITCH_DISABLED). godot_status shows
    projects_roots; the GODOT_NOT_RUNNING hint 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+ on PATH or in the usual install
    folders (checked with --version). The editor starts detached with a fixed argument list ([--headless] -e --path <project>), no shell, output in res://.godot/mcp_loop/editor.log; the tool waits until the bridge answers and
    returns the godot_status fields. It refuses projects without the addon installed and enabled, and reports an
    editor that exits early with the end of its log. editor_quit closes only editors this server opened: stops the
    game, saves the open scenes (new bridge method editor.quit), waits for the process, SIGTERM after timeout_ms.
  • scenario_run movie: records the run with Godot's Movie Maker (fixed frame rate) and saves movie.gif and
    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: true keeps every frame. Options fps, 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 command quit). GIF and PNG encoding are built in (no new dependencies). Needs a game window
    (RENDERING_UNAVAILABLE when the game runs headless).
  • Test: every tool is listed in docs/tools.md and 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 the sample-evidence artifact for a visual check.
  • Release automation: pushing tag vX.Y.Z runs .github/workflows/release.yml — checks that the tag, the package,
    the addon and the CHANGELOG agree, builds the addon zip, the npm tarball and SHA256SUMS.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

  • screenshot with target: "editor" no longer hangs (30 s TIMEOUT) 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. a game_call that
    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_for timeouts count game time while recording (like waits and holds), a
    scenario's wait_ms waits 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-game

Other 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

Choose a tag to compare

@AI-osho AI-osho released this 18 Oct 13:39

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_run save_to — keeps the evidence as files: every screenshot, report.md and report.json (a folder run: one subfolder per scenario and summary.md). The editor does not import them; re-runs replace only their own files (#13).
  • New-project template (scripts/new-game.sh) — PROGRESS.md plus Claude Code project settings: a SessionStart hook 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.zip into your project (addons/mcp_loop), enable MCP Loop in Project Settings › Plugins.
  • Server: npm install -g ./godot-mcp-loop-0.6.0.tgz, then register godot-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