dcc-mcp-server-bin — PyPI distribution blueprint
Status: blueprint — packaging files are wired but no PyPI release has shipped yet. Tracked in issue #1002 (deliverable 3 of RFC #998 Addendum A.7).
This directory packages the crates/dcc-mcp-server Rust binary as a
platform-specific binary-only PyPI wheel, following the same pattern as
ruff, uv, cmake, and pyright. The result is a single
pip install dcc-mcp-server that drops the gateway / sidecar / translate
CLI onto PATH for Python 3.7+ regardless of which DCC the user runs.
Why a separate PyPI package?
dcc-mcp-core is a PyO3 wheel — its _core.so is loaded into the host
Python interpreter (mayapy / blender-python / hython). The sidecar binary,
by contrast, is meant to run as its own OS process; bundling it into
dcc-mcp-core would couple two artefacts with very different release
cadences and ABI matrices. Splitting them is the standard pattern.
| Package | Distributes | Audience |
|---|---|---|
dcc-mcp-core (existing) |
PyO3 wheel (_core.so + Python facade) |
Skill authors, plugin/addon code running inside a DCC interpreter |
dcc-mcp-server (this dir) |
platform-specific Python 3.7+ binary wheels | Operators, sidecar spawners, anyone who wants a standalone gateway |
dcc-mcp-<dcc> (each repo) |
pure-Python plugin/addon glue | DCC plugin loaders (userSetup.py, addon register(), …) |
Layout
pkg/dcc-mcp-server-bin/
├── pyproject.toml ← maturin config, bindings = "bin"
├── python/
│ └── dcc_mcp_server/
│ └── __init__.py ← binary_path() helper for subprocess spawn
└── README.md ← this file
The Rust source is not duplicated here — pyproject.toml sets
manifest-path = "../../crates/dcc-mcp-server/Cargo.toml" so maturin
builds the existing workspace crate.
Local build
# Build a wheel for the current platform / Python
cd pkg/dcc-mcp-server-bin/
vx pip install maturin
vx maturin build --release
# Resulting wheel lands in ../../target/wheels/dcc_mcp_server-*.whl
vx pip install ../../target/wheels/dcc_mcp_server-*.whl
dcc-mcp-server --help
The wheel uses maturin bindings = "bin", so it does not load a Python
extension module and has no CPython ABI dependency. Its metadata deliberately
declares Requires-Python: >=3.7 so embedded Python 3.7 hosts such as Maya
2022 can install it directly.
Cross-platform CI release
The new .github/workflows/release-server-binary.yml workflow (also part
of this PR) builds wheels for:
| OS | Arch | Tag |
|---|---|---|
| manylinux | x86_64 | manylinux_2_28_x86_64 |
| manylinux | aarch64 | manylinux_2_28_aarch64 |
| Windows | x86_64 | win_amd64 |
| Windows | arm64 | win_arm64 |
| macOS | x86_64 | macosx_11_0_x86_64 |
| macOS | arm64 | macosx_11_0_arm64 |
The workflow triggers on tags matching dcc-mcp-server-v* so it stays
independent of the existing dcc-mcp-core release cycle.
Usage from a DCC plugin
# In a Maya plugin / Blender addon, after `pip install dcc-mcp-server`:
import os, subprocess
from dcc_mcp_server import binary_path
_proc = subprocess.Popen([
str(binary_path()),
"sidecar",
"--dcc", "maya",
"--host-rpc", "commandport://127.0.0.1:6000",
"--watch-pid", str(os.getpid()),
])
That's the entire plugin → sidecar wiring. Per-DCC HostRpcClient
implementations land in their respective adapter repos.
Release files for dcc-mcp-server 0.20.34
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dcc_mcp_server-0.20.34-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| dcc_mcp_server-0.20.34-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| dcc_mcp_server-0.20.34-py3-none-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) | Details |
Total release size: 78.4 MB
Release files / dcc_mcp_server-0.20.34-py3-none-win_amd64.whl
| Download URL | dcc_mcp_server-0.20.34-py3-none-win_amd64.whl |
|---|---|
| Size | 19.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
43ec3ce51417f5025b7c7cb90e18d84899b626b3175c7d2d0c178230ddc376a7
|
|
BLAKE2b-256 checksum How to use checksums |
39ea454770ece93ce87648d61ba27ae10c1957087c34e8fd87a92667e61a2590
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / dcc_mcp_server-0.20.34-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | dcc_mcp_server-0.20.34-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 20.0 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
6c6d7da286edef30fca7a434902ae99760babee2bab108fb2ddf80ad673efd3c
|
|
BLAKE2b-256 checksum How to use checksums |
f9ed30238609a98d00d55b40534f48e10400a8fa3f83fbf8e920331b3984c5be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / dcc_mcp_server-0.20.34-py3-none-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl
| Download URL | dcc_mcp_server-0.20.34-py3-none-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl |
|---|---|
| Size | 38.8 MB |
| Tags | Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0d6bb50f98e2ae988c8ea11f4ef1fbcd4f3f56ade44b84ae54a5a48f02a10317
|
|
BLAKE2b-256 checksum How to use checksums |
d42ccb99600440a6598fab3a5016e5da5d4153fb213d9cc870bc1d0e5044ab61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log