Skip to main content
Glama

set_hda_interface

Author an HDA's type interface in one call, defining tab folders, parameter ranges, menus, and Hide/Disable When conditions.

Instructions

Author an HDA's Type Properties interface in one call.

Use this for the asset's TYPE interface — tab folders, strict ranges, ordered menus, Hide/Disable When. create_spare_parameter is a different thing: it adds parameters to one node instance and never reaches the type.

Each entry of parameters is a dict: name, label, type (int|float|string|toggle|menu|folder), default, min, max, min_strict, max_strict, components, menu_items ([value, label] pairs or plain strings), folder_type (tabs|simple|collapsible|radio) + children for folders, hide_when / disable_when (Houdini conditionals), help.

Example — a Controls tab whose Bevel disappears for a single stud: [{"name": "controls", "label": "Controls", "type": "folder", "children": [ {"name": "stud_count", "type": "int", "default": 4, "min": 1, "max": 8, "min_strict": True, "max_strict": True}, {"name": "bevel", "type": "float", "default": 0.02, "min": 0.0, "max": 0.1, "hide_when": "{ stud_count == 1 }"}, {"name": "material", "type": "menu", "menu_items": [["plastic", "Plastic"], ["metal", "Metal"]]}]}]

It is edit_hda_interface with one insert per entry: names already in the interface are refused before anything is written, and the reply is read back off the definition — ops[].stored, renamed_by_houdini (a tab folder joins the existing tab set's naming series), not_found_after_write, instance_parms_missing and instance_expression_errors.

Args: ctx: MCP context. node_path: An instance of the HDA whose definition is edited. parameters: Interface spec (see above). create_spare_parameters' spelling (parm_name, parm_type, default_value) is accepted too. replace: Start from an empty interface. Built-in parameters of the node type cannot be removed: Houdini puts them back (reinstated_by_houdini). dry_run: Validate and report the plan without writing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNo
replaceNo
node_pathYes
parametersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.24.1
    • addedInput schema / additionalProperties
      Added value: +false
  2. Addedv2.18.0

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely meets it: it discloses that existing names are refused before any write, that built-in parameters are reinstated by Houdini, that dry_run validates without writing, and it enumerates the read-back fields (ops[].stored, renamed_by_houdini, not_found_after_write, instance_parms_missing, instance_expression_errors). It stops short of describing failure modes outside the write path, but is unusually informative for a mutation tool.

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?

It is long, but front-loaded with a one-line purpose, then the sibling distinction, the spec, a concrete example, write semantics and args. The worked example and read-back field list earn their space; only minor tightening is possible.

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, so the description supplies the return semantics itself (ops[].stored, renamed_by_houdini, not_found_after_write, etc.). Combined with the exhaustive `parameters` spec and write/refuse behavior, an agent has everything needed to call this 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 coverage is 0%, so the description must compensate and does: it documents ctx, node_path, replace and dry_run by name, and gives a full field-by-field spec for the `parameters` entries (name, label, type, default, min/max, min_strict/max_strict, components, menu_items, folder_type+children, hide_when/disable_when, help), plus an accepted alternate spelling from create_spare_parameters.

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 and resource ('Author an HDA's Type Properties interface') and immediately distinguishes it from the sibling create_spare_parameter, which 'adds parameters to one node instance and never reaches the type.' An agent can route between the two without opening either 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?

Explicitly says when to use it ('for the asset's TYPE interface — tab folders, strict ranges, ordered menus, Hide/Disable When') and names the alternative that must not be used instead (create_spare_parameter). It also clarifies the relationship to edit_hda_interface and the replace/dry_run modes.

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