Skip to main content

Foundational library for the DCC Model Context Protocol (MCP) ecosystem

Project description

dcc-mcp-core

dcc-mcp-core logo

Core PyPI Server PyPI CI GitHub Release License

中文 | English

Rust-first control plane for connecting AI agents to live DCC sessions.

dcc-mcp-core turns Maya, Blender, Houdini, Photoshop, and custom studio hosts into discoverable MCP and REST capabilities. It provides the gateway, skills, structured results, main-thread dispatch, diagnostics, IPC, workflows, and packaged CLI/server binaries needed to operate real desktop sessions.

Choose your entry point

You want to… Start with
Control a running DCC from an agent or CI job dcc-mcp-cli
Expose a DCC adapter over MCP/REST create_skill_server
Add tools without Python registration code SKILL.md + tools.yaml
Build a new DCC adapter new-adapter-onboarding.md
Understand routing and multi-instance behavior gateway.md
Integrate from any HTTP client rest-api-surface.md

The current contract

The default agent path is CLI + REST:

dcc-mcp-cli list
  -> search
  -> describe
  -> load-skill (only when needed)
  -> call

The gateway keeps tools/list bounded. It advertises the canonical discovery/dispatch wrappers (search, describe, load_skill, and call) instead of fanning every backend tool into one large list. Backend capabilities are discovered by search, inspected by describe, and invoked through the wrapper or the REST twin (POST /v1/search, /v1/describe, /v1/call).

When a concrete DCC session is needed, read gateway://instances; each entry already includes its mcp_url. Do not use the removed legacy instance tools (list_dcc_instances, get_dcc_instance, or connect_to_dcc). Wrapper inputs belong inside arguments; do not put backend fields beside tool_slug.

For direct per-DCC MCP connections, the compatibility discovery names (search_tools, describe_tool, and call_tool) remain available where the server exposes them. New gateway integrations should use the canonical names above.

Quick start: operate a DCC

Install the standalone CLI when you need the operator/CI control plane without setting up Python:

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

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

Then discover a live capability before calling it:

dcc-mcp-cli list
dcc-mcp-cli search --query "create sphere" --dcc-type maya --limit 20
dcc-mcp-cli describe <tool-slug>
dcc-mcp-cli call <tool-slug> --json '{"radius": 2.0}'

Replace the placeholder with the slug returned by search. For remote workstations, register a gateway profile and select it:

dcc-mcp-cli gateway register https://workstation.example:19293 --name pcA
dcc-mcp-cli gateway set pcA
dcc-mcp-cli list

Use dcc-mcp-cli doctor when startup or readiness is unclear. Open the local Admin UI at http://127.0.0.1:9765/admin after the gateway is available.

Quick start: expose skills from Python

pip install dcc-mcp-core

Point the server at a skill directory and start the MCP endpoint:

import os

from dcc_mcp_core import McpHttpConfig, create_skill_server

os.environ["DCC_MCP_MAYA_SKILL_PATHS"] = "/path/to/skills"

server = create_skill_server("maya", McpHttpConfig(port=8765))
handle = server.start()
print(handle.mcp_url())

For manual handler registration, use McpHttpServer and ToolRegistry. For adapter lifecycle, readiness, gateway registration, and hot reload, use DccServerBase as described in the adapter guides.

Add a skill without framework glue

The project follows the agentskills.io frontmatter contract. Put dcc-mcp-core extensions under metadata.dcc-mcp and keep tool declarations in a sibling file:

my-skill/
├── SKILL.md
├── tools.yaml
└── scripts/
    └── do_thing.py
# SKILL.md
---
name: my-skill
description: "Does a useful Maya task. Use when the user asks for it."
metadata:
  dcc-mcp:
    dcc: maya
    tools: tools.yaml
    search-hint: "geometry, scene task"
---
# tools.yaml
tools:
  - name: do_thing
    description: Do the task in the active Maya scene.
    source_file: scripts/do_thing.py
    execution: sync
    affinity: main
    annotations:
      read_only_hint: false
      destructive_hint: true

Run the same production validator used by CI with dcc-mcp-cli lint path/to/skills. See Skills for schemas, groups, dependencies, testing, and migration rules.

Architecture

dcc-mcp-core architecture

The runtime has four useful layers:

  1. DCC service — owns skills and executes tools inside one DCC process.
  2. Sidecar/supervisor — bridges host RPC, readiness, process lifetime, and gateway registration when an adapter uses the packaged runtime.
  3. Gateway daemon — aggregates live instances and owns discovery, routing, REST, Admin UI, audit, and diagnostics.
  4. Client surfaces — CLI, MCP clients, REST clients, and marketplace tools.

The Rust workspace and package membership are defined by the root Cargo.toml. The Python package is a PyO3 extension with pure Python helpers and supports Python 3.7–3.14. Build-from-source requirements come from rust-toolchain.toml and package metadata; the repository does not duplicate version or package counts in this README.

Documentation map

Development

Use the repository-pinned toolchain where possible:

vx just install
vx just dev
vx just test
vx just test-rust
vx just lint
vx just docs-check

docs-check builds the VitePress site and catches documentation links and syntax errors. Markdown lint runs in the docs CI workflow. See CONTRIBUTING.md for coding, testing, and release rules.

License

MIT — see LICENSE.

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_core-0.19.27.tar.gz (7.6 MB view details)

Uploaded Source

Built Distributions

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

dcc_mcp_core-0.19.27-py3-none-any.whl (456.8 kB view details)

Uploaded Python 3

dcc_mcp_core-0.19.27-cp38-abi3-win_amd64.whl (19.2 MB view details)

Uploaded CPython 3.8+Windows x86-64

dcc_mcp_core-0.19.27-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

dcc_mcp_core-0.19.27-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (36.2 MB view details)

Uploaded CPython 3.8+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

dcc_mcp_core-0.19.27-cp37-cp37m-win_amd64.whl (19.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

dcc_mcp_core-0.19.27-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

File details

Details for the file dcc_mcp_core-0.19.27.tar.gz.

File metadata

  • Download URL: dcc_mcp_core-0.19.27.tar.gz
  • Upload date:
  • Size: 7.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dcc_mcp_core-0.19.27.tar.gz
Algorithm Hash digest
SHA256 d068b706f6a2d3e266f7acd6da790bb82f3fc85271a3bb3617f086f4ae9f258e
MD5 6b6483eaded44475b1348a946f0a59db
BLAKE2b-256 7654fd68735a9e79d323a8460e41ffaf04cc87a42ceb4c8ad746abceab5cb2f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27.tar.gz:

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

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_core-0.19.27-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_core-0.19.27-py3-none-any.whl
  • Upload date:
  • Size: 456.8 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_core-0.19.27-py3-none-any.whl
Algorithm Hash digest
SHA256 3c43bca2059104a5a69ead14b53cbf91b69d95a871cecd7a7122205d4c1f643a
MD5 aaefc043843f9ff2f66d011b1d2140bc
BLAKE2b-256 49328a24011e701ba577555406241d7f69a23032f5a5db228a67f5b8c76f2b1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-py3-none-any.whl:

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

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_core-0.19.27-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.27-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ac768f4b34a0c5f70a837c27db756e49c7c0c19de4d67935300c40da587090b1
MD5 8ce4857cce6bdb106d122671b709ccf5
BLAKE2b-256 df0bc4d637d5bc942df28b5b0cb59bc4933741952e8a9fe082a816014f700a1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-cp38-abi3-win_amd64.whl:

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

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_core-0.19.27-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.27-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d6a353a48a484e5377869e954176e10f228c6d1262f4fbb3b3da236b607e329
MD5 16da9d50fbf5ba8d4e7a8cb7d279614f
BLAKE2b-256 f33c8b915fa4985faa9628598ee65f07b3eb613dea56c1877542c4dc89c3eb61

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

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

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_core-0.19.27-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.27-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 7dda4e3c405afd79d84dd58fd9e5690bb13f86ae58682d9b814d704d6fac6233
MD5 7bb86ddc6225f9b07f45a085a1433f33
BLAKE2b-256 637d8a8ab91be63967f52cb8313cb6a7fa3d012a304d9b274f74d0e61b1136c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

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

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_core-0.19.27-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.27-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 270dc4ad3359c2ea245716b1f9bd2db5e2321af2a4f1b70ec8a214469fdc3eda
MD5 d797d1eb16b299a80fc1fbdf3f4df668
BLAKE2b-256 8c940d3bc414436d4a715a077a6373615c575247ebb8b1e526c5ac988e75e15c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-cp37-cp37m-win_amd64.whl:

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

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_core-0.19.27-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.27-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96cd2b5c4782edf782f66b726654f62514267cf7cc9588e9cf07171ced346600
MD5 5aa5973a7d04c235a8cf2471c589f9cb
BLAKE2b-256 837c1aec43df794b839e6562f4297bc7b615d940f3b3900483f746b9cf150a49

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.27-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

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

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