NukeMCP
Connects AI assistants to Nuke for compositing tasks via natural language.
README
<p align="center"> <img src="docs/logos/banner_light.svg" alt="NukeMCP — Talk to Nuke." width="700"/> </p>
<p align="center"> <a href="https://github.com/kleer001/nuke-mcp/blob/main/LICENSE"><img src="https://img.shields.io/github/license/kleer001/nuke-mcp?color=blue" alt="License: MIT"/></a> <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.10%2B-blue?logo=python&logoColor=white" alt="Python 3.10+"/></a> <a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-compatible-green?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6Ii8+PC9zdmc+" alt="MCP Compatible"/></a> <a href="https://www.foundry.com/products/nuke-family/nuke"><img src="https://img.shields.io/badge/Nuke-17.0-E8A317?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48L3N2Zz4=&logoColor=white" alt="Nuke 17.0"/></a> <a href="https://github.com/kleer001/nuke-mcp/commits/main"><img src="https://img.shields.io/github/last-commit/kleer001/nuke-mcp" alt="Last Commit"/></a> <a href="https://github.com/kleer001/nuke-mcp/issues"><img src="https://img.shields.io/github/issues/kleer001/nuke-mcp" alt="Issues"/></a> <a href="https://github.com/kleer001/nuke-mcp/network/members"><img src="https://img.shields.io/github/forks/kleer001/nuke-mcp?style=social" alt="Forks"/></a> <a href="https://github.com/kleer001/nuke-mcp/watchers"><img src="https://img.shields.io/github/watchers/kleer001/nuke-mcp?style=social" alt="Watchers"/></a> <a href="https://github.com/kleer001/nuke-mcp/stargazers"><img src="https://img.shields.io/github/stars/kleer001/nuke-mcp?style=social" alt="GitHub Stars"/></a> </p>
NukeMCP connects AI assistants (Claude, ChatGPT, local LLMs) to a running Nuke session via the Model Context Protocol. Describe what you want in plain English, and the AI creates, connects, and configures nodes in your comp.
Status
Production-ready. Verified end-to-end against Nuke 17.0v1. Full test suite with CI, lint, and coverage. See the roadmap for what's next.
Get Started
Prerequisites: git and Python 3.10+. Nuke is optional at setup time — Nuke 15+ supported, 17+ recommended.
Linux / macOS:
curl -sSL https://raw.githubusercontent.com/kleer001/nuke-mcp/main/scripts/bootstrap.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/kleer001/nuke-mcp/main/scripts/bootstrap.bat -OutFile bootstrap.bat; .\bootstrap.bat"
The bootstrap clones the repo, installs uv, creates a venv, installs deps, and prints next steps for the Nuke addon and MCP client.
<details> <summary><strong>Manual setup (step by step)</strong></summary>
1. Clone and install
git clone https://github.com/kleer001/nuke-mcp.git
cd nuke-mcp
uv sync
2. Install the Nuke Addon
Copy the addon into your Nuke scripts directory:
cp nuke_addon/nuke_mcp_addon.py ~/.nuke/
Or add the nuke_addon/ directory to your NUKE_PATH.
Launch Nuke — in the Script Editor, run:
import nuke_mcp_addon
nuke_mcp_addon.start()
A NukeMCP panel appears with Start/Stop button and log. The server listens on port 54321.
3. Configure Your MCP Client
Claude Code: The included .mcp.json configures the server automatically. Run Claude Code from the project root.
Claude Desktop: Go to File > Settings > Developer > Edit Config and add:
{
"mcpServers": {
"nuke-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/nuke-mcp", "run", "nuke-mcp"]
}
}
}
Other MCP clients (ChatGPT, local LLMs): Any client that supports stdio transport works. Use the same command/args pattern above, or wrap the server in an HTTP bridge for remote clients.
</details>
Headless Mode
NukeMCP can auto-discover and launch Nuke without a GUI:
# Auto-discover Nuke, launch headless, connect
uv run nuke-mcp --headless
# Specify a Nuke executable
uv run nuke-mcp --headless --nuke-path /usr/local/Nuke17.0v1/Nuke17.0
# Just find Nuke installations and check licensing
uv run nuke-mcp --discover
Discovery searches standard paths (/usr/local/Nuke*, /Applications/Nuke*), .desktop files, running processes, mounted volumes, and the NUKE_EXE environment variable. It also detects Foundry trial licenses (JWT tokens) and RLM license servers.
Available Tools
Core tools available on all Nuke variants, plus gated tools for NukeX and Nuke 17+. Destructive tools require user confirmation — enforced at the code level, not just in the AI's instructions.
<details> <summary>Full tool list</summary>
Core (all variants)
| Tool | Description | Annotations |
|---|---|---|
get_script_info |
Script name, frame range, FPS, colorspace, node count | readOnly |
get_node_info |
Node class, position, inputs, knob values | readOnly |
create_node |
Create a node with optional name, knobs, position | |
modify_node |
Set knob values on an existing node | idempotent |
delete_node |
Delete a node (requires confirmation) | destructive |
connect_nodes |
Connect output of one node to input of another | |
position_node |
Set node position in the graph | idempotent |
auto_layout |
Auto-arrange nodes | |
execute_python |
Run arbitrary Python in Nuke (requires confirmation) | destructive |
load_script |
Open a .nk file (requires confirmation) | destructive |
save_script |
Save the current script (requires confirmation) | destructive |
set_project_settings |
Set FPS, colorspace, resolution | idempotent |
set_frame_range |
Set first/last frame | idempotent |
Comp & Rendering
| Tool | Description |
|---|---|
render_frames |
Render a Write node over a frame range |
set_proxy_mode |
Toggle proxy mode |
find_nodes_by_type |
Find all nodes of a given class |
find_broken_reads |
Find Read nodes with missing files |
batch_set_knob |
Set a knob value on multiple nodes |
batch_reconnect |
Reconnect multiple nodes to a new input |
Templates & LiveGroups
| Tool | Description |
|---|---|
list_toolsets |
List saved toolsets |
load_toolset |
Load a toolset |
save_toolset |
Save selected nodes as a toolset |
create_live_group |
Create a LiveGroup from nodes |
NukeX (gated)
| Tool | Description |
|---|---|
create_tracker |
Create a Tracker4 node |
solve_tracker |
Execute tracking |
setup_stabilize |
Set tracker to stabilize mode |
create_camera_tracker |
Create a CameraTracker node |
create_3d_scene |
Create a Scene node |
setup_camera |
Create a Camera3 node |
setup_scanline_render |
ScanlineRender with scene + camera |
setup_projection |
Camera projection workflow |
setup_deep_pipeline |
Deep compositing pipeline |
setup_deep_merge |
Deep merge |
convert_to_deep |
Flat to deep conversion |
setup_copycat |
CopyCat ML training node |
train_copycat |
Train a CopyCat model |
Nuke 17+ (gated)
| Tool | Description |
|---|---|
import_splat |
Gaussian splat reader |
setup_splat_render |
Splat render with camera |
setup_bigcat |
BigCat ML training (NukeX + 17+) |
create_annotation |
Create annotation/sticky note |
list_annotations |
List all annotations |
Memory & Events
| Tool | Description |
|---|---|
read_memory |
Read persistent memory files |
write_memory |
Write persistent memory |
log_correction |
Log a compositor correction |
list_memory |
List all memory files |
update_project_memory |
Snapshot current script settings |
subscribe_events |
Subscribe to real-time scene events |
get_events |
Get recent events |
clear_events |
Clear event log |
search_nuke_docs |
BM25 search over Nuke docs |
</details>
Docs & Guides
- Technical Reference — architecture, events, memory system, plugin system, offline dev, version gating
- Best Practices — compositor-focused guide with workflows and troubleshooting
- Roadmap — what's next
- Contributing — how to add tools, write tests, follow codebase patterns
Skills
Skills are multi-step workflow guides that define how Claude should approach complex, repeatable production tasks using NukeMCP. Unlike single tool calls, skills orchestrate sequences of MCP tools, filesystem queries, and user confirmation gates to complete high-level operations safely.
Skills live in the skills/ folder. Invoke one by describing the task
to Claude — it will recognise the workflow and follow the skill's phases.
| Skill | Description |
|---|---|
retarget-fx-shot |
Duplicate an FX rig network and remap all file references from one shot's sequences to another's |
Best Practices — The Recipe Book
Nuke is deep software, and the best way to learn it is from someone who's already been there. BEST_PRACTICES.md is a growing collection of practical recipes — the kind of knowledge that saves you hours.
Every entry follows the same format: what we tried, what surprised us, and what works.
This file is baked into Claude's context, so the AI builds on previous experience instead of starting from scratch. The more you use NukeMCP, the smarter it gets.
Got recipes to share? As you work with NukeMCP, your AI will add entries to its own BEST_PRACTICES.md. If you've accumulated useful ones, open an issue and paste your file — we'll merge the good stuff in for everyone.
Acknowledgments
This project builds on the work of several open-source contributors:
- dughogan/nuke_mcp — the right architecture and the right spirit. Clean, compositor-readable code with a clear socket-based design. Doug Hogan's fxphd course made the concept accessible to the compositing community.
- flowagent-sh/nuke-mcp — demonstrated that the feature set can be production-grade, with camera tracking, deep compositing, and ML integration.
- kleer001/houdini-mcp — the persistent memory system, CLAUDE.md behavioral rules, BM25-based RAG, bidirectional events, and the proof that a DCC MCP can be a serious piece of software engineering.
License
MIT
<sub>NukeMCP is not affiliated with or endorsed by Foundry. Nuke is a trademark of Foundry.</sub>
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。