# linchpinhq/nuke-mcp architecture

> Architecture diagram of the GitHub repository linchpinhq/nuke-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/linchpinhq/nuke-mcp
- Repository: https://github.com/linchpinhq/nuke-mcp

## Overview

Nuke MCP exposes VFX automation tools to an MCP client, forwards commands over TCP to a Nuke-hosted dispatcher, and returns results from Nuke. The documented capabilities span node and graph operations, templates and project scripts, and specialized VFX workflows. The excerpts show tool forwarding, command dispatch, and implementations for core and several VFX operations; other documented capabilities are grouped where their implementation details were not sampled.

Main entry points: [`nuke_bridge_server.py`](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_server.py) (TCP dispatcher), [`src/index.js`](https://github.com/linchpinhq/nuke-mcp/blob/main/src/index.js) (Stdio transport), [`src/server.js`](https://github.com/linchpinhq/nuke-mcp/blob/main/src/server.js) (MCP tools), [`nuke_bridge_enhanced.py`](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py) (Node and graph)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mcp["MCP interface"]
  node_transport["Stdio transport<br/>[index.js]"]
  node_tools["MCP tools<br/>[server.js]"]
end

subgraph group_bridge["Nuke bridge"]
  node_dispatcher["TCP dispatcher"]
end

subgraph group_core["Node operations"]
  node_nodeops["Node and graph"]
  node_groups["Groups and templates"]
  node_scripts["Scripts and settings"]
end

subgraph group_workflows["VFX workflows"]
  node_tracking["Camera and 3D<br/>[nuke_bridge_vfx.py]"]
  node_deep["Deep compositing<br/>[nuke_bridge_vfx.py]"]
  node_batch["Batch processing<br/>[nuke_bridge_vfx.py]"]
  node_ml["CopyCat machine learning<br/>[nuke_bridge_vfx.py]"]
  node_comp["Comp and keying<br/>[nuke_bridge_vfx.py]"]
  node_motion["Motion blur<br/>[nuke_bridge_vfx.py]"]
end

node_assistant(("MCP client"))
node_nuke(("Foundry Nuke"))

node_assistant -->|"sends requests"| node_transport
node_transport -->|"connects server"| node_tools
node_tools -->|"sends TCP commands"| node_dispatcher
node_dispatcher -->|"dispatches commands"| node_nodeops
node_dispatcher -->|"dispatches commands"| node_groups
node_dispatcher -->|"dispatches commands"| node_scripts
node_dispatcher -->|"dispatches commands"| node_tracking
node_dispatcher -->|"dispatches commands"| node_deep
node_dispatcher -->|"dispatches commands"| node_batch
node_dispatcher -->|"dispatches commands"| node_ml
node_dispatcher -->|"dispatches commands"| node_comp
node_dispatcher -->|"dispatches commands"| node_motion
node_nodeops -->|"manipulates nodes"| node_nuke
node_groups -->|"manages templates"| node_nuke
node_scripts -->|"runs scripts"| node_nuke
node_tracking -->|"creates tracks"| node_nuke
node_deep -.->|"builds pipelines"| node_nuke
node_batch -->|"processes files"| node_nuke
node_ml -->|"sets up training"| node_nuke
node_comp -->|"builds comps"| node_nuke
node_motion -->|"sets up blur"| node_nuke

click node_transport "https://github.com/linchpinhq/nuke-mcp/blob/main/src/index.js"
click node_tools "https://github.com/linchpinhq/nuke-mcp/blob/main/src/server.js"
click node_dispatcher "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_server.py"
click node_nodeops "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py"
click node_groups "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py"
click node_scripts "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py"
click node_tracking "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"
click node_deep "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"
click node_batch "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"
click node_ml "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"
click node_comp "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"
click node_motion "https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_transport,node_tools,node_assistant toneBlue
class node_dispatcher toneAmber
class node_nodeops,node_groups,node_scripts toneMint
class node_tracking,node_deep,node_batch,node_ml,node_comp,node_motion toneRose
class node_nuke toneIndigo
```

## Components

### MCP interface

- [Stdio transport](https://github.com/linchpinhq/nuke-mcp/blob/main/src/index.js): `src/index.js`
- [MCP tools](https://github.com/linchpinhq/nuke-mcp/blob/main/src/server.js): `src/server.js`

### Nuke bridge

- [TCP dispatcher](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_server.py): `nuke_bridge_server.py`

### Node operations

- [Node and graph](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py): `nuke_bridge_enhanced.py`
- [Groups and templates](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py): `nuke_bridge_enhanced.py`
- [Scripts and settings](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_enhanced.py): `nuke_bridge_enhanced.py`

### VFX workflows

- [Camera and 3D](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`
- [Deep compositing](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`
- [Batch processing](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`
- [CopyCat machine learning](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`
- [Comp and keying](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`
- [Motion blur](https://github.com/linchpinhq/nuke-mcp/blob/main/nuke_bridge_vfx.py): `nuke_bridge_vfx.py`

### Other components

- **MCP client**
- **Foundry Nuke**

## Connections

- MCP client → Stdio transport: sends requests (evidence: `README.md`)
- Stdio transport → MCP tools: connects server (evidence: `src/index.js`)
- MCP tools → TCP dispatcher: sends TCP commands (evidence: `README.md`)
- TCP dispatcher → Node and graph: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Groups and templates: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Scripts and settings: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Camera and 3D: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Deep compositing: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Batch processing: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → CopyCat machine learning: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Comp and keying: dispatches commands (evidence: `nuke_bridge_server.py`)
- TCP dispatcher → Motion blur: dispatches commands (evidence: `nuke_bridge_server.py`)
- Node and graph → Foundry Nuke: manipulates nodes (evidence: `nuke_bridge_enhanced.py`)
- Groups and templates → Foundry Nuke: manages templates (evidence: `nuke_bridge_enhanced.py`)
- Scripts and settings → Foundry Nuke: runs scripts (evidence: `nuke_bridge_enhanced.py`)
- Camera and 3D → Foundry Nuke: creates tracks (evidence: `nuke_bridge_vfx.py`)
- Deep compositing → Foundry Nuke: builds pipelines (evidence: `README.md`)
- Batch processing → Foundry Nuke: processes files (evidence: `nuke_bridge_vfx.py`)
- CopyCat machine learning → Foundry Nuke: sets up training (evidence: `nuke_bridge_vfx.py`)
- Comp and keying → Foundry Nuke: builds comps (evidence: `nuke_bridge_vfx.py`)
- Motion blur → Foundry Nuke: sets up blur (evidence: `nuke_bridge_vfx.py`)
