Skip to content

nodes

nodes

MCP tool wrappers for Houdini node operations.

Each tool delegates to the corresponding handler running inside Houdini via the HTTP bridge.

Functions:

Name Description
connect_nodes

Connect two nodes together.

connect_nodes_batch

Connect multiple node pairs in a single call.

copy_node

Copy a node, optionally into a different parent network.

create_node

Create a node inside a parent network.

delete_node

Delete a node.

disconnect_node

Disconnect one or all inputs of a node.

find_nodes

Search for nodes by name pattern, type, or context.

get_node_info

Get detailed information about a node.

layout_children

Auto-layout children of a network node.

list_children

List children of a network node.

list_node_types

List available node types for a context category.

move_node

Move a node to a different parent network.

rename_node

Rename a node.

reorder_inputs

Reorder the input connections of a node.

set_node_color

Set a node's color in the network editor.

set_node_flags

Set flags on a node.

set_node_position

Set a node's position in the network editor.

Functions

connect_nodes async

connect_nodes(
    ctx: Context,
    source_path: str,
    dest_path: str,
    output_index: int = 0,
    input_index: int = 0,
) -> dict

Connect two nodes together.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
source_path
str

Upstream node path.

required
dest_path
str

Downstream node path.

required
output_index
int

Source output index.

0
input_index
int

Destination input index.

0

connect_nodes_batch async

connect_nodes_batch(ctx: Context, connections: list[dict[str, Any]]) -> dict

Connect multiple node pairs in a single call.

Parameters:

Name Type Description Default
connections
list[dict[str, Any]]

List of connections. Each dict has keys: source_path (str), dest_path (str), output_index (int, default 0), input_index (int, default 0).

required

copy_node async

copy_node(
    ctx: Context,
    node_path: str,
    dest_parent: Optional[str] = None,
    new_name: Optional[str] = None,
) -> dict

Copy a node, optionally into a different parent network.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Source node path.

required
dest_parent
Optional[str]

Destination parent path.

None
new_name
Optional[str]

Name for the copy.

None

create_node async

create_node(
    ctx: Context,
    parent_path: str,
    node_type: str,
    name: Optional[str] = None,
    position: Optional[list] = None,
) -> dict

Create a node inside a parent network.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
parent_path
str

Parent network path.

required
node_type
str

Node type (e.g. 'geo', 'box', 'grid').

required
name
Optional[str]

Node name.

None
position
Optional[list]

[x, y] network editor position.

None

delete_node async

delete_node(ctx: Context, node_path: str) -> dict

Delete a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required

disconnect_node async

disconnect_node(
    ctx: Context,
    node_path: str,
    input_index: Optional[int] = None,
    disconnect_all: bool = False,
) -> dict

Disconnect one or all inputs of a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
input_index
Optional[int]

Input index to disconnect.

None
disconnect_all
bool

Disconnect all inputs.

False

find_nodes async

find_nodes(
    ctx: Context,
    pattern: Optional[str] = None,
    node_type: Optional[str] = None,
    context: Optional[str] = None,
    inside: str = "/",
) -> dict

Search for nodes by name pattern, type, or context.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
pattern
Optional[str]

Glob pattern for node names (e.g. 'box*').

None
node_type
Optional[str]

Node type filter (e.g. 'box', 'null').

None
context
Optional[str]

Category filter (e.g. 'Sop', 'Object').

None
inside
str

Root path to search within.

'/'

get_node_info async

get_node_info(ctx: Context, node_path: str) -> dict

Get detailed information about a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required

layout_children async

layout_children(
    ctx: Context, parent_path: str, spacing: Optional[float] = None
) -> dict

Auto-layout children of a network node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
parent_path
str

Parent network path.

required
spacing
Optional[float]

Spacing multiplier between nodes.

None

list_children async

list_children(
    ctx: Context,
    parent_path: str,
    recursive: bool = False,
    filter_type: Optional[str] = None,
) -> dict

List children of a network node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
parent_path
str

Parent network path.

required
recursive
bool

Include all descendants.

False
filter_type
Optional[str]

Node type filter (e.g. 'box', 'merge').

None

list_node_types async

list_node_types(ctx: Context, context: str) -> dict

List available node types for a context category.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
context
str

Category name (e.g. 'Sop', 'Lop', 'Dop', 'Top', 'Cop2').

required

move_node async

move_node(ctx: Context, node_path: str, dest_parent: str) -> dict

Move a node to a different parent network.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
dest_parent
str

Destination parent path.

required

rename_node async

rename_node(ctx: Context, node_path: str, new_name: str) -> dict

Rename a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
new_name
str

New node name.

required

reorder_inputs async

reorder_inputs(ctx: Context, node_path: str, new_order: list) -> dict

Reorder the input connections of a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
new_order
list

New input ordering (e.g. [1, 0] swaps first two).

required

set_node_color async

set_node_color(
    ctx: Context, node_path: str, r: float, g: float, b: float
) -> dict

Set a node's color in the network editor.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
r
float

Red (0.0-1.0).

required
g
float

Green (0.0-1.0).

required
b
float

Blue (0.0-1.0).

required

set_node_flags async

set_node_flags(
    ctx: Context,
    node_path: str,
    display: Optional[bool] = None,
    render: Optional[bool] = None,
    bypass: Optional[bool] = None,
    template: Optional[bool] = None,
    lock: Optional[bool] = None,
) -> dict

Set flags on a node.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
display
Optional[bool]

Display flag.

None
render
Optional[bool]

Render flag.

None
bypass
Optional[bool]

Bypass flag.

None
template
Optional[bool]

Template flag.

None
lock
Optional[bool]

Lock flag.

None

set_node_position async

set_node_position(ctx: Context, node_path: str, x: float, y: float) -> dict

Set a node's position in the network editor.

Parameters:

Name Type Description Default
ctx
Context

MCP context.

required
node_path
str

Node path.

required
x
float

Horizontal position.

required
y
float

Vertical position.

required