基础设施技能 —— 指导开发者与智能体构建或现代化面向 Nuke、Blender、3ds Max、Unreal、ZBrush、Houdini、Maya 以及自定义工作室工具的完整 DCC-MCP 适配器。适用于构建 server、dispatcher、gateway、packaging 及 runtime 集成场景。 **不适用于** 单个 SKILL.md 工具包的编写 —— 此类任务请使用 `dcc-mcp-skills-creator`。
DCC- MCP 创建器是一项面向实际任务的技能,主要用于当您正在创建新的 DCC- MCP 适配器或实现 现代化时使用此技能;现有的适配器寄存器: 服务器组成、 主机线程发送、 侧车/ 门车接线、 读取。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
当您正在创建新的 DCC-MCP 适配器,或对现有适配器仓库进行现代化改造时,请使用此技能:服务组合(server composition)、宿主线程分发(host-thread dispatch)、边车/网关连接(sidecar/gateway wiring)、就绪性(readiness)、资源管理(resources)、项目状态(project state)、诊断(diagnostics)、安装生命周期(install lifecycle)或跨 DCC 验证(cross-DCC verification)。
如需处理单个技能包(SKILL.md、tools.yaml、脚本、技能分组及技能分类体系),请改用 dcc-mcp-skills-creator。
DccServerBase 和 Rust 边车均以“每 DCC 服务”身份参与。dcc-mcp-server sidecar 启动的 Rust dcc-mcp-sidecar 子进程;它桥接宿主 RPC 与 MCP/REST,并在被监控的 DCC 进程退出时随之终止。dcc-mcp-server gateway 进程,负责路由、动态能力发现/描述/调用,以及 Gateway Admin 功能。/health 端点,并通过 gateway-launch.lock 文件重新确保守护进程存活;它并非独立进程。ADAPTER_WORKFLOW.md:构建路径说明。HOST_PATTERN_MATRIX.md:宿主特异性连接方式说明。CORE_ESCALATION_CHECKLIST.md:在添加适配器本地胶水逻辑前必读。TESTING_AND_RELEASE.md:验证或发布前必读。docs/guide/adapter-release-checklist.md:符合发布流程规范的检查清单。docs/guide/new-adapter-onboarding.md:新适配器脚手架指南。docs/guide/adapter-compatibility-matrix.md:各 DCC 兼容性对照表。DccServerBase + DccServerOptions.from_env(...) 开始构建。HostExecutionBridge 路由;禁止自行实现第二套脚本执行器。dcc_name、server_name、环境变量前缀、技能名称及网关元数据。MinimalModeConfig、项目工具、资源管理、诊断、上下文快照、安装生命周期和网关故障转移等任务。Python 中 DccServerBase.collect_skill_search_paths() 会自动将市场安装的技能(位于 ~/.dcc-mcp/marketplace/ 或 DCC_MCP_MARKETPLACE_INSTALL_ROOT/ 目录下,若该目录存在)纳入搜索路径;因此适配器不应再额外引入另一套市场路径约定。dcc-mcp-server 的运行模式:
无子命令、auto 和 serve:确保启动整机范围内的网关守护进程,将当前进程注册为后端,注册完成后维持一个轻量级守护者持续运行,并在服务记录中写入 gateway_runtime_mode 和 gateway_guardian_enabled 字段。serve --no-auto-gateway:仅限单 DCC 场景,不启动网关守护进程。auto --legacy-gateway-election:恢复旧版“内嵌式、先到先得”的网关选举策略。gateway:仅运行整机范围的网关守护进程,不执行任何内联 DCC 执行逻辑。dcc-mcp-server gateway --daemon(显式):将当前可执行文件作为分离子进程重新启动,而非在异步运行时内进行 fork;若指定 --pidfile PATH,则隐含启用守护进程模式,记录分离子进程 PID,并在重启动失败或 PID 文件写入失败时快速报错退出。__gateway__ 后端在配置的宽限期(默认 DCC_MCP_GATEWAY_IDLE_TIMEOUT_SECS=30)内持续缺席时,守护进程将自动关闭;对于必须长期保活且无本地后端的 Studio/无头部署场景,可设置 --gateway-persist / DCC_MCP_GATEWAY_PERSIST=1 或 --gateway-idle-timeout-secs 0。GET /v1/readyz 接口返回实际生效的 gateway_lifecycle.persist 和 gateway_lifecycle.idle_timeout_secs 值,因此诊断逻辑必须读取该字段,而不得依据环境变量默认值推断策略。DccServerBase 适配器、Rust dcc-mcp-server sidecar 进程(当 gateway_port > 0 时)以及已注册的 dcc-mcp-server translate 桥接器,在启动时均遵循相同的“守护进程优先”契约,并在守护进程支持模式下维持相同的守护者运行——这意味着任一存活的 DCC 或桥接器可在 /health 消失后重新确保守护进程存活。gateway-launch.lock 文件在启动器中途崩溃时,会在 DCC_MCP_GATEWAY_LAUNCH_LOCK_STALE_SECS 秒后被自动回收;因此适配器应共享 DCC_MCP_REGISTRY_DIR,且不得手动删除该锁文件。dcc_diagnostics__gateway_failover 应报告 daemon-backed 或 embedded-fallback,以便运维人员区分当前运行模式。dcc_mcp_core.install_lifecycle.build_sidecar_command(...) 或 launch_sidecar(...);它们生成标准的 dcc-mcp-server sidecar 命令行参数,默认分离 stdio 流,注入共享注册中心/网关环境变量,并允许子进程在不阻塞 DCC 主进程的前提下确保守护进程运行(除非显式传入 no_ensure_gateway=True 或 legacy_gateway_election=True)。
build_sidecar_command() 还返回以下字段:readiness_selector、readiness_argv、readiness_command(尊重 DCC_MCP_PYTHON_EXECUTABLE)、dispatch_contract(含 uri_valid、validation_error、dispatch_ready_capable)以及 readiness_contract(含 ready_on_launch=false、direct_use_status)。launch_sidecar(wait_ready_timeout_secs=..., probe_tool=...) 可在安装器、监管器或后台启动任务中调用,以获得相同有界范围的分发判定结果;但请勿在 DCC UI 线程上调用该函数并设置 wait_ready_timeout_secs。wait_ready_timeout_secs,launch_sidecar() 将明确返回 ready=false、readiness_checked=false,且其 readiness 负载的状态为 not_checked(或针对仅诊断用途方案返回 dispatch_not_capable),因此“边车启动成功”绝不可视为“DCC 已打开、可直接使用”。stub:// 协议或不支持的宿主 RPC 方案时立即失败,应在调用前传入 require_dispatch_capable=True 或 CLI 参数 --require-dispatch-capable;仅在纯诊断用途的服务记录中才可设为 false。dcc-mcp-sidecar 中;适配器仍应依赖生命周期辅助工具和稳定的 dcc-mcp-server sidecar CLI 接口,而非自行构造新的临时二进制命令。per-dcc-sidecar 注册记录即认定工具可调用:适配器必须向其 DCC 调度器/技能暴露受支持的宿主 RPC 桥接;启动代码或安装器应使用 sidecar_readiness_status(...) / wait_for_sidecar_ready(...) 获取一个有界、低导入开销的判定结果,再声明插件已就绪。readiness_selector;若 instance_id 或 host_rpc 匹配多个活跃边车,则这些辅助函数将返回 status="ambiguous",而非任意选择某一条记录。tools/call 是否能抵达宿主调度器时,请传入 probe_tool="_diagnostics__ping" (或 CLI --probe-tool);探测失败将使判定结果保持“未就绪”,直至超时。dispatch_ready=True:上述辅助函数、query_runtime_state(...) 返回的嵌套 dispatch 对象、GET /admin/api/workers 接口,或 gateway://instances / GET /v1/instances 中嵌套的 dispatch 对象;网关的 GET /v1/readyz 接口亦提供每个实例的 dispatch 状态及“就绪”计数,便于启动器与管理面板区分“已列出的 DCC 进程”与“可调用的边车调度器”。DccServerBase 适配器、dcc-mcp-server 后端及已注册的 translate 桥接器均会发布以下字段:gateway_runtime_mode、gateway_guardian_enabled、gateway_recovery_driver 和 registration_refresh_mode;
gateway_recovery_driver="daemon_guardian" 表示恢复行为由守护者发起的 /health 探测驱动;registration_refresh_mode="file_registry_heartbeat" 表示服务记录通过注册中心心跳维持新鲜度,重启后的网关将重新读取该记录,无需显式重新注册。GET /v1/readyz 接口亦镜像上述字段,包括每个实例的 gateway、gateway_recovery_driver_counts、registration_refresh_mode_counts、gateway_daemon_guardian_instance_count 和 gateway_daemon_guardian_ready,使得启动检查与管理面板可判断是否存在任一活跃 DCC 服务能重启守护进程。dispatch_ready=False、metadata.dispatch_status=unavailable,并附带 failure_stage / failure_reason 供诊断使用。metadata.mcp_url 作为诊断端点:此时 /v1/readyz 必须报告 dispatcher=false,且 tools/call 必须返回结构化的 transport-error;在 dispatch_status=ready 之前,禁止将网关流量路由至该端点。commandport://、qtserver://、ws:// / wss://),边车将在父 DCC 进程存活期间持续尝试重连,并在宿主桥接器出现时提升同一服务记录;stub:// 仅用于测试,默认即使连接成功也始终为 dispatch_status=unavailable,因此绝不可将其用作适配器启动就绪性证明。commandport:// 边车在 dcc_mcp_maya 存在但其边车调度器缺失时,会返回结构化的 sidecar-dispatcher-unavailable 后端信封;应视其为适配器部分安装问题,而非网关路由失败。host-died,网关将立即从能力索引及 FileRegistry 或 HTTP 注册记录中移除该实例;请勿围绕“等待终端宿主故障后的心跳清理”来设计适配器逻辑。FileRegistry,请通过 POST /v1/instances/register 远程注册、通过 /heartbeat 刷新、并在关闭时主动注销;网关将在 gateway://instances / GET /v1/instances 中将其暴露为 source: "http" 类型记录,保留 instance_short 和 mcp_url 字段,并通过相同的 live_instances 协议进行路由。mdns 构建,并在适配器侧配对 --advertise-mdns、网关侧配对 --discover-mdns;请仅将此视为多播发现提示,认证/TLS 策略必须显式声明,生产环境中涉及路由或跨子网的部署应优先采用 HTTP 注册或中继(relay)方式。instance_id、capabilities_fingerprint、adapter_version 和 scene 元数据运行隧道代理(tunnel agent),然后在独立网关中配置 --relay-source ADMIN_URL=PUBLIC_BASE_URL;网关将在通过 /tunnel//mcp 探测 /v1/healthz 后,将活跃隧道暴露为 source: "relay" 类型记录,其中中继详情存于 source_meta 字段中。initialize.params.clientInfo、MCP _meta.agent_context、REST meta.agent_context、x-dcc-mcp-* 请求头以及安全的 User-Agent 回退机制穿透核心逻辑,而非记录原始提示词或本地机器数据。register_lifecycle_hooks(...)、search_skills(..., session_id=...)、dispatch_session_start(...)、dispatch_before_tool_call(...)、dispatch_after_tool_call(...) 和 dispatch_session_end(...);当适配器需要有界内存摘要、失败模式规避或会话压缩时,请将 MemoryRecorder(InMemoryMemoryStore()).install(hooks) 与上述钩子配对使用;对隐私敏感的部署场景,请禁用该记录器。just idle-memory-smoke。agent_context 的任务/会话/轮次元数据,以及对制品/验证友好的工具名称,以便 Admin 任务结果可对工作流、调用、交付物及检查项进行聚合分组,而无需解析原始负载或本地路径。当被要求创建 Nuke 的 MCP 适配器时,请首先梳理宿主生命周期:Python 如何加载、UI/主线程如何进入、是否支持无头模式、插件如何安装,以及哪些操作应打包为默认技能。随后围绕核心基元搭建适配器:
DccServerBase 实现 MCP/HTTP 接口及技能目录行为。DccServerOptions.from_env("NUKE") 或适配器专属等效方式实现环境变量驱动的配置。HostExecutionBridge 与 Nuke 调度器,统一处理所有 Nuke API 调用。dcc-mcp-skills-creator 创建首批 nuke-* 技能包。SKILL.md、tools.yaml、groups.yaml 或提示词/工作流文件。server._server;若确有必要,请先提交核心 issue,并保持适配器 shim 尽可能精简。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章