Skip to main content

dcc-mcp-zbrush

DCC-MCP · ZBRUSH

Agent workflow

AI agents should use the shared gateway through dcc-mcp-cli; IDE users may continue to use the MCP endpoint. Prefer typed skills and tools over raw scripts.

Install or update the CLI

dcc-mcp-cli is the preferred control path for every shell-capable agent. If it is missing, ask the user before installing the latest official release:

# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-core/main/scripts/install-cli.sh | sh

# Windows PowerShell
powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-core/main/scripts/install-cli.ps1 | iex"

Keep an official build current through the release manifest:

dcc-mcp-cli update check
dcc-mcp-cli update apply

update apply downloads and stages the latest CLI for the next launch. It does not update a running dcc-mcp-server; update that server in its own environment.

dcc-mcp-cli dcc-types
dcc-mcp-cli list
dcc-mcp-cli search --query "<task>" --dcc-type zbrush
dcc-mcp-cli describe <tool-slug>
dcc-mcp-cli call <tool-slug> --json '{"key":"value"}'

dcc-types reports release-catalog support; list reports live sessions. If a tool belongs to an inactive progressive skill, call dcc-mcp-cli load-skill <skill-name> --dcc-type zbrush before retrying. For post-task improvement, attach a stable session id with --meta-json, query dcc-mcp-cli stats --range 24h --session-id <task-id>, then pass the bounded evidence to the review_skill_improvement prompt from dcc-mcp-skills-creator.

PyPI Python 3.9+ License: MIT Status: Pre-Alpha

ZBrush adapter for the DCC Model Context Protocol ecosystem.

Requires ZBrush 2026.1+ with the official Python SDK (CPython 3.11 embedded in ZBrush).

Quick install

1. Install the Python package

pip install dcc-mcp-zbrush

This installs the dcc-mcp-zbrush Python package — the MCP HTTP server that bridges AI agents to ZBrush. It does not include ZBrush plugin files (see step 2).

2. Install the ZBrush plugin

The plugin files (auto-start script, socket bridge) are distributed separately. Download the plugin ZIP from the latest GitHub Release:

dcc-mcp-zbrush-plugin-<version>.zip

Then run the install script inside the ZIP:

Windows (PowerShell):

.\install\install-windows.ps1

macOS (Terminal):

chmod +x install/install-macos.sh && ./install/install-macos.sh

The installer resolves the ZBrush Asset Directory and installs the recommended sidecar bridge as Python/init.py. It fails instead of reporting success when no valid Asset Directory is available; pass -Target explicitly in that case.

3. Restart ZBrush

Launch or restart ZBrush, then start the external MCP sidecar:

dcc-mcp-zbrush --mode sidecar --socket-port 9876

The plugin registers a top-level DCC MCP palette through the official ZBrush Python SDK with these actions:

  • Copy Instance ID
  • Server Info
  • About DCC MCP

Instance identity belongs to the MCP server. In embedded mode the first two actions read the public DccServerBase runtime context. The standalone sidecar plugin does not guess identity from environment variables or registry files; it directs you to dcc-mcp-cli list when that external context is not available in the ZBrush process.

4. Health check

Verify the dynamically allocated instance URL:

dcc-mcp-cli list

5. Configure your AI client

Add the MCP server to your AI client config (Cursor, Claude Desktop, etc.):

{
  "mcpServers": {
    "zbrush": {
      "url": "http://127.0.0.1:9765/mcp"
    }
  }
}

How it works

ZBrush does not ship a built-in HTTP REST server. The pre-alpha scaffold that assumed Preferences > Network > Enable HTTP Server was incorrect.

The supported integration paths are:

Mode When to use Stack
Sidecar + socket plugin (recommended) Production GUI and CI clients External Python → TCP :9876 → main-thread bridge inside ZBrush
Embedded (advanced) Pure-Python experiments only Python plugin inside ZBrush → zbrush.commands

Rust is not loaded inside ZBrush. The dcc-mcp-core wheel (PyO3) runs in the external sidecar process; importing its extension module into the ZBrush 2026 embedded VM is not a supported runtime path. The ZBrush-facing bridge is Python only and executes requests serially on the host main thread while pumping UI updates.

GoZ C++ SDK is for mesh exchange between DCC apps, not general MCP automation — we do not build the primary adapter on GoZ.

Recommended sidecar mode:

AI Agent → Gateway :9765 → OS-assigned MCP instance → ZBrushMcpServer
         → TCP :9876 → mcp_socket_bridge.py (inside ZBrush) → zbrush.commands

Features (v0.2.0)

  • DccServerBase adapter with progressive skill loading
  • Bundled skills: zbrush-scripting, zbrush-scene, zbrush-subtool, zbrush-brush, zbrush-viewport, zbrush-interchange
  • In-process executor for ZBrush's embedded Python VM
  • Optional socket bridge plugin for sidecar deployments
  • Top-level DCC MCP palette registered through zbrush.commands
  • Gateway election compatible with dcc-mcp-core

Requirements

  • ZBrush 2026.1+
  • Python 3.9+ on the sidecar host (ZBrush itself ships 3.11)
  • dcc-mcp-core >= 0.19.45

Environment variables

Variable Default Purpose
DCC_MCP_ZBRUSH_PORT OS-assigned Optional fixed MCP instance port
DCC_MCP_ZBRUSH_MODE auto embedded or sidecar
DCC_MCP_ZBRUSH_AUTOSTART 1 Auto-start embedded server from plugin
DCC_MCP_ZBRUSH_SOCKET_PORT 9876 Socket bridge port (sidecar)
DCC_MCP_GATEWAY_PORT 9765 Gateway election port
DCC_MCP_MINIMAL 1 Progressive skill loading

Bundled skills

Skill Tools
zbrush-scripting execute_python, get_session_info
zbrush-scene get_scene_info, list_subtools
zbrush-subtool select_subtool, get_subtool_status
zbrush-brush create_wrinkle_brush, load_wrinkle_brush
zbrush-viewport capture_turntable
zbrush-interchange export_active_subtool_obj

Path concepts

  • PYTHONPATH — where Python looks for packages (pip install handles this)
  • ZBRUSH_USER_ASSETS_DIR / ZBRUSH_PLUGIN_PATH — plugin scan roots used by ZBrush 2026.1+

pip install dcc-mcp-zbrush puts the Python package on PYTHONPATH.
The plugin ZIP goes into ZBRUSH_PLUGIN_PATH (handled by the install scripts above).

Skill authoring

Skills lazy-import zbrush.commands and run on the main thread (affinity: main).

from dcc_mcp_core.skill import skill_entry
from dcc_mcp_zbrush.api import import_zbc, with_zbrush, zb_success

@skill_entry
@with_zbrush
def my_tool(**kwargs) -> dict:
    zbc = import_zbc()
    count = zbc.get_subtool_count()
    return zb_success(f"{count} subtool(s)", count=count)

Sidecar mode

  1. The plugin ZIP includes sidecar/mcp_socket_bridge.py; install it as <Asset Directory>/Python/init.py (install-windows.ps1 -Mode sidecar).
  2. Start ZBrush.
  3. Run the MCP server outside ZBrush:

The sidecar can also start first: it retains the bridge endpoint and retries the connection on the first tool call after ZBrush becomes available.

dcc-mcp-zbrush --mode sidecar --socket-port 9876

Development

See docs/development.md for source-based setup, testing, and contribution workflow.

References

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcc_mcp_zbrush-0.2.21.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dcc_mcp_zbrush-0.2.21-py3-none-any.whl (51.8 kB view details)

Uploaded Python 3

File details

Details for the file dcc_mcp_zbrush-0.2.21.tar.gz.

File metadata

  • Download URL: dcc_mcp_zbrush-0.2.21.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dcc_mcp_zbrush-0.2.21.tar.gz
Algorithm Hash digest
SHA256 b6b50f0715c7ae211ae8ea1d21145fb10d2e49cd4ad266904a9adc1d443790be
MD5 ef9d47ae17d42d50075ada12931ca192
BLAKE2b-256 253cee693daa2a54bbf26551740de31ea38f8dada639c5a6cce30c0b9aac5814

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_zbrush-0.2.21.tar.gz:

Publisher: release.yml on dcc-mcp/dcc-mcp-zbrush

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dcc_mcp_zbrush-0.2.21-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_zbrush-0.2.21-py3-none-any.whl
  • Upload date:
  • Size: 51.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dcc_mcp_zbrush-0.2.21-py3-none-any.whl
Algorithm Hash digest
SHA256 48683d44ef85ac56c6031c76a3243d96fbae98b89832ffba70559ae188bfd49c
MD5 15e294fe09f36330a4d1cefb8977e5a2
BLAKE2b-256 67f802bc4a673f3e8f99adcf95c9b4e8b19d65ad7da4f654b9df225951641c37

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_zbrush-0.2.21-py3-none-any.whl:

Publisher: release.yml on dcc-mcp/dcc-mcp-zbrush

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.25

2 files

0.2.24

2 files

0.2.23

2 files

0.2.22

2 files

This release

0.2.21 This release

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page