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.30.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.30-py3-none-any.whl (456.8 kB view details)

Uploaded Python 3

dcc_mcp_core-0.19.30-cp38-abi3-win_amd64.whl (19.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

dcc_mcp_core-0.19.30-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.30-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.30-cp37-cp37m-win_amd64.whl (19.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

dcc_mcp_core-0.19.30-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.30.tar.gz.

File metadata

  • Download URL: dcc_mcp_core-0.19.30.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.30.tar.gz
Algorithm Hash digest
SHA256 c4b0846103453528167af51a9bf5a43710c977e7eb47aa5d6309e7860b4b49c8
MD5 2754fd28a2d4f01727b6c99bf45b629c
BLAKE2b-256 eb14df9ba812a1fccdce73c688391b4ab3216211aa04e17583cb2b235745e389

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30.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.30-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_core-0.19.30-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.30-py3-none-any.whl
Algorithm Hash digest
SHA256 83b481d28a7c99e4ab0dae0d9901a37f6867f289d091ab737d6c1c8d89c25f1f
MD5 cf5eddf86dcb4abeda4bf69883f68010
BLAKE2b-256 fbaf0c281f4c2fc8442af307237c3ea291f4be15501a524d33554ae89ca98b4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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.30-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.30-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 680d4dafdffffdeaeb2325c99b6f8b38a1ca6ed03986e1b2ef1a62ad7890da5c
MD5 0f8188b778a139666a754f472880421d
BLAKE2b-256 2df4b5c29c985e6ba4f586919fb4368c96e243bbe9b461491e0fe8ab9f610c4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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.30-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.30-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19c4930ad585b033fd046cb9700e5e5b6106b01ebed896c72d34151327dd8aca
MD5 7f139d1aa6e06b6b1fb883ace24af8be
BLAKE2b-256 8992239496c911886c58ddfe5c98ddf3a281a104e141e81315f2151c9667502b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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.30-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.30-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4c264ad5710e0954b0675b80a7937924da35341db26cdeeb4f45aa93cd99686a
MD5 b979959d6f985e76e51997169c72fddd
BLAKE2b-256 2c0fb5a437749d856b096497d4fed4e80ce897e4b949c954dd4e5018d12b3e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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.30-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.30-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1e7fe8b0301749f9a470bed3f7b5e59ce09ae1b93a1b3c4d4785c3b755d1de37
MD5 4da703b3a0d2e2c3242a8c975086bea2
BLAKE2b-256 5a34a2244615bfd8b721567cceaf29c8a770d2861a8d7e7dab9bb826d032661f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48695b91d97598036b738550c28aa3bd8f1d704754253e99cd36d27dc7e2e852
MD5 5cf85cad8ca314f038d1122579855168
BLAKE2b-256 716c1d4b514645e0db3e738220ca0fe174c18e7e46a94f0e84dfc07db9c2fea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.30-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