Unity Editor adapter and typed game-authoring skills for DCC-MCP
Project description
dcc-mcp-unity
Unity Editor adapter for the DCC Model Context Protocol ecosystem. It ships a UPM Editor package, a loopback WebSocket bridge, and typed project and scene tools.
The first-release boundary and comparison with unity-cli and two established Unity MCP projects
are documented in the architecture benchmark.
Install
pip install dcc-mcp-unity
dcc-mcp-unity-install /path/to/UnityProject
Open or restart the Unity project so Package Manager compiles DCC-MCP Unity, then run:
dcc-mcp-unity
See the installation guide for upgrade, environment, and connection verification details.
The MCP endpoint uses a free loopback port and is registered for gateway discovery. Set
DCC_MCP_UNITY_PORT=8765 before starting the server only when a fixed direct endpoint is needed.
The Editor package reconnects to the loopback bridge at ws://127.0.0.1:3852; set
DCC_MCP_UNITY_BRIDGE_PORT before the MCP server and DCC_MCP_UNITY_BRIDGE_URL before Unity starts
to override it. DCC_MCP_UNITY_BRIDGE_TIMEOUT may increase the 60-second RPC timeout but cannot
lower it; queued Editor work expires first so timed-out mutations are not executed later.
The default bridge targets one Unity Editor. For concurrent Editors, run one adapter per Editor and assign each pair a unique bridge port and URL before starting either process.
Agent workflow
- Load
unity-projectand callinspect_projectbefore assuming project or editor state. Stop if the returned project is not the intended target or the Editor is compiling, updating, entering Play Mode, or playing. - Load
unity-sceneand callinspect_sceneimmediately before using an instance ID. - Create GameObjects or change transforms through typed operations backed by Unity Undo.
- Verify the hierarchy, then explicitly call
save_scene. - Load
unity-diagnosticsand callread_consoleafter failures or as a final verification step.
Do not automatically retry a timed-out scene mutation. Inspect the project and scene first because the Editor may have completed the original request near the timeout boundary.
No raw C# evaluation, shell command, or arbitrary filesystem write is exposed. The Editor bridge
accepts only the methods implemented in DccMcpCommands and executes them on Unity's editor update
loop. Mutations fail closed during compilation, asset updates, and Play Mode. Requests, queued work,
scene snapshots, Console reads, and serialized responses have explicit size or lifetime budgets.
Validation boundary
Public CI validates Python 3.9 and 3.12 on Windows, macOS, and Linux; validates the bundled skill contracts; performs static checks for the UPM package and main-thread/Undo contracts; and builds the PyPI artifacts. Automated live Unity Editor CI is intentionally not claimed because it requires a provisioned Unity CI license or activation. A real Editor smoke should be run before promoting the adapter from alpha.
Development
uv sync --extra dev
uv run python -m pytest
uv run ruff check src tests tools
uv run ruff format --check src tests tools
uv run python tools/lint_skills.py
uv run python -m build
uv run python -m twine check dist/*
Unity and the Unity cube logo are trademarks of Unity Technologies. This independent adapter is not affiliated with or endorsed by Unity Technologies.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dcc_mcp_unity-0.2.0.tar.gz.
File metadata
- Download URL: dcc_mcp_unity-0.2.0.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaa3f846a682265216095beaf2df84692ab6593f8f8b374bfa05b9effbc8da74
|
|
| MD5 |
b468d0945f741132d81004630b0449c6
|
|
| BLAKE2b-256 |
b534824941e8e05da6c6c2ee5787baf53218255d930c0a54b5620b13cb0844bb
|
Provenance
The following attestation bundles were made for dcc_mcp_unity-0.2.0.tar.gz:
Publisher:
release.yml on dcc-mcp/dcc-mcp-unity
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_unity-0.2.0.tar.gz -
Subject digest:
eaa3f846a682265216095beaf2df84692ab6593f8f8b374bfa05b9effbc8da74 - Sigstore transparency entry: 2211757837
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-unity@a76370e58a0d43585296aed406bfa764c2a9cade -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dcc-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a76370e58a0d43585296aed406bfa764c2a9cade -
Trigger Event:
push
-
Statement type:
File details
Details for the file dcc_mcp_unity-0.2.0-py3-none-any.whl.
File metadata
- Download URL: dcc_mcp_unity-0.2.0-py3-none-any.whl
- Upload date:
- Size: 27.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08f835c3cc8ec299cb18e4174c3c7db97bbfc49cd245277f44eca86df6660250
|
|
| MD5 |
0215497f32a398616124649fd4dffc4c
|
|
| BLAKE2b-256 |
c9fd3db9b1d26dfa6f9f4b8deabbfdb97ba936e7d405b3ac2103e111dbf5f65c
|
Provenance
The following attestation bundles were made for dcc_mcp_unity-0.2.0-py3-none-any.whl:
Publisher:
release.yml on dcc-mcp/dcc-mcp-unity
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_unity-0.2.0-py3-none-any.whl -
Subject digest:
08f835c3cc8ec299cb18e4174c3c7db97bbfc49cd245277f44eca86df6660250 - Sigstore transparency entry: 2211757855
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-unity@a76370e58a0d43585296aed406bfa764c2a9cade -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dcc-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a76370e58a0d43585296aed406bfa764c2a9cade -
Trigger Event:
push
-
Statement type: