DCC-MCP Creator
Create and modernize DCC-MCP adapters
Rank
62
Safety
84
Downloads
6.3k
Updated
Oct 9, 2026
Version
0.19.107
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 6.3K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 6.3K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.19.107release · observed Sep 29, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s176cy7je3jzfnkewtyz7ja0e183m3t9:dcc-mcp-creator- Install using `clawhub skill install s176cy7je3jzfnkewtyz7ja0e183m3t9:dcc-mcp-creator` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/loonghao/dcc-mcp-creator before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-loonghao-dcc-mcp-creator/snapshot"
Documentation
CLAWHUB
160,000 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: dcc-mcp-creator
description: >-
Build or modernize DCC-MCP adapters and standalone studio MCP services. For individual tool skill packages, use dcc-mcp-skills-creator.
license: MIT-0
allowed-tools: Bash Read Write Edit
metadata:
dcc-mcp:
dcc: python
layer: infrastructure
compatibility: "dcc-mcp-core 0.17+, Python 3.7+"
version: "0.19.107"
search-hint: >-
create DCC MCP adapter, Nuke MCP, DccServerBase, HostExecutionBridge,
dispatcher, readiness, resources, gateway, Blender, 3ds Max, Unreal,
ZBrush, Houdini, Maya, standalone internal MCP service, private intranet,
non-DCC server, chunked main-thread jobs, cooperative cancellation
tags: "adapter-development, internal-mcp-service, standalone, host-runtime, dispatcher, gateway, nuke, blender, 3dsmax, unreal, zbrush"
skill-reference-docs:
- "references/*.md"
openclaw:
homepage: https://github.com/dcc-mcp/dcc-mcp-agent-plugins/blob/main/plugins/dcc-mcp/skills/dcc-mcp-creator/SKILL.md
---
# DCC-MCP Creator
Implement the requested adapter or service within its owner's project. A private
service needs no public repository, catalog entry, issue or release. For operating
an existing app use `dcc-mcp`; for individual tool packages use `dcc-mcp-skills-creator`.
An already-loaded skill needs no installation or new agent turn.
## Implementation boundaries
Use `DccServerBase` and `DccServerOptions.from_env(...)`, with host API calls
through `HostExecutionBridge`. Embedded, sidecar and standalone services have
different owner/host lifetimes; resolve that contract before wiring the runtime.
Reuse Core's public lifecycle, discovery and state owners rather than parallel
adapter implementations. Keep identity and host configuration data-driven.
Application UI uses project-owned `dcc-cua` / `ui-control`. Before observation
or input report `provider=dcc-cua runtime=<version> pid=<exact-pid> hwnd=<exact-native-hwnd>`.
Missing binding blocks actions. Read the bundled `dcc-cua` skill for UI work;
never fall back to generic Computer Use without the user's explicit change of provider.
## Choose relevant guidance
| Work | Read |
|---|---|
| New or modernized public adapter | [Adapter workflow](references/ADAPTER_WORKFLOW.md), [host patterns](references/HOST_PATTERN_MATRIX.md) |
| Private standalone service | [Internal service workflow](references/INTERNAL_SERVICE_WORKFLOW.md) |
| Server ownership, host dispatch, state digest, UI integration, gateway or sidecar wiring | [Runtime integration](references/RUNTIME_INTEGRATION.md); consult its relevant numbered contracts |
| Proposed adapter-local workaround for shared behavior | [Core escalation](references/CORE_ESCALATION_CHECKLIST.md) |
| Async/main-thread jobs, cancellation or reconnect | [Async recovery](references/ASYNC_RECOVERY.md) |
| Runtime failure or issue ownership | [Failure routing](references/FAILURE_ROUTING.md) |
| Nuke/standalone examples or cross-DCC file synchronization | [Integ_meta.json
{
"ownerId": "kn79keq1bp4t91s48e3x1fk3jn82w8hf",
"slug": "dcc-mcp-creator",
"version": "0.19.107",
"publishedAt": 1790695609044
}references/ADAPTER_WORKFLOW.md
# Adapter And Service Workflow
Use this reference to build a new adapter, expose an internal standalone
service, or simplify an existing integration.
## 1. Choose the Runtime Shape
Use the smallest shape that can honestly run the host API:
| Host shape | Typical DCCs | Recommended path |
|---|---|---|
| Embedded Python, GUI | Blender, Houdini, Maya, 3ds Max Python | `DccServerBase` with `HostExecutionBridge` and a host dispatcher |
| Embedded Python, headless | mayapy, Blender background, Houdini hython | `DccServerBase` with inline or blocking dispatcher |
| External bridge | ZBrush, Photoshop, Unity, proprietary tools | `DccServerBase` plus IPC/WebSocket/HTTP bridge helpers |
| Editor/game engine | Unreal, Unity | Adapter-owned plugin bridge plus typed skill tools; keep Python optional |
| Standalone internal service | Asset/review/render APIs, private CLI tools | `DccServerBase` with `instance_type="standalone"`, no DCC PID, and inline typed tools |
When an external bridge uses the public Python `DccBridge` WebSocket server,
declare `dcc-mcp-core[bridge]`; the base install intentionally does not pull in
the optional `websockets` transport.
## 2. Build the Composition Root
Adapter server modules should be composition roots, not utility bins. Keep them
responsible for wiring only:
- Resolve options with `DccServerOptions.from_env(...)`.
- Pass the adapter's bundled `skills/` directory.
- Attach `HostExecutionBridge` before skill discovery.
- Register resources, project tools, diagnostics, prompts, and adapter
instruction resources before `start()`.
- Keep `start_server()` and `stop_server()` thin wrappers.
Minimal skeleton:
```python
from pathlib import Path
from dcc_mcp_core import DccServerBase, DccServerOptions, HostExecutionBridge
class MyDccServer(DccServerBase):
def __init__(self, port: int | None = None, dispatcher=None, **kwargs):
bridge = HostExecutionBridge(dispatcher=dispatcher) if dispatcher else None
options = DccServerOptions.from_env(
"mydcc",
Path(__file__).parent / "skills",
port=port,
execution_bridge=bridge,
**kwargs,
)
super().__init__(options=options)
def _version_string(self) -> str:
return "unknown"
```
Keep `port=None` as the adapter default. Core resolves an explicit argument
(including `0`) first, then `DCC_MCP_<DCC>_PORT`, then `0` so the OS assigns a
free loopback port. Clients discover the bound endpoint through FileRegistry
or the gateway; use an explicit argument or environment value only when a
fixed direct endpoint is required.
For `HostUiDispatcherBase` subclasses, the bridge creates and attaches the
native HTTP main-affinity queue automatically. Keep the host timer calling the
subclass's `drain_queue()`; do not wire a second queue in the adapter.
Guard the adapter's outer startup import with
`capture_bootstrap_errors(dcc_name, adapter_version=..., min_core_version=...)`.
It records pre-references/ASYNC_RECOVERY.md
## Chunked Main-Thread Jobs
Use the shared chunked path when a main-affinity operation cannot finish within
one host UI tick. The adapter owns scheduling; skill code only defines bounded
steps:
```python
from dcc_mcp_core import chunked_job
@chunked_job(total=100)
def bake_frames():
for frame in range(100):
yield lambda frame=frame: bake_one_frame(frame)
# A declarative in-process tool returns this runner. HostExecutionBridge
# detects and submits it to HostUiDispatcherBase automatically.
return bake_frames()
```
- Declare `execution: async`, `affinity: main`, and
`job_strategy: chunked`. The bridge rejects a declared chunked tool that
returns a monolithic value.
- Any operation that can exceed the caller's synchronous timeout must return a
job envelope. Declare `execution: async` and provide a realistic positive
`timeout_hint_secs`; Core routes the execution declaration through
`JobManager`. A timeout hint only sizes client/runtime budgets and never
promotes an `execution: sync` tool to an async job.
- Yield one bounded host-API callable per step. A returned string becomes the
progress message.
- `submit_chunked_runner()` advances at most one step per host pump tick, so
unrelated UI work can run between steps.
- `cancel(request_id)` requests cancellation. The runner publishes
`cancelled` only after the next checkpoint observes it; a running native DCC
call or monolithic callback is not pre-empted.
- Do not add adapter-local generator pumps, timer loops, worker threads, or a
second job registry.
- Test pending cancellation, cancellation during a step, monotonic progress,
failure, exactly one terminal result, unrelated pump work, and at least two
host labels.
Do not label an indivisible native call as chunked. Use
`job_strategy: monolithic` when the host API cannot yield, or
`job_strategy: isolated` when a process/service-owned operation can return a
durable job id. Isolated status must remain queryable after transport loss;
cancellation may remain process-owner scoped when reconstructing ownership
would be unsafe.
## Liveness and Crash Recovery
- Keep registry heartbeat and HTTP readiness independent of the DCC main
thread. A readiness/transport timeout marks the instance `unreachable`; it
must not erase a row whose owner lock/PID or remote TTL is still valid.
- Keep HTTP body limits, trusted-proxy depth, and request-rate windows on the
owning `GatewayState` (`GatewayIngressState`). Embedded adapters may host
more than one gateway in a process, so process-global lazy counters or env
snapshots are not a valid isolation boundary.
- Keep backend retry policy and circuit observations on the same owning
`GatewayState` through `GatewayResilienceState`. Pass that state through
backend discovery and dispatch calls; never use a process-global circuit
table, because one embedded gateway must not open another gateway's backend.
- Pass the complete `McpHttpConfig.features` snapshot into HTTP runtireferences/CORE_ESCALATION_CHECKLIST.md
# Core Escalation Checklist Use this before adding adapter-local framework code. If the answer is "yes" for two or more adapters, prefer a core issue/RFC. ## Escalate to Core Open a core issue when the adapter needs: - a lifecycle hook around skill discovery, skill load, unload, group activation, resource subscription, client initialize, or tool dispatch; - a typed skill object transform that must apply to programmatic, MCP, REST, and gateway load paths; - a public `DccServerBase` wrapper over a private inner server API; - a reusable resource/prompt/project registration pattern; - a readiness bit or health check shared by host dispatchers; - a gateway search/describe/call response field; - install, uninstall, or sidecar lifecycle behavior; - cross-DCC UI Control automation contracts; - common artefact/file handoff and retention behavior; - policy, audit, telemetry, or debug bundle fields. Before adding a protocol DTO, check [`ADR-027`](https://github.com/dcc-mcp/dcc-mcp-core/blob/main/docs/adr/027-protocol-type-ownership.md). Adapters and gateway applications consume the canonical core type directly, re-export it for compatibility, or use an explicit conversion when their invariants differ; they do not copy generic JSON-RPC, MCP, wire, or transport fields locally. ## Keep Local to the Adapter Keep code adapter-local when it is only: - the host's import path, version query, or startup hook; - the exact host API call, such as `bpy.ops`, `pymxs.runtime`, or Unreal editor APIs; - a DCC-specific menu, shelf, plugin, or bootstrap script; - domain tool behavior that belongs to one DCC skill package; - a studio-specific deployment policy. ## Current Core Requests From Adapter Review - [RFC: add adapter skill-load transform hooks](https://github.com/dcc-mcp/dcc-mcp-core/issues/1204): adapters need a core-owned hook so metadata transforms apply consistently to programmatic `load_skill`, MCP `load_skill`, REST `/v1/load_skill`, and gateway-mediated loads. - [RFC: expose public DccServerBase resource registration surface](https://github.com/dcc-mcp/dcc-mcp-core/issues/1205): adapters need a public resource handle/helper instead of private inner-server access. - [RFC: add reusable adapter readiness binder](https://github.com/dcc-mcp/dcc-mcp-core/issues/1206): embedded adapters need a shared readiness binder for process, dispatcher, host-execution, main-thread, and DCC-ready state. ## Issue Template ```markdown ## Problem Describe the adapter-local code that should not be repeated in every DCC repo. ## Requested Core Surface - API name or shape. - Which load/call/resource/readiness paths it must cover. - Expected error and observability behavior. ## Acceptance Criteria - At least one Python adapter test. - At least one MCP or REST path test when the behavior crosses HTTP. - Backward compatibility notes for existing adapters. ``` Public issue text must be portable. Do not include local paths, private hostnames, machine-specific logs, or so
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/loonghao/skills/dcc-mcp-creator",
"sourceUrl": "https://clawhub.ai/loonghao/skills/dcc-mcp-creator",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T03:27:04.696Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-loonghao-dcc-mcp-creator/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-loonghao-dcc-mcp-creator/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T03:27:04.696Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "6.3K downloads",
"href": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceUrl": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T03:27:04.696Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.19.107",
"href": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceUrl": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T15:26:49.044Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-loonghao-dcc-mcp-creator/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-loonghao-dcc-mcp-creator/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.19.107",
"description": "- Updated version to 0.19.107. - Documentation updates in SKILL.md and reference files. - Removed skill-card.md for cleanup. - No changes to core functionality or implementation boundaries.",
"href": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceUrl": "https://clawhub.ai/loonghao/dcc-mcp-creator",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T15:26:49.044Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
