Changelog
May 10, 2026 · View on GitHub
All notable changes to unity-mcp-cli will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
-
runTool/runSystemToollibrary functions. The HTTP-tool invocation paths previously available only as therun-tool/run-system-toolCLI commands are now first-class library exports:import { runTool, runSystemTool } from 'unity-mcp-cli'; const result = await runTool({ toolName: 'tool-list', unityProjectPath: '/path/to/Unity/project', input: { regexSearch: 'gameobject', includeDescription: true }, }); if (result.kind === 'success') { // result.data === parsed JSON body from the Unity plugin }Same URL/token resolution priority as the CLI commands (explicit override → project config → deterministic localhost port). Returns a discriminated
{ kind: 'success' | 'failure', ... }union; never throws past the public boundary; emits no console output.
Changed
run-tool/run-system-toolcommands now delegate to the new library functions internally. CLI behaviour is unchanged.
0.67.0 - 2026-04-21
Added
-
Library API. The package now exposes its core commands as a typed, side-effect-free library alongside the existing CLI binary. Consumers can do:
import { installPlugin, removePlugin, configure, setupMcp } from 'unity-mcp-cli';Available functions:
installPlugin(opts)— install the Unity-MCP plugin into a Unity projectremovePlugin(opts)— remove the Unity-MCP plugin from a Unity projectconfigure(opts)— enable/disable MCP tools, prompts, resourcessetupMcp(opts)— write an agent MCP config filelistAgentIds()— list every supported agent id
All functions return a typed
{ success, ... }result (never throw past the public boundary) and accept an optionalonProgress(event)callback that fires forstart,dependencies-resolved,manifest-patched, anddonephases. -
package.jsonexportsfield. The package now ships with a conditional-exports map:"."— the library entry (dist/lib.js)"./cli"— the CLI entry (dist/cli.js), identical behaviour to theunity-mcp-clibinary
Changed
-
Command handlers (
install-plugin,remove-plugin,configure,setup-mcp) are now thin Commander wrappers that delegate to the library functions. Terminal output and exit codes are unchanged from the user's perspective. -
utils/manifest.tsfunctions now accept an optionalloggerargument so the library can run silently while the CLI preserves its chalk- styled output.addPluginToManifestandremovePluginFromManifestalso return structured result objects; return values are purely additive and the existing call sites are unaffected.
Notes
- No breaking changes to the CLI binary.
unity-mcp-cli install-plugin ./MyProjectand friends still work exactly as before. - The library entry point has no top-level side effects: importing
unity-mcp-clinever writes to stdout/stderr and never parses argv. Animport 'unity-mcp-cli'or dynamicimport('unity-mcp-cli')call is safe to do anywhere.