Control SideFX Houdini from AI assistants via the Model Context Protocol
Houdini MCP Server
Control SideFX Houdini from AI assistants via the Model Context Protocol.
35 tools for node creation, parameter editing, geometry inspection, scene management, and arbitrary Python execution — all driven by natural language through Claude or any MCP-compatible client.
Features
- Node operations — create, delete, rename, connect, layout, cook, find nodes
- Parameter control — get/set values, list parameters, set expressions
- Geometry inspection — read points, primitives, bounding boxes, export
.geo - Scene management — new/open/save scenes, scene info
- Transform tools — get/set object transforms
- Code execution — run arbitrary Python or HScript inside Houdini
- Built-in documentation — 11 comprehensive HOM reference docs + 5 index files, searchable via MCP tools
Prerequisites
Setup
1. Start RPYC server in Houdini
Open Houdini's Python Shell (Windows > Python Shell) and run:
import hrpyc
hrpyc.start_server(port=18811)
Or use the provided helper script:
exec(open("/path/to/houdini-mcp/houdini_setup.py").read())
2. Configure your MCP client
Add to your MCP client configuration (e.g., .mcp.json for Claude Code):
{
"mcpServers": {
"houdini": {
"command": "uv",
"args": ["--directory", "/path/to/houdini-mcp", "run", "server.py"]
}
}
}
Replace /path/to/houdini-mcp with the actual path to this repo.
3. Connect
Call the houdini_connect tool first. Then use any of the 35 available tools.
Claude Code Skill (Optional)
The claude-skill/ directory contains a Houdini Python reference skill for Claude Code. To use it:
- Copy
claude-skill/houdini-python.mdto your project's.claude/commands/directory - The skill provides HOM API reference, SOP/DOP/VOP node guides, and scripting patterns
- Invoke with
/houdini-pythonin Claude Code
Tools
| Category | Tools |
|---|---|
| Connection | houdini_connect, houdini_disconnect |
| Scene | houdini_scene_new, houdini_scene_open, houdini_scene_save, houdini_scene_info |
| Nodes | houdini_node_create, houdini_node_delete, houdini_node_rename, houdini_node_connect, houdini_node_cook, houdini_node_info, houdini_node_children, houdini_node_find, houdini_node_layout, houdini_node_set_flags |
| Parameters | houdini_parm_get, houdini_parm_set, houdini_parm_list, houdini_parm_set_expression |
| Geometry | houdini_geo_info, houdini_geo_read_points, houdini_geo_read_prims, houdini_geo_bbox, houdini_geo_export |
| Transforms | houdini_transform_get, houdini_transform_set |
| Execution | houdini_execute, houdini_hscript |
| Frame | houdini_set_frame |
How it works
┌──────────────┐ MCP (stdio) ┌──────────────┐ RPYC (TCP) ┌──────────────┐
│ AI Client │ ◄─────────────────► │ MCP Server │ ◄────────────────► │ Houdini │
│ (Claude etc) │ │ (server.py) │ │ (port 18811)│
└──────────────┘ └──────────────┘ └──────────────┘
The MCP server translates tool calls into RPYC remote procedure calls to Houdini's Python interpreter. Houdini runs an RPYC server (via hrpyc) that exposes the full hou module.
License
MIT
Tools (5)
houdini_connectEstablishes a connection to the Houdini RPYC server.houdini_node_createCreates a new node in the Houdini scene.houdini_parm_setSets the value of a specific node parameter.houdini_geo_exportExports geometry data from a node to a file.houdini_executeExecutes arbitrary Python code within the Houdini environment.Configuration
{"mcpServers": {"houdini": {"command": "uv", "args": ["--directory", "/path/to/houdini-mcp", "run", "server.py"]}}}