Skip to main content
Glama

run_shelf_tool

Execute a Houdini shelf tool and report the nodes it creates, even inside existing networks, while preserving the current scene selection.

Instructions

Run a shelf tool and report the nodes it created.

A tool that asks for objects takes selection, or the objects already selected, as in Houdini. A tool that asks for anything else is retried once as a Ctrl+click, Houdini's "place immediately" (ran_as_ctrl_click): the Crowds Simulate tool then builds its whole default crowd. A tool that still asks (the FLIP ocean layer, collide-with) is refused, since through the bridge it would block Houdini until someone clicks: read the recipe with get_shelf_tool_script and build the nodes with build_network.

Nodes the tool added inside networks that already existed (a FLIP tool into the current POP network) are listed in created_in_existing; current_dop_network says where DOP tools put theirs, before and after.

Args: tool_name: Internal tool name, from list_shelf_tools. kwargs: Overrides merged into the synthetic kwargs the script reads. parent_path: 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. A SOP network given here is also where a SOP tool places its nodes (placed_in). selection: Object paths the tool takes as its object selection. The scene's selection is left as it was, whatever the tool selects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kwargsNo
selectionNo
tool_nameYes
parent_pathNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.25.0
    • addedInput schema / properties / selection
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Selection"
      +}
  2. Changed1 schema field changedv2.24.1
    • addedInput schema / additionalProperties
      Added value: +false
  3. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does so: it discloses the Ctrl+click retry, the refusal case and its blocking risk ('would block Houdini until someone clicks'), where created nodes land, and that the scene selection is preserved. These are non-obvious behavioral traits beyond a plain 'run' operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose sentence, then behavior, then the Args list; every sentence carries information. It is dense and somewhat long, but the length reflects genuine edge-case content rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description covers return values inline (`created_in_existing`, `current_dop_network`, `placed_in`, `ran_as_ctrl_click`). For a 4-param, mutation-style tool with no annotations, this is as complete as an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and its Args block documents all four parameters: tool_name's source (list_shelf_tools), kwargs as overrides merged into synthetic kwargs, parent_path as an extra watched network plus the always-watched set, and selection including the note that scene selection is unchanged.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Run a shelf tool and report the nodes it created') and immediately frames it against siblings (list_shelf_tools for the name, get_shelf_tool_script/build_network for refused tools). An agent can distinguish it from list_shelf_tools and get_shelf_tool_script without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when/when-not routing: object-taking tools use `selection`; other tools are retried once as Ctrl+click; tools that still ask are refused, and the description names get_shelf_tool_script + build_network as the alternative path. Conditions that select each behavior are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools