v0.3.0
Added
scriptable_get: read a named serialized field from a ScriptableObject asset by pathscriptable_set: write a named serialized field on a ScriptableObject asset and save it to disk
Changed
screenshotno longer returns base64 image data inline. It saves to a PNG file and returns the absolute path. Usemax_sizeto downscale before saving.execute_scriptnow loads compiled assemblies into a collectibleAssemblyLoadContextso they are garbage-collected after each call, preventing domain reload slowdown over time.set_projectnow callslist_commandsimmediately after setting the project path, so Unity commands are available without a separate discovery step. The response includescommands_loadedon success or awarningif Unity is not reachable.open_projectandcreate_projectnow return achoose_unity_versionresponse listing all detected installs when multiple Unity versions are installed andunity_pathwas not specified. Re-call withunity_pathset to the desired entry.help(no argument) always returns at least the Go-side commands (set_project,open_project,create_project,find_unity_installs) and includes a_warningwith instructions to callset_projectwhen Unity commands have not been loaded yet.
Removed
invoketool removed from the MCP server. All Unity commands are now registered as discrete named tools at startup. LLMs can no longer route arbitrary command names through a generic escape hatch.IAgentCommand.Coreproperty removed. All registered commands are now exposed as named MCP tools; there is no longer a distinction between core and non-core commands.
MCP context size
=== MCP context size (fixed tools only) ===
tool bytes ~tokens
-------------------------------------------
screenshot 234 58
help 205 51
set_project 138 34
-------------------------------------------
TOTAL (3 tools) 577 144
note: dynamic core tools from Unity are registered at runtime via the 'core' flag