Typed, workspace-bounded Material Maker automation for DCC-MCP.
Illustrative workflow generated with OpenAI ImageGen from the retained source in docs/images/sources; it is not a Material Maker screenshot or host-validation artifact.
The adapter inspects and validates Material Maker .ptex graphs without launching
the editor, then uses Material Maker's documented command-line exporter for
Blender, Godot, Unity, or Unreal handoff. It is a standalone service: there is no
in-process plug-in, loopback bridge, arbitrary GDScript, shader, or shell input.
| Typed tool | Contract |
|---|---|
get_status |
Load a trusted .ptex and require bounded transient export artifacts from the native executable. |
inspect_project |
Report file hash, graph/node/connection counts, material outputs, and node types. |
validate_project |
Check graph structure, unique node names, endpoints, ports, and configured limits. |
export_material |
Export one valid .ptex project into a new staging-backed output directory. |
Interactive graph authoring is intentionally outside this adapter's typed contract. Use Material Maker itself when visible node editing is required.
- Python 3.9 or newer
dcc-mcp-core0.20.14 or newer- Material Maker 1.7.0 or newer for native export
Follow Installation for the supported wheel lifecycle, three-platform configuration, JSON verification, upgrade, uninstall, and troubleshooting contract. The adapter wheel is not currently published to PyPI; do not treat the package name as an available public pip install until the release artifact and Core catalog entry exist.
After installing a trusted, digest-verified wheel, point the adapter at the official
Material Maker executable, report its canonical product release, and choose a
trusted .ptex readiness project:
export DCC_MCP_MATERIAL_MAKER_EXECUTABLE=/opt/material-maker/material_maker
export DCC_MCP_MATERIAL_MAKER_VERSION=1.7.0
export DCC_MCP_MATERIAL_MAKER_PROBE_PROJECT=/workspace/materials/readiness.ptex
export DCC_MCP_MATERIAL_MAKER_ALLOWED_ROOTS=/workspace/materials
dcc-mcp-material-maker install --json --dry-run --install-root /workspace/dcc-mcp-material-maker --dcc-path /opt/material-maker/material_maker --python /usr/bin/python3
# Review the schema-valid plan, then execute its exact next_steps[].command.
dcc-mcp-material-maker verify --json --install-root /workspace/dcc-mcp-material-maker
dcc-mcp-material-makerOn Windows, use semicolons between multiple allowed roots; on POSIX systems, use colons. The adapter also searches common installation locations when the executable variable is omitted.
- resolves projects and destinations under explicit allowed roots;
- accepts UTF-8 JSON
.ptexprojects only; - bounds project size, graph traversal, node/connection counts, export files, export bytes, runtime, and captured output;
- invokes a fixed executable argument vector with
shell=Falsesemantics; - supports Core cancellation and owns the complete native process tree with a Windows Job Object or POSIX process group so timeout/cancel leaves no orphan;
- exports into a private staging directory, rejects links and empty output, hashes every file, and atomically exposes only a complete new directory;
- treats process exit zero without a validated
.ptexand nonempty bounded export artifacts as not ready; - never overwrites an existing export directory.
See Architecture for trust boundaries and configuration.
python -m pip install -e ".[dev]"
python -m pytest -q
python -m ruff check src tests tools
python -m ruff format --check src tests tools
python tools/lint_skills.py
python -m build
python -m twine check dist/*The native exporter follows the official Material Maker command-line interface: https://rodzilla.itch.io/material-maker.
Real Material Maker acceptance remains unverified; automated tests use bounded native helpers and synthetic projects rather than the licensed host.
