Date: 2026-05-23
Status: active public status snapshot
XUUnity Light Unity MCP is a working same-host Unity Editor automation service
for MCP-capable AI agents. The current source line is v0.3.17.
Unity package:
com.xuunity.light-mcp
Current Git UPM URL:
https://github.com/FoxsterDev/xuunity-light-unity-mcp.git?path=/packages/com.xuunity.light-mcp#v0.3.17
Current package path:
packages/com.xuunity.light-mcp
Migration note:
v0.3.11and earlier usedtemplates/unity-package.v0.3.12+usespackages/com.xuunity.light-mcp.v0.3.14+keeps the default package metadata on Unity2021.3and makes Test Framework-backed operations optional.v0.3.15+adds license-aware batch fallback and Codex helper install-target selection.- The old path is kept only as a migration pointer for users pinned to
v0.3.11.
OpenUPM status:
- the package layout is OpenUPM-ready
- the package is not documented as published on OpenUPM yet
- use Git UPM until the OpenUPM package page exists
Implemented Unity-side operations:
unity.statusunity.capabilities.getunity.health.probeunity.build_target.getunity.build_target.switchunity.editor.quitunity.project.refreshunity.package.install_test_frameworkunity.edm4u.resolveunity.sdk.dependency.verifyunity.console.tailunity.scene.snapshotunity.scene.assertunity.tests.run_editmodeunity.tests.run_playmodeunity.playmode.stateunity.playmode.setunity.game_view.configureunity.game_view.screenshotunity.compile.player_scriptsunity.compile.matrixunity.scenario.validateunity.scenario.rununity.scenario.result
Implemented host-side MCP tools and helpers:
unity_status_summaryxuunity_setup_planxuunity_setup_applyxuunity_setup_validateunity_package_install_test_frameworkunity_request_final_statusunity_scenario_result_summaryunity_scenario_results_listunity_scenario_result_latestunity_scenario_run_and_waitunity_compile_build_config_matrixunity_maintenance_pruneproject-discovery-reportregistry-context-reportregistry-prune-contextssetup-plansetup-applyvalidate-setupinstall-test-frameworklicense-capabilitiesopen-editorensure-readyrecover-editor-sessionrestore-editor-staterequest-status-summaryrequest-final-statusrequest-latest-statusrequest-cancelrequest-stale-cleanupbatch-compilebatch-compile-matrixbatch-build-config-compile-matrixbatch-editmode-testsbatch-test-framework-version-regressionbatch-build-playerartifact-probe
Latest source validation for v0.3.17:
| Area | Evidence | Result |
|---|---|---|
| Package metadata | packages/com.xuunity.light-mcp/package.json |
name=com.xuunity.light-mcp, version=0.3.17, unity=2021.3, no hard Test Framework dependency |
| Host Python tests | scripts/testing/run_host_python_tests.sh |
141/141 passed during the v0.3.17 release pass |
| Package self-tests | Clean devmode projects on installed Unity editors | EditMode 6/6, PlayMode 5/5 on 2021.3.58f1, 2022.3.62f3, 2022.3.67f2, 6000.0.58f2, 6000.0.61f1, 6000.2.14f1, and 6000.3.3f1 after offline optional Test Framework setup. 2021.3.45f2 is classified as skipped/create_project_license_unavailable on this host because Unity reports no valid editor license before package import. |
| Previous Git UPM release smoke | Clean Unity 2021.3.58f1 project pinned to #v0.3.14 |
Bridge reached healthy git_pinned status, Android APK smoke passed, package EditMode 6/6 and PlayMode 5/5 passed, and closeout verified process_exit_verified=true. |
| Release prodmode check | Temporary Unity project pinned to #v0.3.17 |
Run after pushing the release tag so prodmode can verify the tag on origin and write the matching Git UPM dependency before consumer closeout. |
| Multi-project compile matrix | Private multi-project consumer validation | 9/9 projects, 38/38 lanes, 0 failures |
| Git tag visibility | Git refs | Release tag v0.3.17 is prepared locally and must be pushed to origin for Git UPM consumers. |
Cross-platform status:
| Target | Status | Notes |
|---|---|---|
| macOS host tools | validated on this host |
Shell wrapper, host tests, Unity package self-tests, and multi-project matrix passed. |
| Linux host tools | portable by design |
Bash-compatible launchers/templates exist; run a Linux Unity smoke before claiming live proof. |
| Native Windows clients | templates provided |
run.cmd, run.ps1, and Windows client configs exist; native Windows MCP connection still needs host execution proof. |
| Unity 2021.3+ | default package line |
Checked-in package metadata targets Unity 2021.3; setup wizard chooses optional Test Framework recommendations per project. |
| Optional Test Framework | capability-gated |
Core readiness stays healthy when missing; tests report disabled_missing_dependency, disabled_dependency_too_old, or supported with upgrade_recommended when an existing dependency should be reviewed. |
| License-aware batch fallback | implemented; host validated |
license-capabilities reports batchmode support, blocker code, probe log, and recommended lane. batch-* commands default to --batch-fallback-mode auto and emit lane summary fields. Live installed-editor matrix remains follow-up evidence. |
Use Git UPM for production consumers:
{
"dependencies": {
"com.xuunity.light-mcp": "https://github.com/FoxsterDev/xuunity-light-unity-mcp.git?path=/packages/com.xuunity.light-mcp#v0.3.17"
}
}Use local file: only while developing this MCP package:
{
"dependencies": {
"com.xuunity.light-mcp": "file:/absolute/path/to/xuunity-light-unity-mcp/packages/com.xuunity.light-mcp"
}
}Mode switch helpers:
bash xuunity_light_unity_mcp.sh devmode --project-root /path/to/UnityProject
bash xuunity_light_unity_mcp.sh prodmode --project-root /path/to/UnityProjectRules:
devmodepoints a Unity project at the local package working tree.prodmodepins the Unity project to the published release tag that matches the package version, for example#v0.3.17.prodmoderefuses to pin when that release tag is not visible onorigin.- both modes remove the package lock entry so Unity re-resolves honestly.
Install host helper:
bash init_xuunity_light_unity_mcp.shEnable one project:
bash init_xuunity_light_unity_mcp.sh \
--project-root /path/to/UnityProject \
--enable-projectReadiness check:
bash xuunity_light_unity_mcp.sh ensure-ready \
--project-root /path/to/UnityProject \
--open-editor \
--background-openPackage self-test lane:
templates/smoke/run_package_self_tests.sh \
--project-root /path/to/UnityProject \
--mode allMulti-project compile matrix:
scripts/testing/run_multi_project_batch_compile_matrix.sh \
--repo-root /path/to/repo-with-unity-projects \
--parallelism 4Current safety guarantees:
- editor-only package assembly
- disabled-by-default bridge activation
- no normal player-build footprint by default
- no dynamic Roslyn execution path
- no SignalR or external relay dependency
- local same-host transport model
- capability-gated reflection-sensitive operations
- mutable bridge/request artifacts stay under
Library/XUUnityLightMcp/
Current limitations:
- OpenUPM publication is still pending
- Linux and native Windows need live host smoke proof before strong support claims
- Game View operations remain reflection-gated and must be capability-probed
- License-aware batch fallback is host-capability based; unknown probe failures keep batch as a diagnostic path instead of pretending GUI fallback is safe
- device/runtime automation is outside the base package
- broad unrestricted editor mutation is intentionally out of scope
../../INSTALL.mdFEATURES.md../../SECURITY.mdCOMPARISON.mdDISCOVERY.md../agents/AI_INTEGRATION.md../agents/AGENT_WORKFLOWS.md../operations/BUILD_AUTOMATION.md../operations/SMOKE_TESTS.md../architecture/ROADMAP.md