Skip to main content

dcc-mcp-cli-bin — PyPI wrapper for the dcc-mcp-cli binary

This directory builds the dcc-mcp-cli PyPI project: one platform-specific wheel per release that puts the Rust CLI on PATH.

# Run it without installing anything
uvx dcc-mcp-cli --version

# Or install it into a tool environment / venv
uv tool install dcc-mcp-cli
pip install dcc-mcp-cli

Why a wrapper instead of a raw binary wheel?

pkg/dcc-mcp-server-bin ships its raw executable through maturin's bindings = "bin". dcc-mcp-cli deliberately does not:

Raw binary wheel This wrapper
Per-release PyPI storage ~165 MB (three platforms) ~66 MB (three platforms)
PyPI 10 GB budget ~60 releases ~152 releases
Payload the executable the release zip, unpacked on first use

The wheel embeds the same dcc-mcp-cli-<version>-<platform>.zip the GitHub Release publishes, verifies its SHA-256 against payload.json, and unpacks it into the environment's scripts directory on the first invocation.

Layout

pkg/dcc-mcp-cli-bin/
├── pyproject.toml                 # hatchling; console script dcc-mcp-cli
├── python/dcc_mcp_cli/
│   ├── __init__.py                # public API: binary_path(), main()
│   ├── __main__.py                # python -m dcc_mcp_cli
│   ├── _bootstrap.py              # unpack + exec
│   └── _payload/                  # staged at build time, git-ignored
│       ├── payload.json
│       └── dcc-mcp-cli-<version>-<platform>.zip
└── tests/test_cli_bootstrap.py

Where the binary lands, and why it matters

The bootstrap unpacks the executable into the scripts directory of the interpreter that installed the wheel — <venv>/bin on POSIX, <venv>\Scripts on Windows — and then executes it. Consequences:

  • Component contract. current_exe.parent() resolves to that directory, so dcc-mcp-cli components ensure dcc-cua installs dcc-cua as a sibling and detects it on the next run. A package manager must therefore keep the CLI in a single directory; unpacking into site-packages would break it.
  • POSIX vs Windows naming. On POSIX the unpacked binary replaces the console script, so dcc-mcp-cli becomes the native executable directly. On Windows the pip-generated dcc-mcp-cli.exe launcher is the running process image and cannot be replaced while mapped, so the binary is unpacked as dcc-mcp-cli-bin.exe and the launcher execs it.
  • Read-only prefixes. If the scripts directory is not writable, the bootstrap falls back to a per-user directory (~/.local/share/dcc-mcp-cli/bin, or %LOCALAPPDATA%\dcc-mcp-cli\bin). Set DCC_MCP_CLI_BIN_DIR to pin the location explicitly.

dcc-cua is intentionally not distributed here. It is an independently released companion executable that dcc-mcp-cli components ensure reconciles by version next to the CLI; shipping it as a second distribution would create two copies and version drift.

Self-update is disabled

The bootstrap writes dcc-mcp-cli.package-manager.json next to the unpacked binary. crates/dcc-mcp-cli reads that marker and refuses update apply:

error: this dcc-mcp-cli was installed by a package manager (pypi)

The GitHub Release build keeps self-update; the package-manager build does not, because replacing current_exe would fight the package manager's version authority. Upgrade through the package manager instead:

uv tool upgrade dcc-mcp-cli
pipx upgrade dcc-mcp-cli
pip install --upgrade dcc-mcp-cli

Building locally

# 1. Build the release archive (example: current platform)
cargo build --release -p dcc-mcp-cli
python scripts/release/build_standalone_bundle.py \
  --version 0.20.34 \
  --platform windows-x86_64 \
  --binary-name dcc-mcp-cli \
  --binary-path target/release/dcc-mcp-cli.exe \
  --out-dir dist

# 2. Stage the archive and build the retagged wheel
python -m pip install "build>=1.2" "hatchling>=1.25" "wheel>=0.46"
python scripts/release/build_cli_wrapper_wheel.py \
  --version 0.20.34 \
  --platform windows-x86_64 \
  --zip dist/dcc-mcp-cli-0.20.34-windows-x86_64.zip \
  --out-dir wheels
python scripts/release/cli_wheel_tags.py validate --wheel-dir wheels --version 0.20.34

CI runs the same three steps in the build-cli-wheels job of .github/workflows/release.yml, once per platform, from the archives the build-binaries job already produced.

Python compatibility

The bootstrap is pure Python with no third-party imports and runs unchanged on Python 3.7 (Maya 2022), so the project's LTS floor applies: the wheel declares Requires-Python: >=3.7 and carries the full 3.7–3.14 classifier set. The binary it unpacks has no CPython ABI dependency — the interpreter only ever starts it as a child process.

Metadata

Release files for dcc-mcp-cli 0.20.37

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dcc-mcp-cli 0.20.37
File Interpreter ABI Platform
dcc_mcp_cli-0.20.37-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
dcc_mcp_cli-0.20.37-py3-none-manylinux_2_39_x86_64.whl Python 3 none Linux glibc 2.39+ x86-64 Details
dcc_mcp_cli-0.20.37-py3-none-macosx_11_0_universal2.whl Python 3 none macOS 11.0+ universal2 (ARM64, x86-64) Details

Total release size: 65.9 MB

Release files / dcc_mcp_cli-0.20.37-py3-none-win_amd64.whl

Download URL dcc_mcp_cli-0.20.37-py3-none-win_amd64.whl
Size 16.0 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
2e47cdfd7b9146f907c7b75efff4f764263c2d9805d32bc44a6df82990606af7
BLAKE2b-256 checksum
How to use checksums
6a61f7af91c5197a404537f9592dc788a2c71c725c80eec3f1f6381a6c7ac8c6
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 28, 2026.

Transparency log

Release files / dcc_mcp_cli-0.20.37-py3-none-manylinux_2_39_x86_64.whl

Download URL dcc_mcp_cli-0.20.37-py3-none-manylinux_2_39_x86_64.whl
Size 17.0 MB
Tags Linux glibc 2.39+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b5e7fe1291a224fd712a77ab18aed94b25b3153e308bd3610ecd2255fe9f0b09
BLAKE2b-256 checksum
How to use checksums
edf13840b692f7d98dabc973c032836787b6b57ee616e443386117524a72a437
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 28, 2026.

Transparency log

Release files / dcc_mcp_cli-0.20.37-py3-none-macosx_11_0_universal2.whl

Download URL dcc_mcp_cli-0.20.37-py3-none-macosx_11_0_universal2.whl
Size 33.0 MB
Tags Python 3 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f2307d3fddf7f388732536b8070eb782acbb97061c73ff31b532bcbc459ebe78
BLAKE2b-256 checksum
How to use checksums
aa521fd389ec4ddf359275a5a9d73feab6a7c3a4e8e8a033c58097f19701481d
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 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.20.37 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page