Home¶
fxhoudinimcp¶
An MCP server for SideFX Houdini: it lets an AI assistant build networks, set up simulations, inspect USD stages and render, through Houdini's own Python API. It works with any MCP client: Claude, Codex, Copilot, Gemini, Cursor, Windsurf, VS Code, Cline and others.
215 tools, 8 resources, and 9 prompts serving 31 written workflow guides out of the box. Start with Installation.
Features¶
| Category | Tools | Description |
|---|---|---|
| Graph Intelligence | 6 | Atomic validated network building, network verification, node doc cards, cook profiling, frame-range cooking with per-frame evidence, cook status |
| Documentation | 3 | Full-text search + page retrieval over Houdini's own shipped manual (version-exact) |
| Scene Management | 10 | Open, save, import/export, scene info, connection status, undo/redo |
| Sessions | 3 | Switch between open Houdini sessions, start a headless or GUI Houdini of the server's own, stop it |
| Node Operations | 22 | Create, delete, copy, connect, layout, flags, network boxes, sticky notes, object transforms |
| Parameters | 14 | Get/set values in bulk, expressions, keyframes, spare parameters |
| Geometry (SOPs) | 16 | Points, prims, attributes, attribute statistics, volume statistics and sampling, groups, sampling, nearest-point search |
| LOPs/USD | 21 | Stage inspection, prims, world transforms over frames, layers, composition, variants, lighting |
| DOPs | 8 | Simulation info, DOP objects, step/reset, memory usage |
| PDG/TOPs | 12 | Cook, work items, failed items and logs, schedulers, dependency graphs |
| COPs (Copernicus) | 7 | Image nodes, layers, VDB data |
| HDAs | 13 | Create, install, manage Digital Assets, their versions and sections |
| Animation | 9 | Keyframes, playbar control, frame range |
| Rendering | 10 | Viewport capture, contact sheets of a frame range without a viewport, render nodes, settings, render launch |
| VEX | 5 | Create/edit wrangles, validate VEX code |
| Code Execution | 7 | Python, HScript, expressions, env variables, file references, update mode |
| Viewport/UI | 14 | Pane management, viewer context, verified camera and renderer state, screenshots, error detection |
| Scene Context | 8 | Network overview, cook chain, selection, scene summary, error analysis |
| Workflows | 8 | One-call Pyro/RBD/FLIP/Vellum setup, SOP chains, render config |
| Materials | 4 | List, inspect, create materials and shader networks |
| CHOPs | 4 | Channel data, CHOP nodes, export channels to parameters |
| Cache | 4 | List, inspect, clear, write file caches |
| Takes | 4 | List, create, switch takes with parameter overrides |
| Shelf Tools | 3 | Find, read and run Houdini's own shelf tools (setups build_network cannot produce) |
Architecture¶
flowchart LR
subgraph Client[" 🤖 AI Client "]
direction TB
A1("Claude · Codex · Copilot · Gemini")
A2("Cursor · Windsurf · VS Code · Cline")
A3("any stdio MCP client")
end
subgraph MCP[" ⚡ FXHoudini MCP Server "]
direction TB
B1("🔧 215 tools")
B2("📦 8 Resources")
B3("💬 9 Prompts")
end
subgraph Houdini[" 🔶 SideFX Houdini "]
direction TB
C1("🌐 hwebserver")
C2("📡 Dispatcher")
C3("🎛️ hou.* Handlers")
C1 --> C2 --> C3
end
Client -. "MCP Protocol · stdio" .-> MCP
MCP -. "HTTP / JSON · port 8100" .-> Houdini
classDef clientBox fill:#f0f4ff,stroke:#b8c9e8,stroke-width:1px,color:#2d3748,rx:12,ry:12
classDef mcpBox fill:#eef6f0,stroke:#a8d5b8,stroke-width:1px,color:#2d3748,rx:12,ry:12
classDef houdiniBox fill:#fff5f0,stroke:#e8c4a8,stroke-width:1px,color:#2d3748,rx:12,ry:12
classDef clientNode fill:#dbe4f8,stroke:#96b0dc,stroke-width:1px,color:#2d3748,rx:8,ry:8
classDef mcpNode fill:#d4edda,stroke:#82c896,stroke-width:1px,color:#2d3748,rx:8,ry:8
classDef houdiniNode fill:#fde4d0,stroke:#e0a87c,stroke-width:1px,color:#2d3748,rx:8,ry:8
class Client clientBox
class MCP mcpBox
class Houdini houdiniBox
class A1,A2,A3 clientNode
class B1,B2,B3 mcpNode
class C1,C2,C3 houdiniNode
The plugin runs on Houdini's built-in hwebserver and executes every hou.* call on the main thread through hdefereval. The MCP server is a separate process your AI client starts; it relays tool calls to the plugin over loopback HTTP.