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

Uploaded Python 3

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

Uploaded CPython 3.8+Windows x86-64

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

Uploaded CPython 3.7mWindows x86-64

dcc_mcp_core-0.19.29-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.29.tar.gz.

File metadata

  • Download URL: dcc_mcp_core-0.19.29.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.29.tar.gz
Algorithm Hash digest
SHA256 e6aa1ebe09695ef2d237c31fe447cf6ca5dd94f31ccef83bcfb3d5d47326a933
MD5 55e61fa51a7868ff71eb93c3c12f2966
BLAKE2b-256 0a9d024695ab79768e198fdf668a26cf4872fce69e8f372051a5ab6149786607

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: dcc_mcp_core-0.19.29-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.29-py3-none-any.whl
Algorithm Hash digest
SHA256 504d79b1e1c68e88986ffdf27992332459d3cc7435ce12a46eee4544014b0989
MD5 64cd944c13e964defc53cf35e80efcf8
BLAKE2b-256 4bd5216c659a53e056a1b9aedee13192a2339610ceac315689987302d4979e02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.29-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9c314775e6cd8453be1a478a7faaf66c3f3d845951cc9878b46456c1d77ce9e1
MD5 d0163c01746a68542add9bcf932161c9
BLAKE2b-256 a6c8acbc42e5cb3e0e70441a40c5840d1d8ef886b7096c95c4d112f0c8976418

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.29-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8addd3e0c0382d3666684b3ca9005a903a64d3ee758d5dba54f9c6f67b7aebad
MD5 74154bd2430f320a2cb7c706cf6168d2
BLAKE2b-256 d26fb2c932d5fe4b8b058a3beb9c6556dddc110265771246f932656879cf9406

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_core-0.19.29-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.29-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.29-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 e3b4e9874a8eec147543b22e3e797a02da75b894a442ed30d96d2781cad0fc68
MD5 c9c984f6afb332cb6b1918ef53899f02
BLAKE2b-256 85aad88b69e35bbb14a23c9cf890257d87a79ff4a185e623c50172545668323a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.29-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f1b996e8fa3d4dc438d57fd7b7010d3ce11dc4f963d003003fababda00c65c58
MD5 4adf12e5b69342ab1700e6683334b0be
BLAKE2b-256 b2acf221a47cf1a503f9391b3dc9beada2724bda255f879e28ccac46d6cb37a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for dcc_mcp_core-0.19.29-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f49b65724f92963019ad745b7b09eafacb263bfc55fdd4239fa6bbf5bc5e15b1
MD5 b9604e1844724a284d08dc50e7f68d3a
BLAKE2b-256 e960b5827bd40a30044ab1775a6d33fa0790daf7875e89bd1d8d2d98214d62c3

See more details on using hashes here.

Provenance

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