dcc-mcp-marmoset
Typed DCC-MCP control for Marmoset Toolbag 4.03+ and 5.x. A pure-Python
Toolbag plugin executes mset calls on mset.callbacks.onPeriodicUpdate; an
external DccServerBase process owns MCP, discovery, jobs, and gateway
registration.
Showcase
The adapter reconstructed Poly Haven's Dirty Football in a live Toolbag 5.02 session: FBX import, explicit Albedo/Normal/Roughness/Metalness/Occlusion assignment, exact-object framing, missing-reference validation, scene save, and 1920x1080 camera render. See the source and validation record.
Install
python -m pip install dcc-mcp-marmoset
In Toolbag, choose Edit > Plugins > Show User Plugin Folder and copy that folder path. Review a non-mutating install plan with the exact Toolbag binary, external interpreter, and copied plugin folder, then execute it:
dcc-mcp-marmoset install --json --dry-run `
--dcc-path "C:\absolute\path\to\toolbag.exe" `
--python "$((Get-Command python).Source)" `
--plugin-dir "C:\path\shown\by\Toolbag"
dcc-mcp-marmoset install --json --yes `
--dcc-path "C:\absolute\path\to\toolbag.exe" `
--python "$((Get-Command python).Source)" `
--plugin-dir "C:\path\shown\by\Toolbag"
Choose Edit > Plugins > Refresh, then launch DCC-MCP. The
plugin starts one host-bound adapter process per Toolbag process; relaunching
the plugin reuses that runtime. Toolbag requires one visible plugin window to
keep callbacks alive, so the adapter uses one compact status window with the
connection state, Toolbag version, loopback port, and stop control. Closing it
stops the plugin. Run dcc-mcp-marmoset verify --json to prove the typed bridge
ping; installed files alone are not readiness. See install.md for
status, upgrade, receipt-driven uninstall, rollback, and troubleshooting.
Agent workflow
Shell-capable agents use the shared CLI:
dcc-mcp-cli list
dcc-mcp-cli search --query "inspect Toolbag scene" --dcc-type marmoset
dcc-mcp-cli load-skill marmoset-scene --dcc-type marmoset
dcc-mcp-cli search --query "inspect Toolbag scene" --dcc-type marmoset
dcc-mcp-cli describe <tool-slug>
dcc-mcp-cli call <tool-slug> --json '{"max_objects":500}'
Use the exact slugs returned by search. IDE-only clients may connect to the
gateway MCP endpoint at http://127.0.0.1:9765/mcp.
Bundled Skills
marmoset-scene— inspect/import/save scenes, assign explicit PBR maps, control visibility, and render cameras.marmoset-lookdev— inspect material slots and frame a hero object or the whole scene.marmoset-diagnostics— inspect GPU/renderer/preferences, find missing textures, release unused resources, inspect tooltip database availability, and control tooltip display.
Typed tools
marmoset_scene__pingmarmoset_scene__inspect_scenemarmoset_scene__import_modelmarmoset_scene__create_pbr_materialmarmoset_scene__set_visibilitymarmoset_scene__save_scenemarmoset_scene__render_cameramarmoset_lookdev__inspect_materialsmarmoset_lookdev__frame_subjectmarmoset_diagnostics__inspect_runtimemarmoset_diagnostics__validate_assetsmarmoset_diagnostics__set_display_tooltipsmarmoset_diagnostics__free_unused_resources
The adapter deliberately exposes no arbitrary Python execution. Its bridge is loopback-only, uses a per-launch random token, caps messages at 1 MiB, and expires queued requests before host mutation. Camera rendering is an async Core job backed by a monolithic Toolbag render call; check job/output state before retrying after a timeout.
Development
vx uv venv .venv --python 3.12
vx uv pip install --python .venv -e ".[dev]"
.venv\Scripts\python -m pytest
.venv\Scripts\python -m ruff check src tests tools
.venv\Scripts\python -m ruff format --check src tests tools
.venv\Scripts\python tools\lint_skills.py
The host API contract follows Marmoset's official Python scripting guide and Toolbag 5 Python API reference.
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_marmoset-0.1.2.tar.gz.
File metadata
- Download URL: dcc_mcp_marmoset-0.1.2.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ad6ca2469462fd6863a73b576a148e6ac06bfe359314f1978386c2d5fabadcb
|
|
| MD5 |
b3aeea2af9e3a8ef0c20bb5f8f971ea5
|
|
| BLAKE2b-256 |
2043a6184ddf3bb7eec3a4f282882dab418fbb53fb2120642ae799c4d3a3218c
|
Provenance
The following attestation bundles were made for dcc_mcp_marmoset-0.1.2.tar.gz:
Publisher:
release.yml on dcc-mcp/dcc-mcp-marmoset
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_marmoset-0.1.2.tar.gz -
Subject digest:
4ad6ca2469462fd6863a73b576a148e6ac06bfe359314f1978386c2d5fabadcb - Sigstore transparency entry: 2600066349
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-marmoset@cffd27d15d918e76d0951f8777872564cf0c795c -
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@cffd27d15d918e76d0951f8777872564cf0c795c -
Trigger Event:
push
-
Statement type:
File details
Details for the file dcc_mcp_marmoset-0.1.2-py3-none-any.whl.
File metadata
- Download URL: dcc_mcp_marmoset-0.1.2-py3-none-any.whl
- Upload date:
- Size: 47.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
380b11980eb70b6a938b80a4a8f7ee4d44e3336138fdb53805e5b20f46f53bf3
|
|
| MD5 |
0a217739ea8c300731c87912ba715306
|
|
| BLAKE2b-256 |
0e0bd15fc0d38fa2a2d0b42b60987d466e611f5259a2be34d01b515a63c2c950
|
Provenance
The following attestation bundles were made for dcc_mcp_marmoset-0.1.2-py3-none-any.whl:
Publisher:
release.yml on dcc-mcp/dcc-mcp-marmoset
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_marmoset-0.1.2-py3-none-any.whl -
Subject digest:
380b11980eb70b6a938b80a4a8f7ee4d44e3336138fdb53805e5b20f46f53bf3 - Sigstore transparency entry: 2600067216
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-marmoset@cffd27d15d918e76d0951f8777872564cf0c795c -
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@cffd27d15d918e76d0951f8777872564cf0c795c -
Trigger Event:
push
-
Statement type: