Skip to main content

ZBrush adapter for the DCC Model Context Protocol (MCP) ecosystem — embedded Python SDK + optional socket bridge

Project description

dcc-mcp-zbrush

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).

Architecture decision

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
Embedded (recommended) ZBrush 2026.1+ with Python SDK Python plugin inside ZBrush → dcc-mcp-core MCP HTTP server → zbrush.commands
Sidecar + socket plugin External MCP process / restricted installs External Python → TCP :9876 → bridge/plugin/mcp_socket_bridge.py inside ZBrush

Rust is not used inside ZBrush. Like Maya/Houdini, Rust lives in the dcc-mcp-core wheel (PyO3) that powers the MCP HTTP server. The ZBrush-facing code is Python only.

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

Embedded mode (default inside ZBrush):

AI Agent → MCP HTTP :8765 → ZBrushMcpServer (inside ZBrush) → zbrush.commands

Sidecar mode:

AI Agent → MCP HTTP :8765 → ZBrushMcpServer (external Python)
         → 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
  • In-process executor for ZBrush's embedded Python VM
  • Optional socket bridge plugin for sidecar deployments
  • 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.18.2

Installation

Embedded mode (inside ZBrush)

  1. Install the package into a directory on PYTHONPATH or ZBRUSH_PLUGIN_PATH:
pip install dcc-mcp-zbrush -t /path/to/zbrush/python/libs
  1. Copy the auto-start plugin:
# Windows
copy bridge\plugin\dcc_mcp_zbrush %USERPROFILE%\Documents\ZBrushData\ZStartup\ZPlugs64\dcc_mcp_zbrush

# macOS
cp -R bridge/plugin/dcc_mcp_zbrush ~/Library/Application\ Support/ZBrush/ZStartup/ZPlugs64/
  1. Restart ZBrush. MCP endpoint: http://127.0.0.1:8765/mcp

Or from ZBrush Python console:

import dcc_mcp_zbrush
dcc_mcp_zbrush.start_server(mode="embedded")

Sidecar mode (external process)

  1. Install the socket bridge plugin in ZBrush (bridge/plugin/mcp_socket_bridge.py).
  2. Start ZBrush.
  3. Run the MCP server outside ZBrush:
dcc-mcp-zbrush --mode sidecar --port 8765 --socket-port 9876

Environment variables

Variable Default Purpose
DCC_MCP_ZBRUSH_PORT 8765 MCP HTTP 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

Cursor / Claude MCP config

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

With gateway:

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

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)

References

License

MIT

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

dcc_mcp_zbrush-0.2.2.tar.gz (29.2 kB 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.2-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dcc_mcp_zbrush-0.2.2.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dcc_mcp_zbrush-0.2.2.tar.gz
Algorithm Hash digest
SHA256 da1879ea8ed3b9c9bdd929656be29c12e659e47a502c1bbc0c695cc8d0e756db
MD5 b9be399b14804ae4f9ae761dda9c2f8b
BLAKE2b-256 1853093cc1a31d0f93cdca80b7a42184192497751ecab6ab821ec70f91c51a53

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_zbrush-0.2.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_zbrush-0.2.2-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.12

File hashes

Hashes for dcc_mcp_zbrush-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 228bd0089e9f11983f742af7d565acae4f25a603318b40aaa8fe781dfac942bf
MD5 6b650b8ca947f59e5d02ecc40952115d
BLAKE2b-256 45e83e9e0f179e773361438733a3cb4f804df07bf080cf0c138a9580d2febc03

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_zbrush-0.2.2-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.

Supported by

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