Skip to content

Releases: Advik-B/ConduitMCP

Conduit v0.8.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 09:29
Immutable release. Only release title and notes can be modified.
95ffe21

v0.8.0

Thirteen new tools, none removed — the tool name set is a strict superset of v0.7.3's, and no environment variable or CLI option was dropped. The release is driven by one thing: a coverage audit that measured the shipped surface against the Godot documentation, then twelve phases closing what it found.


v0.8.0
; the tool side is extracted from the real registration path under both default and maximal flags, counted by (tool, op) pairs. broker/tests/coverage-map.test.ts checks the hand-written T0 claims against the real registration list so the table cannot rot; bun run coverage:check validates the rule tables without writing the 8 MB LFS artifact. Results live in docs/coverage-matrix.md.

Over the release, tutorial actions graded T275), and class-reference members at T2 on the best-of-both row fell to 0.

New tools

Tool Description
NavigationRegion3D.bake_navigation_mesh Bakes the navigation mesh.
gd_resource_get_property, gd_resource_call A resource could be written but never read; set_property existed alone since phase 7.
gd_shader_validate Compiles a .gdshader in a headless subprocess, returns line-numbered diagnostics like gd_script_validate.
gd_import_settings Reads and [params], reimports after.
internationalization/locale/* The four internationalization/locale settings the Localization tab edits.
gd_editor_get_logs, gd_editor_get_errors The editor's engine log and error stream. Godot prints and returns, so a soft failure used to arrive as a successful call carrying a useless value.
gd_scene_tilemap Edit-time tilemap painting: paint, line, rect, bucket_fill, scatter, pattern_set/pattern_get, terrain_connect, terrain_path, fix_invalid_tiles, clear.
gd_draw Sixteen CanvasItem shape ops plus batch, list, clear, drawn on the target node in its own local space (as opposed to gd_render debug_draw, which draws beside it).

Target grammar

One optional target argument, parsed in brid nowhere else, now names four kinds of thingacross every generic verb:

  • a bare string — node path (node_path stillubset of the new argument)
  • singleton: — OS, Time, RenderingServer, ProjectSettings, EditorInterface (phase 10)
  • object: — a handle, minted by gd_object/gd_scene_object or by capture: true on any call or property read
    (phase 16)
  • class: — a class with no instance, for statics: FileAccess.open, DirAccess.open, Image.load_from_file (phase 19)

Both signal tools learned it too (phase 17): target names the emitter, receiver the destination. await was rebuilt on a Callable::from_fn + PendingOp instead of generating await Signal(get_node(path), …) through the eval runner — so it
works under --disable-eval, at any arity, onRIDs are tagged in both directions andcarried as decimal strings (64-bit ids vs. JavaScript's JSON.parse).

Passing both target and node_path is an erroence. Calls that have no meaningful inverse(gd_scene_node_call, singleton property writes, .import writes) report undoable: false rather than putting an entry on the history gd_undo cannot honour.

Fixes and corrections

  • Typed arrays returned [] — gdext refuses to convert Array[Node] into untyped Array, and variant_to_json
    swallowed that with unwrap_or_default. Eveyped array had been answering an empty array: a wrong value, not an error. Now read through the Variant's own size/get; the dictionary arm got the same treatment.
  • Dispatch failures panicked — api-gaps.md recorded that gdext exposes no try_call; the generated bindings say otherwise. Five call sites moved off Object::call, so a wrong-typed argument returns invalid_args naming the
    parameter and both types instead of intern
  • The editor log tail read the wrong file — an editor launched with --log-file answers ["--editor"] to OS.get_cmdline_args(), so the cmdline scan in log_tail.rs had never fired since phase 3 and every editor read fell
    through to the game's user://logs/godot.lot succeeded and returned nothing. The path is now supplied via CONDUIT_LOG_FILE, with no fallback; read_log_range returns a Result so an unopenable log and an empty one are distinguishable.
  • gd_draw clear lost drawings — queue_free ddrain_inbound keeps executing within it, so a draw arriving in the same drain found the node by name and appended to a corpse. It detaches with remove_child first now.
  • Cold-project CI flake (phases 23 fixture) scene that uses it returns intact terrainsets with every peering bit unset, and caches it that way; example-project/.godot is gitignored, so CI is always cold. The runner now opens the scene first and polls the postcondition (openSceneWhenReady) rather than trusting
    is_scanning(). No tool changed: a verb thae the editor holds would be a worse answer.
  • gd_classdb now reports hint/hint_string on arguments, returns, properties, and signal arguments (return_hint/return_hint_string for returns), plus static per method. Array[RDUniform] and a bare Array used to be
    the same answer.
  • gd_asset_add does not import what it writes — measured, not guessed: scan() discovers, only scan_sources() (i.e.
    gd_asset_reimport) imports. That is the re the notes called timing-flaky.

Ops and docs

  • New env vars: CONDUIT_LOG_FILE (set on the editor process, not the broker) and CONDUIT_GODOT_DOCS (dev tooling, for the coverage audit).
  • New tool group object, for handle bookkeepDropping it removes the two tools but notcapture on the generic verbs — stated in docs/environment.md.
  • New scripts: coverage, coverage:check, and runners phase10, phase13–phase25. ci:phases grew from 9 runners to 19; phase18, phase20, phase24 need a real disp
  • docs/coverage-matrix.json is Git LFS-tracked (8 MB); docs/api-gaps.md grew by ~1600 lines of measured findings.
    Full Changelog: v0.7.3...v0.8.0

Conduit v0.7.3

Choose a tag to compare

@github-actions github-actions released this 17 Aug 19:06
Immutable release. Only release title and notes can be modified.
55395e2

What's Changed

  • Upgrade dependencies and bump version to 0.7.3 by @Advik-B in #10

Full Changelog: v0.7.1...v0.7.3

Conduit v0.7.1

Choose a tag to compare

@github-actions github-actions released this 17 Aug 10:04
Immutable release. Only release title and notes can be modified.
919f87e

What's Changed

  • Fix MCP handshake timeout by deferring editor connection by @Advik-B in #9

Full Changelog: v0.7.0...v0.7.1

Conduit v0.7.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 23:42
Immutable release. Only release title and notes can be modified.
6bb78a8

Full Changelog: v0.6.0...v0.7.0

Conduit v0.6.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 15:13
Immutable release. Only release title and notes can be modified.
c17755b

Full Changelog: v0.5.0...v0.6.0

Conduit v0.5.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 11:03
Immutable release. Only release title and notes can be modified.
4deb447

What's Changed

  • [ImgBot] Optimize images by @imgbot[bot] in #8

New Contributors

  • @imgbot[bot] made their first contribution in #8

Full Changelog: v0.4.0...v0.5.0

Conduit v0.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 17:11
Immutable release. Only release title and notes can be modified.
252e81a

Full Changelog: v0.3.1...v0.4.0

Conduit v0.3.1

Choose a tag to compare

@github-actions github-actions released this 14 Aug 12:26
a6a8067

What's Changed

  • Single-source the version in the workspace Cargo.toml by @Advik-B in #6
  • Add a recorded editor demo and put the video in the README by @Advik-B in #7

Full Changelog: v0.3.0...v0.3.1

Conduit v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 09:28

First public release of Conduit: a native in-process MCP bridge giving AI agents full control of the Godot editor and the running game. A Rust GDExtension loads into the Godot process itself; a standalone broker presents both the editor and the game to any MCP client as one tool surface, with 87 tools spanning undo-safe scene editing, play and input simulation, screenshots, interactive debugging, and ClassDB introspection. See the README for setup.

Assets:

  • conduit-addon-v0.3.0.zip: the Godot addon; extract into your project root (contains prebuilt bridge libraries for Windows x64, Linux x64 glibc 2.35+, and macOS universal)
  • conduit-mcp-server-*: the standalone broker for each platform; no runtime required
  • SHA256SUMS.txt: checksums for all of the above

Requires Godot 4.4+ (tested against 4.7.1).

What's Changed

  • Phase1 skeleton dispatcher by @Advik-B in #1
  • Phase2 runtime by @Advik-B in #2
  • Phase 5: debugger integration and editor collaboration by @Advik-B in #3
  • Phase6 gui parity pixel by @Advik-B in #4
  • GitHub readiness: README, MIT license, CI matrix, tag-triggered release by @Advik-B in #5

Full Changelog: https://github.com/Advik-B/ConduitMCP/commits/v0.3.0