dcc-mcp-unity 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. dcc_mcp_unity-0.2.0/.gitignore +9 -0
  2. dcc_mcp_unity-0.2.0/.release-please-manifest.json +1 -0
  3. dcc_mcp_unity-0.2.0/CHANGELOG.md +10 -0
  4. dcc_mcp_unity-0.2.0/LICENSE +21 -0
  5. dcc_mcp_unity-0.2.0/PKG-INFO +105 -0
  6. dcc_mcp_unity-0.2.0/README.md +76 -0
  7. dcc_mcp_unity-0.2.0/docs/architecture-benchmark.md +88 -0
  8. dcc_mcp_unity-0.2.0/docs/assets/SOURCES.md +13 -0
  9. dcc_mcp_unity-0.2.0/docs/assets/dcc-mcp-unity-imagegen-source.png +0 -0
  10. dcc_mcp_unity-0.2.0/docs/assets/dcc-mcp-unity.png +0 -0
  11. dcc_mcp_unity-0.2.0/docs/assets/dcc-mcp-unity.svg +4 -0
  12. dcc_mcp_unity-0.2.0/install.md +52 -0
  13. dcc_mcp_unity-0.2.0/pyproject.toml +68 -0
  14. dcc_mcp_unity-0.2.0/release-please-config.json +42 -0
  15. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/__init__.py +6 -0
  16. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/__version__.py +3 -0
  17. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/bridge.py +64 -0
  18. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/dispatcher.py +21 -0
  19. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/install.py +67 -0
  20. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/server.py +101 -0
  21. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-diagnostics/SKILL.md +24 -0
  22. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-diagnostics/metadata/depends.md +3 -0
  23. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-diagnostics/scripts/read_console.py +16 -0
  24. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-diagnostics/tools.yaml +21 -0
  25. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-project/SKILL.md +27 -0
  26. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-project/metadata/depends.md +3 -0
  27. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-project/scripts/inspect_project.py +14 -0
  28. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-project/scripts/refresh_assets.py +14 -0
  29. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-project/tools.yaml +31 -0
  30. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/SKILL.md +27 -0
  31. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/metadata/depends.md +3 -0
  32. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/scripts/create_game_object.py +18 -0
  33. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/scripts/inspect_scene.py +15 -0
  34. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/scripts/save_scene.py +14 -0
  35. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/scripts/set_transform.py +31 -0
  36. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/skills/unity-scene/tools.yaml +95 -0
  37. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/Editor/DccMcp.Unity.Editor.asmdef +9 -0
  38. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/Editor/DccMcpBridge.cs +358 -0
  39. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/Editor/DccMcpCommands.cs +406 -0
  40. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/Editor/DccMcpConsole.cs +200 -0
  41. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/LICENSE.md +21 -0
  42. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/README.md +7 -0
  43. dcc_mcp_unity-0.2.0/src/dcc_mcp_unity/unity_package/package.json +18 -0
  44. dcc_mcp_unity-0.2.0/tests/test_bridge.py +23 -0
  45. dcc_mcp_unity-0.2.0/tests/test_dispatcher.py +14 -0
  46. dcc_mcp_unity-0.2.0/tests/test_install.py +47 -0
  47. dcc_mcp_unity-0.2.0/tests/test_package.py +127 -0
  48. dcc_mcp_unity-0.2.0/tools/lint_skills.py +8 -0
@@ -0,0 +1,9 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .pytest_cache/
4
+ .ruff_cache/
5
+ .venv/
6
+ dist/
7
+ build/
8
+ *.egg-info/
9
+ .coverage
@@ -0,0 +1 @@
1
+ {".":"0.2.0"}
@@ -0,0 +1,10 @@
1
+ # Changelog
2
+
3
+ ## [0.2.0](https://github.com/dcc-mcp/dcc-mcp-unity/compare/v0.1.0...v0.2.0) (2026-07-21)
4
+
5
+
6
+ ### Features
7
+
8
+ * add Unity Editor MCP adapter ([5595603](https://github.com/dcc-mcp/dcc-mcp-unity/commit/55956032b33643df8deaf229f131b9d2378891aa))
9
+
10
+ ## Changelog
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 loonghao
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,105 @@
1
+ Metadata-Version: 2.4
2
+ Name: dcc-mcp-unity
3
+ Version: 0.2.0
4
+ Summary: Unity Editor adapter and typed game-authoring skills for DCC-MCP
5
+ Project-URL: Homepage, https://github.com/dcc-mcp/dcc-mcp-unity
6
+ Project-URL: Repository, https://github.com/dcc-mcp/dcc-mcp-unity
7
+ Project-URL: Issues, https://github.com/dcc-mcp/dcc-mcp-unity/issues
8
+ Author-email: loonghao <hal.long@outlook.com>
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,game-development,mcp,model-context-protocol,unity
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Games/Entertainment
20
+ Requires-Python: >=3.9
21
+ Requires-Dist: dcc-mcp-core<1.0.0,>=0.19.45
22
+ Requires-Dist: websockets>=12
23
+ Provides-Extra: dev
24
+ Requires-Dist: build>=1.2; extra == 'dev'
25
+ Requires-Dist: pytest>=8; extra == 'dev'
26
+ Requires-Dist: ruff>=0.8; extra == 'dev'
27
+ Requires-Dist: twine>=6; extra == 'dev'
28
+ Description-Content-Type: text/markdown
29
+
30
+ # dcc-mcp-unity
31
+
32
+ ![DCC-MCP Unity lockup](https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-unity/main/docs/assets/dcc-mcp-unity.svg)
33
+
34
+ Unity Editor adapter for the DCC Model Context Protocol ecosystem. It ships a UPM Editor package,
35
+ a loopback WebSocket bridge, and typed project and scene tools.
36
+
37
+ The first-release boundary and comparison with `unity-cli` and two established Unity MCP projects
38
+ are documented in the [architecture benchmark](https://github.com/dcc-mcp/dcc-mcp-unity/blob/main/docs/architecture-benchmark.md).
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ pip install dcc-mcp-unity
44
+ dcc-mcp-unity-install /path/to/UnityProject
45
+ ```
46
+
47
+ Open or restart the Unity project so Package Manager compiles **DCC-MCP Unity**, then run:
48
+
49
+ ```bash
50
+ dcc-mcp-unity
51
+ ```
52
+
53
+ See the [installation guide](https://github.com/dcc-mcp/dcc-mcp-unity/blob/main/install.md) for
54
+ upgrade, environment, and connection verification details.
55
+
56
+ The MCP endpoint uses a free loopback port and is registered for gateway discovery. Set
57
+ `DCC_MCP_UNITY_PORT=8765` before starting the server only when a fixed direct endpoint is needed.
58
+ The Editor package reconnects to the loopback bridge at `ws://127.0.0.1:3852`; set
59
+ `DCC_MCP_UNITY_BRIDGE_PORT` before the MCP server and `DCC_MCP_UNITY_BRIDGE_URL` before Unity starts
60
+ to override it. `DCC_MCP_UNITY_BRIDGE_TIMEOUT` may increase the 60-second RPC timeout but cannot
61
+ lower it; queued Editor work expires first so timed-out mutations are not executed later.
62
+
63
+ The default bridge targets one Unity Editor. For concurrent Editors, run one adapter per Editor and
64
+ assign each pair a unique bridge port and URL before starting either process.
65
+
66
+ ## Agent workflow
67
+
68
+ 1. Load `unity-project` and call `inspect_project` before assuming project or editor state. Stop if
69
+ the returned project is not the intended target or the Editor is compiling, updating, entering
70
+ Play Mode, or playing.
71
+ 2. Load `unity-scene` and call `inspect_scene` immediately before using an instance ID.
72
+ 3. Create GameObjects or change transforms through typed operations backed by Unity Undo.
73
+ 4. Verify the hierarchy, then explicitly call `save_scene`.
74
+ 5. Load `unity-diagnostics` and call `read_console` after failures or as a final verification step.
75
+
76
+ Do not automatically retry a timed-out scene mutation. Inspect the project and scene first because
77
+ the Editor may have completed the original request near the timeout boundary.
78
+
79
+ No raw C# evaluation, shell command, or arbitrary filesystem write is exposed. The Editor bridge
80
+ accepts only the methods implemented in `DccMcpCommands` and executes them on Unity's editor update
81
+ loop. Mutations fail closed during compilation, asset updates, and Play Mode. Requests, queued work,
82
+ scene snapshots, Console reads, and serialized responses have explicit size or lifetime budgets.
83
+
84
+ ## Validation boundary
85
+
86
+ Public CI validates Python 3.9 and 3.12 on Windows, macOS, and Linux; validates the bundled skill
87
+ contracts; performs static checks for the UPM package and main-thread/Undo contracts; and builds the
88
+ PyPI artifacts. Automated live Unity Editor CI is intentionally not claimed because it requires a
89
+ provisioned Unity CI license or activation. A real Editor smoke should be run before promoting the
90
+ adapter from alpha.
91
+
92
+ ## Development
93
+
94
+ ```bash
95
+ uv sync --extra dev
96
+ uv run python -m pytest
97
+ uv run ruff check src tests tools
98
+ uv run ruff format --check src tests tools
99
+ uv run python tools/lint_skills.py
100
+ uv run python -m build
101
+ uv run python -m twine check dist/*
102
+ ```
103
+
104
+ Unity and the Unity cube logo are trademarks of Unity Technologies. This independent adapter is
105
+ not affiliated with or endorsed by Unity Technologies.
@@ -0,0 +1,76 @@
1
+ # dcc-mcp-unity
2
+
3
+ ![DCC-MCP Unity lockup](https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-unity/main/docs/assets/dcc-mcp-unity.svg)
4
+
5
+ Unity Editor adapter for the DCC Model Context Protocol ecosystem. It ships a UPM Editor package,
6
+ a loopback WebSocket bridge, and typed project and scene tools.
7
+
8
+ The first-release boundary and comparison with `unity-cli` and two established Unity MCP projects
9
+ are documented in the [architecture benchmark](https://github.com/dcc-mcp/dcc-mcp-unity/blob/main/docs/architecture-benchmark.md).
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ pip install dcc-mcp-unity
15
+ dcc-mcp-unity-install /path/to/UnityProject
16
+ ```
17
+
18
+ Open or restart the Unity project so Package Manager compiles **DCC-MCP Unity**, then run:
19
+
20
+ ```bash
21
+ dcc-mcp-unity
22
+ ```
23
+
24
+ See the [installation guide](https://github.com/dcc-mcp/dcc-mcp-unity/blob/main/install.md) for
25
+ upgrade, environment, and connection verification details.
26
+
27
+ The MCP endpoint uses a free loopback port and is registered for gateway discovery. Set
28
+ `DCC_MCP_UNITY_PORT=8765` before starting the server only when a fixed direct endpoint is needed.
29
+ The Editor package reconnects to the loopback bridge at `ws://127.0.0.1:3852`; set
30
+ `DCC_MCP_UNITY_BRIDGE_PORT` before the MCP server and `DCC_MCP_UNITY_BRIDGE_URL` before Unity starts
31
+ to override it. `DCC_MCP_UNITY_BRIDGE_TIMEOUT` may increase the 60-second RPC timeout but cannot
32
+ lower it; queued Editor work expires first so timed-out mutations are not executed later.
33
+
34
+ The default bridge targets one Unity Editor. For concurrent Editors, run one adapter per Editor and
35
+ assign each pair a unique bridge port and URL before starting either process.
36
+
37
+ ## Agent workflow
38
+
39
+ 1. Load `unity-project` and call `inspect_project` before assuming project or editor state. Stop if
40
+ the returned project is not the intended target or the Editor is compiling, updating, entering
41
+ Play Mode, or playing.
42
+ 2. Load `unity-scene` and call `inspect_scene` immediately before using an instance ID.
43
+ 3. Create GameObjects or change transforms through typed operations backed by Unity Undo.
44
+ 4. Verify the hierarchy, then explicitly call `save_scene`.
45
+ 5. Load `unity-diagnostics` and call `read_console` after failures or as a final verification step.
46
+
47
+ Do not automatically retry a timed-out scene mutation. Inspect the project and scene first because
48
+ the Editor may have completed the original request near the timeout boundary.
49
+
50
+ No raw C# evaluation, shell command, or arbitrary filesystem write is exposed. The Editor bridge
51
+ accepts only the methods implemented in `DccMcpCommands` and executes them on Unity's editor update
52
+ loop. Mutations fail closed during compilation, asset updates, and Play Mode. Requests, queued work,
53
+ scene snapshots, Console reads, and serialized responses have explicit size or lifetime budgets.
54
+
55
+ ## Validation boundary
56
+
57
+ Public CI validates Python 3.9 and 3.12 on Windows, macOS, and Linux; validates the bundled skill
58
+ contracts; performs static checks for the UPM package and main-thread/Undo contracts; and builds the
59
+ PyPI artifacts. Automated live Unity Editor CI is intentionally not claimed because it requires a
60
+ provisioned Unity CI license or activation. A real Editor smoke should be run before promoting the
61
+ adapter from alpha.
62
+
63
+ ## Development
64
+
65
+ ```bash
66
+ uv sync --extra dev
67
+ uv run python -m pytest
68
+ uv run ruff check src tests tools
69
+ uv run ruff format --check src tests tools
70
+ uv run python tools/lint_skills.py
71
+ uv run python -m build
72
+ uv run python -m twine check dist/*
73
+ ```
74
+
75
+ Unity and the Unity cube logo are trademarks of Unity Technologies. This independent adapter is
76
+ not affiliated with or endorsed by Unity Technologies.
@@ -0,0 +1,88 @@
1
+ # Unity automation architecture benchmark
2
+
3
+ This adapter was reviewed against pinned versions of three Unity automation projects before its first public
4
+ release. The comparison is about architecture and contracts; no third-party source code is bundled
5
+ or copied into this repository.
6
+
7
+ ## Source snapshots
8
+
9
+ | Project | Snapshot | Primary role | License |
10
+ | --- | --- | --- | --- |
11
+ | [RageAgainstThePixel/unity-cli](https://github.com/RageAgainstThePixel/unity-cli/tree/c4f45b952c3e23beadfb442fc4c6d5920402c217) | `c4f45b9`, CLI 3.0.1 | Hub, Editor, license, project, batch, build, and UPM lifecycle automation | [MIT](https://github.com/RageAgainstThePixel/unity-cli/blob/c4f45b952c3e23beadfb442fc4c6d5920402c217/LICENSE) |
12
+ | [CoplayDev/unity-mcp](https://github.com/CoplayDev/unity-mcp/tree/c14de1e6dc01ab42d2bb358730cff954bce0ce6b) | `c14de1e`, 10.1.0 | Python MCP server plus Unity Editor plugin and broad authoring tools | [MIT](https://github.com/CoplayDev/unity-mcp/blob/c14de1e6dc01ab42d2bb358730cff954bce0ce6b/LICENSE) |
13
+ | [IvanMurzak/Unity-MCP](https://github.com/IvanMurzak/Unity-MCP/tree/73086e74924efc7ebf4430d3b4fa1ae44d49adaa) | `73086e7`, 0.86.0 | Editor/runtime plugin and CLI communicating with an external C# MCP server over SignalR | [Apache-2.0](https://github.com/IvanMurzak/Unity-MCP/blob/73086e74924efc7ebf4430d3b4fa1ae44d49adaa/LICENSE) |
14
+
15
+ ## Product boundary
16
+
17
+ The projects solve two different automation planes. DCC-MCP Unity keeps them separate:
18
+
19
+ ```mermaid
20
+ flowchart LR
21
+ A["Agent / DCC-MCP gateway"] --> B["Typed live Editor adapter"]
22
+ B --> C["Loopback WebSocket"]
23
+ C --> D["Unity Editor main thread"]
24
+ A -. "future approved jobs" .-> E["Optional Unity toolchain backend"]
25
+ E -. "fixed argv only" .-> F["unity-cli / Unity batch mode"]
26
+ ```
27
+
28
+ - The live plane owns low-latency inspection and undoable Editor authoring.
29
+ - A future toolchain plane may own project creation, compile, test, and build jobs.
30
+ - Hub installation, license management, arbitrary Editor arguments, and credentials are not normal
31
+ MCP tools.
32
+
33
+ ## Decisions adopted for the first release
34
+
35
+ 1. **Explicit commands, not ambient code execution.** The Editor package accepts a fixed method
36
+ allowlist. It does not expose arbitrary C#, reflection calls, menu execution, shell commands, or
37
+ unconstrained file writes.
38
+ 2. **One main-thread boundary.** WebSocket I/O is asynchronous; commands enter through a bounded
39
+ queue and run from `EditorApplication.update`.
40
+ 3. **Fail-closed mutation lifecycle.** Each undoable GameObject mutation has its own Undo group and
41
+ rolls back on failure. Mutations are rejected during compile, asset update, and Play Mode.
42
+ 4. **Bounded transport and output.** Incoming messages, pending requests, queue lifetime, scene
43
+ snapshots, vector values, and captured Console output all have explicit limits.
44
+ 5. **Target evidence.** The bridge handshake includes product name, project path/hash, Unity version, process
45
+ ID, and a session ID stable across domain reloads. Agents inspect the project before mutation.
46
+ 6. **Diagnostic loop.** Project inspection reports Editor readiness, and `editor.read_console`
47
+ provides a bounded read-only view of messages captured after package load.
48
+ 7. **Version preflight.** The installer reads `ProjectSettings/ProjectVersion.txt` and rejects Unity
49
+ versions older than 2021.3 before changing the project.
50
+ 8. **No blind mutation retry.** A timeout is ambiguous: Unity may have completed work near the
51
+ boundary. The workflow requires project and scene inspection before deciding what to do next.
52
+
53
+ ## Deferred extensions
54
+
55
+ - Add a separate optional backend for a pinned `unity-cli` version. It must use fixed argument
56
+ arrays, `shell=False`, bounded output and timeouts, credential redaction, and explicit approval for
57
+ project creation, compile, test, build, or GUI launch.
58
+ - Add core-supported multi-instance routing keyed by project hash and session ID. Until then,
59
+ concurrent Editors use one adapter and a unique bridge port/URL pair per Editor.
60
+ - Add `tests.run`, build, package, and other cross-domain-reload operations only with a persistent
61
+ job protocol (`request_id`, processing state, reconnect, completion, cancellation).
62
+ - Add licensed Unity CI for the minimum supported 2021.3 release and a Unity 6 release. Static CI is
63
+ not presented as live Editor proof.
64
+ - Expand authoring in bounded vertical slices: tests/build first, then carefully typed components,
65
+ prefabs, materials, and assets.
66
+
67
+ ## Capabilities intentionally rejected
68
+
69
+ - Runtime compilation or execution of arbitrary C#.
70
+ - Calling arbitrary public or private methods through reflection.
71
+ - Generic object patching with an unconstrained type/property surface.
72
+ - Arbitrary `unity-cli run`, Unity Hub, menu item, or package URL passthrough.
73
+ - License and service-account credentials supplied as model arguments.
74
+ - Automatic retry of non-idempotent scene mutations.
75
+ - Cloud identity, telemetry, asset-generation providers, or third-party secret stores in the core
76
+ adapter.
77
+
78
+ ## Evidence consulted
79
+
80
+ - `unity-cli` separates project/version detection and Editor execution, uses argument arrays with
81
+ `shell: false`, and maintains real Unity integration workflows: [project parser](https://github.com/RageAgainstThePixel/unity-cli/blob/c4f45b952c3e23beadfb442fc4c6d5920402c217/src/unity-project.ts#L61-L97), [process execution](https://github.com/RageAgainstThePixel/unity-cli/blob/c4f45b952c3e23beadfb442fc4c6d5920402c217/src/utilities.ts#L167-L293), [integration workflow](https://github.com/RageAgainstThePixel/unity-cli/blob/c4f45b952c3e23beadfb442fc4c6d5920402c217/.github/workflows/integration-tests.yml#L1-L74).
82
+ - Coplay uses project hashes for instance routing, keeps the active instance per MCP session,
83
+ dispatches Editor work through a main-thread queue, and provides a large tool catalog; it also
84
+ exposes optional arbitrary C# that is explicitly not a sandbox: [instance middleware](https://github.com/CoplayDev/unity-mcp/blob/c14de1e6dc01ab42d2bb358730cff954bce0ce6b/Server/src/transport/unity_instance_middleware.py#L50-L95), [dispatcher](https://github.com/CoplayDev/unity-mcp/blob/c14de1e6dc01ab42d2bb358730cff954bce0ce6b/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs#L70-L194), [execute-code warning](https://github.com/CoplayDev/unity-mcp/blob/c14de1e6dc01ab42d2bb358730cff954bce0ce6b/Server/src/services/tools/execute_code.py#L1-L9).
85
+ - Ivan Murzak's implementation uses stable project/session identity and main-thread dispatch. Its
86
+ dynamic script execution and reflection-backed capabilities give it a broader operation surface
87
+ than this adapter's fixed allowlist:
88
+ [architecture](https://github.com/IvanMurzak/Unity-MCP/blob/73086e74924efc7ebf4430d3b4fa1ae44d49adaa/docs/claude/architecture.md#L3-L15), [instance identity](https://github.com/IvanMurzak/Unity-MCP/blob/73086e74924efc7ebf4430d3b4fa1ae44d49adaa/Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Editor/Scripts/Services/ProjectInstanceService.cs#L53-L106), [dynamic script execution](https://github.com/IvanMurzak/Unity-MCP/blob/73086e74924efc7ebf4430d3b4fa1ae44d49adaa/Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Editor/Scripts/API/Tool/Script.Execute.cs#L244-L310).
@@ -0,0 +1,13 @@
1
+ # Brand asset sources
2
+
3
+ - Shared DCC-MCP master: approved DCC-MCP brand master.
4
+ - Unity identity: exact approved Unity cube asset, checked against the
5
+ [Unity branding and trademarks guidance](https://unity.com/legal/branding-trademarks).
6
+ - Family composition reference: the approved
7
+ [dcc-mcp-houdini](https://github.com/dcc-mcp/dcc-mcp-houdini) README lockup.
8
+ - `dcc-mcp-unity-imagegen-source.png`: preserved ImageGen source used for the
9
+ Unity Scene-view composition.
10
+ - `dcc-mcp-unity.png`: approved 1200×560 raster. The exact Unity identity asset
11
+ was composited over the generated identity region before approval.
12
+ - `dcc-mcp-unity.svg`: self-contained SVG wrapper around the approved raster;
13
+ it is not a native vector redraw.