Skip to main content
Glama

export_file

Writes a Houdini node's output to a disk path and verifies whether a file appeared or changed; handles SOPs, LOP USD stages, ROP renders, and frame ranges.

Instructions

Export a node's output to a file on disk, and report whether it landed.

SOPs are saved directly, LOPs export their USD stage, and a /out ROP is pointed at file_path and executed (its own output path is restored afterwards). Reports wrote_files, so success: True means a file appeared or changed -- not merely that the call returned. A frame_range writes name.0001.ext per frame and leaves the playbar where it was.

Args: node_path: Path to the node to export. file_path: Destination file path. For a ROP this overrides its output parameter for the duration of the export. frame_range: Frame range as [start, end] or [start, end, step].

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_pathYes
node_pathYes
frame_rangeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.24.1
    • addedInput schema / additionalProperties
      Added value: +false
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses that success is verified via `wrote_files` (a file appeared or changed, not just a returned call), that a /out ROP's output path is restored afterwards, and that a frame_range writes `name.0001.ext` per frame while leaving the playbar unchanged. These are exactly the side effects an agent needs.

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-loads the action in the first sentence, then layers behavior and an Args block. Dense but each sentence earns its place; the prose paragraph is slightly heavy relative to the small parameter set.

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

Completeness4/5

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

No output schema or annotations exist, but the description covers return semantics (wrote_files / success) and key side effects, which is strong for a 3-param mutation tool. It could say more about failure modes or what happens on partial frame exports, leaving a small gap.

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

Parameters4/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 it documents all three params: node_path's role, file_path with the ROP override semantics, and frame_range's [start, end] / [start, end, step] shapes. It stops short of restating types/defaults, keeping it just below full credit.

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 ('export a node's output to a file on disk') and goes further by enumerating how it behaves for SOPs, LOPs, and /out ROPs. This lets an agent distinguish it from siblings like save_scene, start_render, write_cache, and import_file 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 Guidelines3/5

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

The description explains per-node-type behavior and the ROP override, which implies when the tool applies, but it never names an alternative (e.g., start_render or write_cache) or states when NOT to use it. Usage is inferrable rather than explicit.

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