Skip to content

shelf

shelf

MCP tools for Houdini's shelf tools.

Some setups are authored by a shelf tool rather than by node creation -- the ocean procedural's internals come from dopparticlefluidtoolutils.largeOcean -- so build_network structurally cannot produce them, and reading SideFX's own recipe is often more valuable than running it.

Functions:

Name Description
get_shelf_tool_script

Read the script a shelf tool runs, plus its help and imports.

list_shelf_tools

Find shelf tools by name, label or keyword.

run_shelf_tool

Run a shelf tool and report the nodes it created.

Functions:

get_shelf_tool_script async

get_shelf_tool_script(ctx: Context, tool_name: str) -> dict

Read the script a shelf tool runs, plus its help and imports.

This is how you learn SideFX's own recipe instead of reinventing it. Most scripts are two or three lines calling a worker in a toolutils module, and the reported imports name exactly what to read next.

Parameters:

Name Type Description Default
tool_name
str

Internal tool name, from list_shelf_tools.

required

list_shelf_tools async

list_shelf_tools(
    ctx: Context, filter: str | None = None, limit: int = 60
) -> dict

Find shelf tools by name, label or keyword.

Use this when a setup exists as a shelf tool rather than as a node: oceans, quick sims, rigging setups. A full install ships around 8,000 of them, so always filter.

Parameters:

Name Type Description Default
filter
str | None

Substring matched against name, label and keywords.

None
limit
int

Maximum tools to return.

60

run_shelf_tool async

run_shelf_tool(
    ctx: Context,
    tool_name: str,
    kwargs: dict[str, Any] | None = None,
    parent_path: str | None = None,
) -> dict

Run a shelf tool and report the nodes it created.

Most shelf tools call hou.ui, because Houdini invokes them from a click, so they work in a graphical session and fail with a clear message in a headless one. When that happens, read the recipe with get_shelf_tool_script and build the network directly.

Parameters:

Name Type Description Default
tool_name
str

Internal tool name, from list_shelf_tools.

required
kwargs
dict[str, Any] | None

Overrides merged into the synthetic kwargs the script reads.

None
parent_path
str | None

An extra network to watch for new nodes. /obj, /stage, /out, /mat and /img are always watched, because a shelf tool is free to build in more than one of them: largeOcean creates both a geo in /obj and a LOP in /stage.

None