Skip to main content

3ds Max plugin for the DCC Model Context Protocol (MCP) ecosystem — embeds a Streamable HTTP MCP server directly inside 3ds Max

Project description

dcc-mcp-3dsmax

3ds Max plugin for the DCC Model Context Protocol (MCP) ecosystem.

Status: This project is under active development. APIs, packaging, and 3ds Max integration details may change quickly while the adapter tracks the latest dcc-mcp-core releases.

Features

  • Sidecar MCP Server: Starts dcc-mcp-server.exe sidecar and keeps 3ds Max scene edits on the main thread
  • Progressive Skill Loading: Discover skills without loading them immediately
  • Shared Gateway: Registers with the stable gateway at http://127.0.0.1:9765/mcp
  • Job Persistence: SQLite-based job storage for long-running operations
  • Prometheus Metrics: Optional /metrics endpoint for monitoring

Installation

pip install dcc-mcp-3dsmax

Quickstart (inside 3ds Max MAXScript Listener)

import dcc_mcp_3dsmax

# Start on a random instance port; the public gateway stays fixed.
server = dcc_mcp_3dsmax.start_server()

# Progressive loading — discover skills without loading them immediately
n = server.discover_skills()        # scan paths, register tool metadata
server.load_skill("3dsmax-scene")  # lazy-load a specific skill

dcc_mcp_3dsmax.stop_server()

Sidecar Bridge

Start the sidecar bootstrap inside 3ds Max:

python.ExecuteFile @"C:\path\to\dcc-mcp-3dsmax\examples\start_sidecar_bridge.py"

This starts the random-port /dispatch bridge for main-thread scene edits, a random-port qtserver:// bridge for the sidecar process, and registers the 3ds Max instance with the stable gateway at http://127.0.0.1:9765/mcp. See docs/SIDECAR.md.

The bootstrap also installs a DCC MCP menu with Start Sidecar, Stop Sidecar, Open Gateway Admin, and Print Status commands. 3ds Max shutdown triggers the same stop path via #preSystemShutdown, so the sidecar process and local bridges are cleaned up when the host exits.

Skill Development

Create a skill with SKILL.md metadata file and Python scripts:

# my_skill/action_create_box.py
from dcc_mcp_3dsmax.api import max_success, with_max

@with_max
def main(width: float = 100.0, height: float = 100.0, depth: float = 100.0) -> dict:
    import pymxs
    rt = pymxs.runtime

    box_obj = rt.Box(width=width, height=height, depth=depth)
    return max_success("Created box", object_name=str(box_obj))

Environment Variables

Variable Description Default
DCC_MCP_3DSMAX_METRICS Enable Prometheus /metrics endpoint 0
DCC_MCP_3DSMAX_JOB_STORAGE Path to SQLite job database platform default
DCC_MCP_3DSMAX_DISABLE_EXECUTE_PYTHON Disable execute_python tool 0
DCC_MCP_3DSMAX_DISABLE_ARBITRARY_SCRIPT Disable all arbitrary script execution 0
DCC_MCP_3DSMAX_ENABLE_GATEWAY_FAILOVER Enable gateway failover 1
DCC_MCP_3DSMAX_SKILL_PATHS Extra skill search paths (semicolon-separated) None
DCC_MCP_3DSMAX_BRIDGE_PORT Sidecar bridge localhost port random
DCC_MCP_REGISTRY_DIR Optional shared gateway/sidecar registry override core default

Requirements

  • 3ds Max 2017 or later (Python 3.x with pymxs support)
  • Python >= 3.7
  • dcc-mcp-core >= 0.17.19
  • dcc-mcp-server >= 0.17.19

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_3dsmax-0.1.3.tar.gz (62.1 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_3dsmax-0.1.3-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

File details

Details for the file dcc_mcp_3dsmax-0.1.3.tar.gz.

File metadata

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

File hashes

Hashes for dcc_mcp_3dsmax-0.1.3.tar.gz
Algorithm Hash digest
SHA256 27f377d15c6872d63280c61e720867ae28b1542bf77e8a2f0e9cd62bd818d7ef
MD5 2dc2956527e9e35e5b666a91ef726846
BLAKE2b-256 e504684fd9a2a40fd5d3c70f642f0c43105e525d78f11321f88704a91626e21a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_3dsmax-0.1.3.tar.gz:

Publisher: release.yml on loonghao/dcc-mcp-3dsmax

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_3dsmax-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_3dsmax-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 53.2 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_3dsmax-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bad1b03a799b22469a0b517106dead5190d5599800a2a43f12fb8273f1b9fa6b
MD5 df9971f73c327e3901814d1fae978d95
BLAKE2b-256 2e9a156b536dca75b20debc4942056021072308ad80de84293dfe8d5e80c7126

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_3dsmax-0.1.3-py3-none-any.whl:

Publisher: release.yml on loonghao/dcc-mcp-3dsmax

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