nuke-mcp
A production-grade MCP server for Foundry Nuke that enables AI assistants to understand and manipulate compositing environments, including AOVs, deep workflows, distortion, tracking, OCIO/ACEScct, and CopyCat ML.
README
nuke-mcp
Production-grade MCP server for Foundry Nuke. Built for compositors who want an AI assistant that actually understands their comp -- AOVs, deep, distortion, tracking, OCIO/ACEScct, CopyCat ML -- not just create_node.
90-second demo
Voice prompt -> AOV merge built -> deep holdout chain wired -> ZDefocus rendered -> all visible in Nuke DAG.
Demo script + screenplay: DEMO.md.
What it does
- Reads your comp natively. Claude sees every node, connection, and non-default knob value. No screenshots, no copy-paste.
- Builds comp-domain primitives, not just nodes. AOV reconstruction, deep holdout chains, lens-distortion envelopes, planar / 3D camera track patches, ACEScct audits, CopyCat training -- one tool call each.
- Runs long jobs as MCP Tasks. Render frames, train CopyCat, bake SmartVector. Cancellable. Survives reconnect. State on disk.
- Studio-friendly destructive gates. AST-level safety scanner blocks
nuke.scriptClose,os.remove, write-modeopen()and friends insideexecute_python. Audit log never auto-fixes. - Salt Spill domain depth. First DCC MCP with a comp-domain macro library:
setup_karma_aov_pipeline,setup_flip_blood_comp,setup_spaceship_track_patch,audit_acescct_consistency.
Why nuke-mcp
| nuke-mcp | Foundry + Griptape | kleer001/nuke-mcp |
|
|---|---|---|---|
| Comp-domain macros (AOV / Deep / Distortion / Tracking) | yes | no published roadmap | no |
| MCP 2025-11-25 Tasks primitive | yes (first DCC MCP) | no | no |
| Pydantic structured outputs | yes | n/a | no |
| OCIO / ACEScct audit | yes | no | no |
| CopyCat ML training as Task | yes | no | no |
| Skill profiles (paginated tool surface) | yes (10 profiles) | n/a | no |
AST safety scanner on execute_python |
yes | n/a | no |
| Audit log + destructive gates | yes | n/a | no |
| Tool count | 86 | n/a | 40+ |
| Adoption posture | depth-not-breadth, comp-first | orchestration play | breadth, low adoption |
Foundry + Griptape (Feb 2026 acquisition) is an orchestration play. No published Nuke MCP roadmap. nuke-mcp differentiates on depth: comp-domain macros that ship working topology, not just node primitives.
kleer001/nuke-mcp has 40+ atomic tools but no comp-domain macros, no Tasks primitive, no OCIO audit, no Pydantic outputs. nuke-mcp is the first DCC MCP to ship the MCP 2025-11-25 Tasks primitive (unclaimed flag claimed here).
Feature matrix
| Capability | What you get | Profile |
|---|---|---|
| Tools | 86 across 10 profiles, surfaced lazily via load_profile |
(all) |
| Tasks primitive | Disk-persisted state machine: working / input_required / completed / failed / cancelled. Survives reconnect. |
core |
| Skill profiles | Paginated tool surface. Default = core (~45 tools). load_profile("tracking") to expand. |
core |
| Pydantic outputs | NodeDetail, Comp, RenderResult, KnobValue, DiffResult |
(cross-cutting) |
| OCIO / ACEScct | get_color_management, set_working_space, audit_acescct_consistency, convert_node_colorspace, create_ocio_colorspace |
color |
| AOV pipeline | detect_aov_layers, setup_karma_aov_pipeline (per-layer Shuffle + reconstruction Merge + QC viewer-pair), setup_aov_merge |
aov |
| Deep workflow | create_deep_recolor / merge / holdout / transform, deep_to_image, setup_flip_blood_comp (FLIP -> ZDefocus chain) |
deep |
| Distortion / STMap | bake_lens_distortion_envelope, apply_idistort, apply_smartvector_propagate, generate_stmap |
distortion |
| Tracking | setup_camera_tracker, setup_planar_tracker, setup_tracker4, bake_tracker_to_corner_pin, solve_3d_camera, bake_camera_to_card, setup_spaceship_track_patch |
tracking |
| CopyCat ML | train_copycat, serve_copycat, setup_dehaze_copycat, list_cattery_models, install_cattery_model |
copycat |
| Audit | audit_acescct_consistency, audit_write_paths, audit_naming_convention, audit_render_settings, qc_viewer_pair |
audit |
| Workflow prompts | 8 first-class MCP prompts: AOV relight, deep holdout, SmartVector paint propagate, CopyCat dehaze, STMap envelope, planar / 3D camera track, ACEScct audit | (prompts/) |
Requirements
- Python 3.10+
- Foundry Nuke 15.x or 16.x
- An MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.)
Quick start
git clone https://github.com/cian-bit/nuke-mcp.git
cd nuke-mcp
python -m venv .venv
.venv/Scripts/pip install -e . # Windows
# .venv/bin/pip install -e . # macOS/Linux
Nuke addon setup
Copy the nuke_plugin/ contents to ~/.nuke/nuke_mcp_addon/:
~/.nuke/
nuke_mcp_addon/
__init__.py
addon.py
menu.py
Add to ~/.nuke/init.py:
nuke.pluginAddPath('./nuke_mcp_addon')
Add to ~/.nuke/menu.py:
import nuke_mcp_addon
toolbar = nuke.menu("Nodes")
mcp_menu = toolbar.addMenu("MCP")
mcp_menu.addCommand("Start Server", nuke_mcp_addon.start)
mcp_menu.addCommand("Stop Server", nuke_mcp_addon.stop)
Claude Desktop config (minimal)
claude_desktop_config.json:
{
"mcpServers": {
"nuke": {
"command": "C:\\path\\to\\nuke-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "nuke_mcp"],
"env": {
"NUKE_HOST": "localhost",
"NUKE_PORT": "9876"
}
}
}
}
Claude Code config
~/.claude/mcp.json:
{
"nuke": {
"command": "nuke-mcp"
}
}
Usage
- Open Nuke.
- Start the MCP addon: Nodes > MCP > Start Server.
- Open Claude. Start talking to your comp.
The default profile is core (~45 tools). Specialised surfaces are opt-in:
list_profiles() # see what's available
load_profile("tracking") # surface camera / planar tracker tools
load_profile("deep") # surface DeepRecolor / DeepHoldout / setup_flip_blood_comp
load_profile("aov") # surface Karma AOV pipeline
load_profile("audit") # surface ACEScct / write-path / naming audits
Tool surface
96 tools across 10 profiles. Open src/nuke_mcp/profiles.py for the full mapping.
| Profile | Tools | What's in it |
|---|---|---|
core |
45 | Reads, graph mutations, knobs, expressions, keyframes, render, script, roto, viewer, scene digest, profile loader, Tasks meta |
graph_advanced |
4 | create_nodes, set_knobs, execute_python, read_selected |
color |
7 | Keying, colour-correction, OCIO/ACEScct primitives |
aov |
3 | detect_aov_layers, setup_karma_aov_pipeline, setup_aov_merge |
tracking |
7 | 2D + 3D tracking primitives + setup_spaceship_track_patch macro |
deep |
6 | Deep primitives + setup_flip_blood_comp macro |
distortion |
4 | Lens distortion envelope, STMap, IDistort, SmartVector propagate |
copycat |
5 | CopyCat training (Task), inference, dehaze macro, Cattery registry |
audit |
5 | ACEScct, write paths, naming, render settings, QC viewer pair |
MCP Tasks primitive
nuke-mcp is the first DCC MCP to ship the MCP 2025-11-25 Tasks primitive. Long-running operations (render_frames, train_copycat, bake_smartvector, solve_3d_camera, etc.) return a task_id and stream task_progress notifications. State is persisted to ~/.nuke_mcp/tasks/<id>.json. Survives MCP reconnect, Nuke restart, and client crash.
render_frames(write_node="Write1", first=1001, last=1240) -> {task_id: "abc123..."}
tasks_get("abc123...") # -> {state: "working", progress: {frame: 1156, total: 240, ...}}
tasks_cancel("abc123...") # graceful stop at next frame boundary
tasks_resume("abc123...") # if MCP died mid-render
Architecture
Claude / Cursor / etc
| stdio (MCP protocol)
v
nuke-mcp server (Python subprocess)
| TCP socket (JSON, port 9876)
| request_id echo, heartbeat, SO_KEEPALIVE
v
Nuke addon (threaded server inside Nuke)
| nuke.executeInMainThreadWithResult()
v
Nuke Python API
Safety
execute_python runs through an AST + regex scanner that blocks:
nuke.scriptClose,nuke.scriptClear,nuke.scriptExit,nuke.exit,nuke.delete,nuke.removeAllKnobChangedos.remove,os.unlink,shutil.rmtree,os.systemsubprocess.Popen / run / call- Write-mode
open()(AST-detected, not regex-fragile) - Indirection:
getattr,__import__,import asaliases,eval,exec, walrus,globals/vars/sys.modules, unicode homoglyphs
Audit tools (audit_acescct_consistency, audit_write_paths, audit_naming_convention, audit_render_settings) are read-only. Never auto-fix.
Workflow prompts
8 first-class MCP prompts under src/nuke_mcp/prompts/:
build_aov_relight_pipelinebuild_deep_holdout_chainbuild_smartvector_paint_propagatebuild_copycat_dehazebuild_stmap_distortion_envelopebuild_planar_track_clean_platebuild_3d_camera_track_projectaudit_acescct_consistency_guide
Development
pip install -e ".[dev]"
pre-commit install
pytest tests/ -v
pre-commit run --all-files
Tests: 597 passing, 18 skipped (live-Nuke contract tests, run with NUKE_BIN set).
Tags
nuke compositing vfx mcp-server tasks-primitive ocio aov deep-comp tracking copycat-ml
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。