houdini-mcp
Drives a live Houdini session, providing tools for Solaris/LOP workflows, scene inspection, cooking, viewport capture, and code execution.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@houdini-mcpCook the selected node and report any errors."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
houdini-mcp
Drive a live Houdini session from an MCP client (Claude, Grok, Codex, …).
Houdini 22-first. Pipeline-safe by design: this is hands in houdini-bin, not a
shot database — it does not talk to any asset-management or production-tracking
API, and it does not ship HDAs.
Backlog: issues
Upstream seed: kleer001/houdini-mcp (MCP bridge + TCP plugin). This fork changed the contract.
What it is
AI client --stdio MCP--> houdini_mcp_server.py --TCP :9876--> plugin in houdini-bin --> houThe plugin is per Houdini process. The MCP client config is per user. Ship it as its own package if you vendor it into a facility environment — it is not meant to live inside a shared HDA library.
Related MCP server: Houdini MCP Server
H22 contract
Start hook:
$HOUDINI_USER_PREF_DIR/python3.13libs/uiready.py(notscripts/pythonrc.py)Houdini package JSON:
PYTHONPATHonly — neverpath:ontoHOUDINI_PATHNo
hou.ui.desktops()/ shelf UI from MCP (H22 plus a site123.pyhas crashed houdini-bin)LOP nodes have no
setRenderFlagexecute_codereturns{executed, stdout, stderr, error, traceback}— never drops TCPViewport capture = Scene Viewer flipbook. OpenGL ROP is OBJ-only. Desktop grab runs outside houdini-bin.
Solaris viewport:
set_hydra_renderer("xpu"|"cpu"|"vk"|"storm"). Do notrestartRenderer+ sleep + viewwrite on the MCP thread. USD look-through isset_viewport_camera("/world/cam").
Install
git clone https://github.com/tmdag/houdini-mcp
cd houdini-mcp
uv sync
python scripts/install.py --houdini-version 22.0install.py copies the plugin into your Houdini preferences directory and
writes the package JSON that auto-starts it. It honours
HOUDINI_USER_PREF_DIR; pass --prefs-dir if you keep prefs somewhere
unusual, and --dry-run to see what it would touch first.
Claude Code / Claude Desktop:
{
"mcpServers": {
"houdini": {
"command": "/path/to/houdini-mcp/.venv/bin/python",
"args": ["/path/to/houdini-mcp/houdini_mcp_server.py"]
}
}
}Grok:
[mcp_servers.houdini]
command = "/path/to/houdini-mcp/.venv/bin/python"
args = ["/path/to/houdini-mcp/houdini_mcp_server.py"]
enabled = true
[mcp_servers.houdini.env]
HOUDINIMCP_NO_HEADLESS = "1"
HOUDINIMCP_PROFILE = "stage"In Houdini, Python Shell if uiready missed this session:
import houdinimcp
houdinimcp.start_server()Profiles
191 tools is ~17k tokens of schema before any work starts, so the advertised surface is trimmed by default. Everything still exists — the profile only changes what is listed, and the server tells the client how many tools it is hiding and how to get them back.
HOUDINIMCP_PROFILE:
stage(default) — 82 tools: Solaris/LOP + inspect + cook + screenshot + execute_code + everything the server instructions referencesop—/objmodeling extras tooall— all 191
Anything named in the server's own instructions is guaranteed to survive
stage; tests/test_tool_surface.py fails the build otherwise.
Platform support
plugin | bridge |
| notes | |
Linux | tested | tested |
| primary target |
Windows | untested | untested | PowerShell | see TROUBLESHOOTING § Windows — read it before the first install |
macOS | untested | untested |
| needs Screen Recording permission |
Windows and macOS paths are implemented and unit-tested, but nobody has run them end to end yet.
Tuning
env var | default | what it does |
|
| plugin TCP port |
|
| advertised tool surface |
|
| bridge deadline for ordinary commands |
|
| deadline for renders, sims, cooks, I/O |
|
| plugin socket poll interval |
|
| plugin deadline for writing one response |
| unset |
|
|
|
|
Offline Houdini docs
Index your Houdini's help (not a random GitHub dump):
python scripts/index_hfs_help.pyUses $HFS/houdini/help (hom.zip, nodes.zip, loose .txt). Output is gitignored.
Reload handlers (H22 stays up)
python scripts/install.py --houdini-version 22.0Then reload_plugin. Do not restart houdini-bin for handler changes. Do not importlib.reload the TCP server module (QTimer).
TCP frames are HMC1 + length + JSON. The bridge still speaks bare JSON until the plugin answers in HMC1, so an older houdini-bin keeps working. A second MCP client does not steal the first session; ping.clients / peer_warning say so.
Live smoke (H22 already running)
Does not boot Houdini. Against a GUI houdini-bin with the plugin on :9876:
HOUDINIMCP_LIVE=1 pytest tests/test_live_hydra_smoke.py -qFails if list_hydra_renderers 404s, set_hydra_renderer current ≠ requested, USD look-through isn't /world/cam, or the flipbook isn't tagged Karma XPU.
License
MIT (upstream). Not affiliated with SideFX.
Available Tools
82 toolsattach_kinefx_deformA
Skin + capture pose + clip → kinefx::jointdeform under mcp_*.
source='capybara' uses testgeometry_capybara (outputclip + motionclipevaluate).
source='nodes' wires rest_path / capture_path / anim_path.
map_joints remaps Mixamo-like clip names onto the capture skeleton.
proof hashes deform geo at clip start vs end — must differ (not T-pose).
| Name | Required | Description | Default |
|---|---|---|---|
| clip | No | elbowdrop | |
| name | No | jointdeform | |
| proof | No | ||
| source | No | capybara | |
| anim_path | No | ||
| rest_path | No | ||
| map_joints | No | ||
| parent_path | No | /obj/mcp_character | |
| capture_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose non-obvious behavior: the source-mode differences, that map_joints remaps Mixamo-like names onto the capture skeleton, and that proof hashes deform geometry at clip start vs end and must differ. It omits scene-mutation/idempotency and error behavior, but adds substantial context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core transformation, then four tightly packed lines that each add distinct information. The telegraphic arrow/fragment style is efficient but occasionally cryptic, costing a little readability without wasting space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. For a 9-parameter, zero-coverage tool the description covers the key mode selection and behavioral flags well, though it lacks prerequisites (e.g. an existing capture/skin) and full parameter mapping.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It explains source, map_joints, and proof semantics, and ties rest_path/capture_path/anim_path to the source='nodes' mode, plus 'under mcp_*' hints at name/parent_path. It leaves clip and parent_path largely unaddressed, but covers most of the 9 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and composite resource: 'Skin + capture pose + clip → kinefx::jointdeform'. An agent can tell this builds a deform node from three inputs, distinct from siblings like import_fbx_animation or map_kinefx_joints. The arrow notation is jargon-dense but still conveys the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives conditional guidance on the two operating modes via source ('capybara' uses a testgeometry pipeline; 'nodes' wires explicit paths), which tells the agent which path to take. It stops short of naming sibling alternatives or stating exclusions, so it is clear context without explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchA
Execute multiple operations in one undo group.
Each operation: {"type": "create_node", "params": {...}}.
Not a transaction. Unknown command types are rejected before anything
runs, but if an operation raises, the ones before it stay applied and
the error reports `completed` and `failed_index`. Check those before
retrying.| Name | Required | Description | Default |
|---|---|---|---|
| operations | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses validation ordering ('unknown command types are rejected before anything runs'), non-atomic behavior ('Not a transaction'), partial-application semantics, and the exact error fields to check before retrying. This is rich failure-mode disclosure; it only lacks details on undo-group scope and any return format beyond the error fields, which the output schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scope-defining sentence is front-loaded, the example is compact, and the caveat paragraph is dense with no filler. Every sentence carries distinct information (purpose, payload shape, failure semantics) and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch tool with a free-form schema, an output schema (so return format needn't be described), and no annotations, the description covers purpose, payload shape, and error semantics well. The one notable gap is that the set of valid operation types is never listed or referenced, leaving the agent to guess which 'types' will be accepted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'operations' parameter is a free-form array, so the description is the only source of structure. It supplies the critical per-item shape ({"type": ..., "params": {...}}) but does not enumerate the valid operation types, which is the key semantic question raised by 'Unknown command types are rejected'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Execute'), resource ('multiple operations'), and an unusual scope modifier ('in one undo group') that clearly distinguishes it from the single-operation siblings like create_node, delete_node, and modify_node. The name 'batch' plus this scope leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the batch semantics and the 'Not a transaction' note, so an agent can infer this is for grouping many mutations under one undo step. However, it never explicitly says when to prefer this over calling create_node/connect_nodes individually, nor does it state any prerequisite or precondition for batching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_desktopB
Grab the Houdini window from the OS — does not run inside houdini-bin.
Use this to verify network editor / UI. Viewport beauty should use
capture_screenshot instead.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait — that the capture happens at the OS level and does not run inside houdini-bin — but says nothing about resolution, output format, or where the file lands when output_path is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the scoping and alternative front-loaded; minimal waste. The parenthetical 'does not run inside houdini-bin' is a bit awkwardly placed but informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the when-to-use/alternative guidance is present. However, the sole parameter (output_path) is undocumented and the description omits output location/format details an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions output_path, so it adds no meaning beyond the bare parameter name. For a single param at 0% coverage, the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (grab the Houdini window from the OS) and explicitly differentiates from the sibling capture_screenshot, which an agent could otherwise confuse it with. Slightly ambiguous whether 'desktop' means the full screen or just the window, but the intent is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit use case ('verify network editor / UI') and names the alternative with the condition that selects it ('viewport beauty should use capture_screenshot instead'), so the agent knows when to route elsewhere. No exclusions beyond that binary split, but the primary routing decision is covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_screenshotA
Capture the current Scene Viewer and return the pixels in-band.
source='viewport' is a flipbook snapshot of the current Hydra buffer
(does not wait for Karma XPU to converge; restores renderer pause).
source='opengl' uses an OpenGL ROP (OBJ-centric beauty).
For a full desktop/UI grab, use capture_desktop (runs outside houdini-bin).
Returns JSON metadata plus an MCP image of the PNG. Path is still in the JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | viewport | |
| viewer | No | ||
| output_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that 'viewport' does not wait for Karma XPU to converge and restores renderer pause, that 'opengl' is OBJ-centric beauty, and that capture_desktop runs outside houdini-bin. It does not state permission requirements or what happens when output_path is omitted or unwritable, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then uses short line-per-mode structure with zero filler. Every sentence either describes a mode, an alternative, or the return shape.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating the return contract ('JSON metadata plus an MCP image of the PNG. Path is still in the JSON'). Combined with the mode semantics and the desktop alternative, an agent has enough to call it, though the unaddressed 'viewer' and 'output_path' parameters leave a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 it only partially does: 'source' values are explained, but 'viewer' is never mentioned and 'output_path' is only hinted at ('Path is still in the JSON') without saying whether it writes a file or where defaults land. Two of three parameters remain semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Capture the current Scene Viewer and return the pixels in-band') and immediately differentiates its two operating modes. It also names the sibling it is not (capture_desktop) for desktop/UI grabs, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit selection criteria for each source value ('viewport' = flipbook snapshot of current Hydra buffer, 'opengl' = OpenGL ROP OBJ-centric beauty) and an explicit alternative with its own precondition for the desktop case. The when-to-use branching is fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_nodesC
Connect two nodes: src output -> dst input.
| Name | Required | Description | Default |
|---|---|---|---|
| dst_path | Yes | ||
| src_path | Yes | ||
| dst_input_index | No | ||
| src_output_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden for a mutation operation. It does not say whether connecting overwrites an existing input connection, whether the operation is idempotent or errors on invalid paths, or anything about permissions/side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the arrow notation packs the data-flow meaning efficiently. It is not padded, though the extreme brevity leaves content gaps addressed under other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the core operation is stated. However, for a mutation tool with zero annotations and zero parameter documentation, the description omits connection-replacement semantics, error behavior, and any usage context, leaving material gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all four parameters are undocumented in structured fields. The description partially compensates by establishing direction semantics (src output -> dst input), hinting at the role of src_path/dst_path and the two index parameters, but adds no detail on path format, index bounds, or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb (connect) and resource (two nodes), with an arrow diagram clarifying directionality of the data flow. It is distinguishable from the sibling disconnect_node_input, though it does not name or contrast with it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like disconnect_node_input, create_node, or modify_node, and no prerequisites (e.g., whether both nodes must already exist or be in the same network).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lop_nodeD
Create a LOP node.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| node_type | Yes | ||
| parent_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden — and it discloses nothing about permissions, side effects on the scene, whether the node is created inside the currently selected network, or what is returned. 'Create' at least implies a mutation, but no trait beyond that is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is short and front-loaded, but its brevity reflects under-specification rather than economy — there is no content to be concise about. Nothing here earns its place beyond the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no annotations and 0% schema description coverage, the description is far too thin. The presence of an output schema excuses it from explaining return values, but it still leaves the agent without the path format, valid node types, or creation semantics needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions none of the three parameters (parent_path, node_type, name). With two required parameters whose formats (path syntax, valid node type strings) are entirely undocumented anywhere, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a LOP node' essentially restates the tool name and title, adding only the acronym expansion (LOP). It gives a verb and a resource but offers no scope, no distinction from siblings like create_node or modify_node, and no indication of what a LOP node is in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_node, even though that sibling likely overlaps heavily. An agent has no basis for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_nodeC
Create a new node in Houdini.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| node_type | Yes | ||
| parent_path | No | /obj |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral implications. The single sentence only says 'Create a new node' and gives no information about side effects, required permissions, or how the node is positioned or connected. Only the input schema suggests parent_path, but the description does not elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise in the sense of being short, but it is under-specified and omits essential context. It is more of a placeholder than a well-structured description, and the single sentence does not earn its place as a useful guide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's multiple parameters and lack of annotations, the description is highly incomplete. It does not explain the role of parent_path or name, nor how node_type works. An output schema exists, but the description still leaves significant gaps in understanding the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines name, node_type, and parent_path, but the description does not mention any of them. Since schema description coverage is 0%, the description fails to add semantic meaning beyond the raw field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: creating a node in Houdini. It uses a specific verb and resource. However, it does not distinguish itself from other creation tools such as create_wrangle or create_cop_node, which also create nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use create_node versus other tools, nor does it mention any prerequisites or alternatives. This leaves the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_nodeC
Delete a node from the Houdini scene by path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a destructive mutation. It does not say whether deletion is permanent/undoable, whether child nodes are deleted with the parent, what happens on an invalid path, or what the response contains. Only the implicit 'delete' semantics signal destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and identifier front-loaded and no wasted words. Its brevity is efficient, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a destructive tool with zero annotation coverage the description omits critical context: path format, child-node handling, and failure behavior. Given the rich sibling set, it does too little to help an agent call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the single 'path' parameter. 'By path' merely restates the parameter name and adds no format or syntax detail (e.g. whether it is an absolute Houdini node path like /obj/geo1/box1), leaving the gap largely unfilled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a node') plus the domain ('Houdini scene'), which clearly separates it from siblings like create_node and modify_node. It stops short of explicitly naming those alternatives, so it is clear but not fully sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and does not point to any alternative or related tool. An agent must infer entirely from the name that this is the counterpart to create_node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_node_inputC
Disconnect a specific input on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| input_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does little: it does not say whether the disconnect is reversible, whether it errors when nothing is connected, whether the node must be cooked or locked, or if any permissions/state constraints apply. An output schema exists, so return values need not be described, but the mutation semantics are unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though the brevity borders on under-specification for a mutation tool rather than being a model of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotation coverage, no parameter descriptions, and no usage guidance, the description is too thin. The presence of an output schema removes the need to document returns, but preconditions and mutation effects remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for two parameters. The description implies 'specific input' maps to input_index and 'node' maps to node_path, but it never explains path format, indexing base, or the meaning of the default of 0. It adds only marginal meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Disconnect') and resource ('a specific input on a node'), so the agent knows exactly what operation is performed. It is clearly distinct from siblings like connect_nodes, but it never names or contrasts them explicitly, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus connect_nodes or modify_node, no prerequisites, and no note about error conditions (e.g. what happens if the input index is not currently connected). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_expressionC
Evaluate a Houdini expression and return the result.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | hscript | |
| expression | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says almost nothing. It does not disclose which expression languages work, whether evaluation has side effects on the scene, or any security/permission constraints beyond the bare 'return the result'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient, front-loaded sentence with no filler. It is arguably under-specified rather than overly verbose, but structure-wise it wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, but the two undocumented parameters and lack of any language/context information leave the definition too thin for an agent to call this correctly alongside several script-execution siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not. The 'language' parameter (defaulting to hscript) is never explained, and the accepted format or alternatives for 'expression' are left unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Evaluate a Houdini expression and return the result.' An agent can tell it evaluates expressions rather than executing raw code, but the description does nothing to distinguish it from the close sibling execute_hscript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. With execute_hscript, execute_houdini_code, and batch in the sibling set, the description never says when evaluating an expression is preferred over running a script.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_houdini_codeA
Execute arbitrary Python code in Houdini's environment.
Returns status and any stdout/stderr generated by the code.
Blocks dangerous patterns (hou.exit, os.remove, subprocess, etc.) unless allow_dangerous=True.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| allow_dangerous | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that returns include status plus stdout/stderr, and that dangerous patterns (hou.exit, os.remove, subprocess) are blocked unless allow_dangerous=True. This is meaningful safety-mechanism disclosure. It omits permission/auth requirements, but overall it covers more than most code-execution tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then return behavior, then the safety constraint. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is largely optional, yet the description still summarizes stdout/stderr/status. For an arbitrary-code-execution tool with zero annotations, the safety disclosure plus param explanation makes it essentially usable; only the missing alternative routing and permission context keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It does explain allow_dangerous precisely (unlocks blocked dangerous patterns), which is its main value. The 'code' parameter is self-evident by name, but the description adds no syntax or format guidance for it. Adequate but not complete against a 0% coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Execute arbitrary Python code in Houdini's environment.' An agent knows exactly what this does. However, it does not differentiate from the sibling execute_hscript or evaluate_expression, which are the closest alternatives, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no routing to alternatives. With siblings like execute_hscript and evaluate_expression present, the description gives no signal about when Python execution is the right choice over Hscript or expression evaluation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_hscriptC
Execute an HScript command and return stdout/stderr.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it only says stdout/stderr is returned. It omits that HScript commands can mutate scene state, whether there are safety or timing constraints, and how failures surface, all of which matter for an arbitrary command runner.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with zero filler. It is efficient, though the terseness shades into under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no elaboration, and only one required parameter is present. Still, for an arbitrary-code execution tool with no annotations, the description omits mutation risk, environment context, and sibling differentiation, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'command' parameter has no description anywhere. The description does not clarify expected syntax (HScript vs Python vs MEL), escaping rules, or multi-line support, so it adds no meaning beyond the bare property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Execute) and resource (HScript command) plus the output channel (stdout/stderr). However, it offers no differentiation from the sibling execute_houdini_code, so an agent cannot tell from the text alone which of the two execution tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the obvious alternative execute_houdini_code (or batch). The agent gets no basis for choosing this tool over its near-identical sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_nodeB
Get a human-readable explanation of a node: type, non-default parms, connections.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only inspection and discloses a meaningful behavior (only non-default parameters are reported), but never explicitly states it is read-only, nor does it mention permissions or any side effects. Some behavioral value, but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and enumerates the returned content with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description names the three content categories returned. For a simple one-parameter read tool this is nearly complete; only the undocumented 'path' parameter keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required 'path' parameter has 0% schema description coverage and the description never mentions or defines it. The agent can infer 'path' is a node path from 'a node', but no format, scope, or example is provided to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get... explanation') and resource ('a node'), and enumerates what the explanation contains: type, non-default parms, connections. It does not differentiate from the closely related sibling get_node_info, so an agent cannot tell them apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the obvious alternative get_node_info or get_parameter. Usage is only implied by the listed content, leaving the agent to guess when this is preferable to other node-inspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_error_nodesC
Scan the node hierarchy for cook errors and warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| root_path | No | /obj |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only diagnostic but does not state whether it recurses the whole hierarchy or only under root_path, whether it triggers cooking, or whether it is expensive on large scenes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the purpose is stated immediately. It is arguably too terse for the gaps it leaves, but there is no wasted language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a scene-scanning tool the missing recursion/scope semantics around root_path and the absence of any behavioral context leave the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter root_path has 0% schema description coverage, and the description adds nothing about it - it never explains that root_path scopes the scan or whether the scan includes descendants. With one undocumented parameter, the description must compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scan') and resource ('node hierarchy') with a clear target ('cook errors and warnings'), which distinguishes it from the name-based find_nodes sibling. It does not explicitly name a sibling, but the diagnostic purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and no reference to alternatives such as find_nodes, get_cook_chain, or explain_node, which are the obvious adjacent debugging tools. An agent must infer that this is a debugging tool from purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nodesC
Find nodes matching a name pattern, optionally filtered by type.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | ||
| node_type | No | ||
| root_path | No | / |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It never discloses pattern syntax (glob, regex, wildcard?), whether the search recurses below root_path, case sensitivity, or result limits — all critical for a search tool with no structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the core action front-loaded and zero filler. It is efficient, though the brevity borders on under-specification rather than true economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required. However, with 3 undocumented parameters, no annotations, and no pattern-syntax or scope details, the definition is only minimally sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so all three parameters rely on the description. It maps loosely to 'pattern' and 'node_type' but says nothing about root_path (default '/'), which is the scoping parameter that determines search breadth; neither does it explain accepted pattern syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: find nodes matching a name pattern, with an optional type filter. This distinguishes it reasonably from list_children and list_joints, though it never explicitly contrasts itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what it does but gives no when-to-use guidance, no alternatives, and no exclusions. An agent cannot tell from this text whether find_nodes is preferred over list_children or find_error_nodes for a given search task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_allA
Frame the viewport on all geometry.
Refuses if isolate matches no OBJ (that framed the infinite grid).
Use frame_bbox for a character/hero.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose a useful edge-case behavior (refusal when isolate matches no OBJ, which leaves the infinite grid framed), but says nothing about whether this mutates scene state or what the viewport changes affect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the action, followed immediately by the caveat and the routing hint. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A parameterless, output-schema-backed viewport tool is well covered by the action statement, the refusal caveat, and the sibling pointer. Only a note on what the viewport change affects (state mutation) would make it fully rounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description neither needs nor provides parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Frame the viewport on all geometry" gives a specific verb and resource, and the note routing character/hero framing to frame_bbox distinguishes it from a key sibling. It does not distinguish itself from frame_selection, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternative (frame_bbox for a character/hero), which is real routing guidance. There is no explicit when-not beyond that, and frame_selection is never mentioned, so it stops short of the full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_bboxC
Frame a world-space bbox or a node's geometry. Does not home the grid.
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No | ||
| max_vec | No | ||
| min_vec | No | ||
| node_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not say this moves the viewport camera, what happens when both min_vec/max_vec and node_path are supplied (which wins?), whether the viewer param is optional, or what occurs when all optional params are omitted — significant gaps for an action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action. Little waste, though the 'Does not home the grid' clause is cryptic without context and could be traded for more useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but with four undocumented parameters, zero annotations, and no usage routing, the description is too thin for an agent to invoke this confidently. Missing details include viewer selection and bbox-vs-node precedence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for all four parameters. It loosely maps 'world-space bbox' to min_vec/max_vec and "node's geometry" to node_path, but gives no format, units, or precedence rules, and the 'viewer' parameter is never mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Frame') and the two resource variants it accepts (a world-space bbox or a node's geometry), which sets it apart from frame_selection and frame_all. However, it never names those siblings explicitly, so the agent must infer the distinction from the input types alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the negative 'Does not home the grid,' which clarifies one non-behavior but offers no positive when-to-use instruction. Nothing tells the agent when to pick this over frame_selection, frame_all, or frame_usd_prim.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_selectionB
Frame the viewport on the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does disclose a state dependency (it acts on the 'current selection'), which is useful, but says nothing about what happens with an empty selection, whether the camera move persists, or whether the operation requires a specific viewport context. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. For a zero-argument viewport action this is the right size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the action itself is simple. However, with no annotations and no mention of empty-selection behavior or viewport prerequisites, the definition is only minimally sufficient given the absence of all structured behavioral hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema has nothing for the description to explain. The baseline of 4 applies; the description cannot add parameter meaning where none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (frame) and target (viewport on the current selection), which is clear enough for an agent to distinguish it from the sibling frame_all, frame_bbox, and frame_usd_prim. It stops short of naming those siblings, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no explicit alternatives. With frame_all, frame_bbox, and frame_usd_prim in the sibling list, the description should say when to frame the selection instead of the whole scene or a bounding box, but it leaves that entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_usd_primC
Frame the LOP viewer on a USD prim bbox (hero, not the infinite grid).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| viewer | No | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that the framing targets the prim's bbox rather than the infinite grid, which is a useful behavioral hint, but it omits whether the operation moves the camera, which viewer it defaults to, or what happens when the prim cannot be resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly written sentence with the action front-loaded and no filler. The trailing parenthetical is compact, though 'hero' is jargon that some agents may not resolve.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, three undocumented parameters (two required), and no parameter explanations, the description is too thin. The output schema is present so return values need not be covered, but the invocation contract remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The description implies 'prim_path' via 'USD prim bbox' and gestures at 'viewer', but never explains the role of 'path', how it differs from 'prim_path', or how 'viewer' selects a target. It does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (frame) and resource (LOP viewer on a USD prim bbox), which an agent can distinguish from generic siblings like frame_all. It stops short of explicitly contrasting with frame_selection or frame_bbox, both of which could plausibly be confused with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(hero, not the infinite grid)' hints at the framing behavior but does not say when this tool should be chosen over frame_selection, frame_all, or frame_bbox. No prerequisites or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connection_statusA
Returns the current connection status to Houdini, including whether connected, port, command count, and timing info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly states the operation is a read-only query returning connection status fields (whether connected, port, command count, timing). This sufficiently discloses behavior for a non-mutating getter, though it does not explicitly label itself read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence with no filler. It front-loads the primary purpose and then enumerates the salient return fields efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity, has an output schema (so return values are covered elsewhere), and has no parameters. The description gives the core purpose and return fields, making it complete enough for an agent to select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. Schema description coverage is 100% (empty object), and the description correctly does not need to document parameters. No additional parameter semantics can be added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('current connection status to Houdini') and lists the salient returned fields. It does not explicitly differentiate itself from sibling tools such as ping or get_scene_info, so it is clear but not maximally distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative guidance. The implied usage is to check the connection to Houdini, but the agent receives no direction on when this is preferable to ping or other status tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cook_chainB
Get the cook dependency chain for a node (inputs all the way up).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Inputs all the way up' usefully discloses the traversal direction and that it is transitive/upstream, but nothing is said about permission requirements, cycles, or performance on deep chains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the scoping detail parenthesized and front-loaded. Nothing is wasted and the core action comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and for a single-param read tool the description is nearly sufficient. The main gap is the meaning of the path parameter, which is left ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single path parameter, so the description must compensate. 'For a node' loosely maps path to a node identifier, but neither the schema nor the description states whether it is a node path, name, or network-qualified identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (cook dependency chain) and clarifies the traversal with 'inputs all the way up.' An agent can tell what it returns, but the description does not differentiate it from siblings like get_node_info or explain_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no alternative named despite many related node-inspection siblings. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docA
Get the full content of a Houdini documentation page by its relative path (as returned by search_docs). Does NOT require a Houdini connection.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden: 'Get' clearly signals a read-only operation, and 'Does NOT require a Houdini connection' is genuinely useful context since nearly every sibling tool needs a live session. It does not cover failure behavior for an invalid/nonexistent path or any rate/size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, and every clause carries information: what it returns, the path format, its origin, and the connection independence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a single-parameter read tool this is nearly complete; the only minor gap is behavior on an invalid path, which the description omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'path' parameter, so the description must compensate, and it does: it specifies the value is a 'relative path' (not absolute) and that it comes from search_docs. That is meaningful semantics beyond the bare string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the full content of a Houdini documentation page') and pins down the input ('by its relative path'), which cleanly separates it from the sibling search_docs that produces those paths.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(as returned by search_docs)' establishes the intended workflow and names the upstream sibling, which is strong implied usage guidance. It stops short of stating when not to use it or spelling out prerequisites beyond the connection note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_logC
Last execute_code payload stored in the Houdini session (errors included).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states that errors are included, which is a useful behavioral note, but it does not cover permissions, rate limits, whether the log is cleared after reading, or the format of the return. With an output schema present, some return details may be covered there, but the description is minimal for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is concise and free of filler. It could be slightly clearer by specifying what 'payload' means, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (so return values need not be explained) and no parameters, the description is mostly complete. However, with no annotations and sparse behavioral detail, an agent lacks context on when to call this tool versus others, and whether the log is persistent. It is minimally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document. Per the rubric, zero params gives a baseline of 4. The description does not need to explain parameters, and it correctly omits them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it retrieves the last execute_code payload from the Houdini session, which is a specific verb+resource. However, it does not clearly distinguish itself from siblings like get_network_overview or list_panes, and the phrasing 'Last execute_code payload' is slightly ambiguous without context on whether it returns stdout, return values, or errors. It's adequate but not sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. An agent might confuse it with find_error_nodes, get_network_overview, or execute_hscript. The description implies it's for debugging execute_code, but no when/when-not rules are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_modified_primsC
Get recently modified prims from the edit target layer.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the scoping behavior ('from the edit target layer'), which is useful, but says nothing about how 'recently' is defined, ordering, or result limits beyond the count parameter. For a read tool with zero annotation coverage, this leaves meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste, but it is under-specified rather than genuinely concise. Brevity here comes at the cost of the parameter and usage detail the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format detail is not required. However, for a two-parameter read tool with no annotations and 0% schema coverage, the description should at minimum clarify what 'path' and 'count' mean and when to prefer this over other prim-listing tools. That detail is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter meaning at all: 'path' is never explained (path to what?), and 'count' (default 10) is never mentioned. The description does not compensate for the schema's total lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) plus resource (recently modified prims) and a scope qualifier (edit target layer), so the agent understands what it returns without opening the schema. It does not explicitly differentiate itself from the closely-named sibling list_usd_prims, which keeps it out of 5 territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no reference to alternatives such as list_usd_prims or lop_prim_search. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_overviewC
Get an overview of all nodes in a network with their connections.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | /obj |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose what the 'overview' contains (summary vs full data), whether it traverses recursively, the scale/cost of the traversal, or any permission requirements. An output schema exists, which partially covers the return shape, but the behavioral profile is largely undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the key content front-loaded. No padding, though there is room to add routing and parameter context without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be re-explained, so the gap is narrower than it appears. However, the lone parameter is undocumented and there is no routing guidance against several similarly named sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (path, default '/obj') with 0% schema description coverage, and the description never mentions it. It says only 'a network' without explaining that path selects which network, nor the format or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (get) and resource (network overview), and specifies the content: all nodes plus their connections. This distinguishes it naturally from list_children (immediate children only) and find_nodes (search), though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no indication of how it differs from siblings like list_children, list_nodes, find_nodes, or get_node_info. The agent must infer the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoB
Get detailed info about a node: type, parameters, inputs, outputs.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get' strongly implies a non-mutating read, and the output schema covers return structure, but the description says nothing about side effects, permissions, or whether the node must be cooked/loaded, leaving behavioral characteristics implied rather than stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the verb and resource front-loaded and zero filler. It is efficient, though the terseness is partly what leaves the parameter and usage gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the return shape need not be explained, and the field list covers the essentials. However, for a node-inspection tool sitting among many similar siblings, the missing path semantics and lack of routing guidance leave the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'path' parameter, and the description does not compensate at all. It never explains whether 'path' is a node path (e.g. /obj/geo1), a file path, or something else, which is the one piece of information an agent most needs to call this correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('node info') and enumerates the four returned facets (type, parameters, inputs, outputs), so the agent knows what it retrieves. It does not distinguish itself from close siblings such as explain_node, get_parameter, or get_parameter_schema, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite several overlapping siblings (explain_node for narrative explanation, get_parameter/get_parameter_schema for individual parameters, find_nodes/list_node_types for discovery). The agent must infer the choice entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parameterB
Get a single parameter's value, type, expression, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| parm_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' implies a safe read and the enumeration of returned fields adds some context, but it says nothing about error behavior for a nonexistent node_path/parm_name, permissions, or whether the read triggers a cook.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though the terseness contributes to the underspecification noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not needed. But with 0% parameter coverage, no annotations, and no usage guidance, the definition is only minimally sufficient for invoking this two-parameter tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither parameter is documented in the schema. The description gives no format hints for node_path (e.g., a scene path) or parm_name, leaving the agent to guess the expected syntax for both required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get a single parameter') and enumerates what it returns (value, type, expression, metadata), which is clearer than a bare tautology. However, it does not differentiate itself from the close sibling get_parameter_schema or clarify its relationship to set_parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer get_parameter_schema or set_parameter, and no stated preconditions. The agent must infer context entirely from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parameter_schemaB
Get the full parameter schema (all parm templates) for a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden alone; 'Get' implies a safe read and 'all parm templates' clarifies the scope of the result, which is useful. However, it says nothing about permissions, failure modes, or cost, leaving the behavioral profile thin for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the operation front-loaded and zero filler. It is perhaps slightly too terse for a tool with an undocumented parameter, but structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is a simple single-parameter read. Still, the undefined node_path semantics leave an agent without enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter node_path has 0% schema description coverage, so the description must compensate for the gap. It never explains the node path format or syntax, adding no meaning beyond the bare parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (full parameter schema / all parm templates) scoped to a node, which an agent can distinguish from get_parameter. It does not explicitly name or contrast with sibling tools, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives such as get_parameter or list_file_parms, and no prerequisites described. The implied context ('for a node') is the only hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoB
Ask Houdini for scene info. Returns JSON as a string.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the return is a JSON string, but it does not state what the JSON contains, whether it is a snapshot or live data, or if there are any performance implications. Minimal behavioral context beyond the return type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, with no filler or redundant information. It clearly communicates the action and return format in an efficient manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format details are likely structured. However, the meaning of 'scene info' remains ambiguous, and the description does not clarify the scope of data returned. For a zero-param tool, this is adequate but incomplete for an agent deciding between this and similar scene-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema trivially covers 100% of the (empty) parameter space. Per the baseline for 0-param tools, the description does not need to add parameter semantics, and any addition would be redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it 'Ask(s) Houdini for scene info' and returns JSON, giving a verb and resource. However, 'scene info' is vague and does not distinguish it from siblings like get_scene_summary or get_network_overview, which likely cover similar ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description implies it is for getting general scene information but does not mention when it should be preferred over specific scene-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_selectionB
Get the currently selected nodes in Houdini.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'Get' does convey a read-only, non-mutating operation. However it says nothing about session/connection requirements or whether the selection is network-scoped, so the disclosure is minimal rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is appropriately sized for a zero-parameter getter, though it is too terse to earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and there are no parameters to document. The definition is close to complete for a simple getter; only the selection's scope/context is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The empty schema means there is no parameter semantics for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (the currently selected nodes) with a clear scope qualifier ('currently selected'). It is distinguishable from the apposite sibling set_selection, though the description never names or contrasts that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the complementary set_selection tool, and no note about whether this reflects a live scene state or a cached one. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_attributeC
Get a specific USD attribute value.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| attr_name | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. 'Get' implies a read-only operation, but the description does not state error behavior for missing paths or attributes, permission requirements, or whether any side effects exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is appropriately concise for a short statement, though arguably too terse given the three required parameters and lack of supporting context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with no annotations and 0% input schema description coverage, the description is incomplete: it omits all parameter semantics and any usage context needed to call the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three required parameters: path, prim_path, and attr_name. The description adds no explanation of any parameter's meaning, format, or expected value, which is a severe gap for correctly invoking the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a specific USD attribute value.' It is clear enough to distinguish from the sibling set_usd_attribute, though it does not explicitly name alternatives or scope like prim path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. The agent can infer it is for reading rather than writing, but nothing routes it between this tool and list_usd_prims, get_usd_composition, or inspect_usd_layer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_compositionB
Get composition arcs (references, payloads, inherits, specializes) for a prim.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the category of returned data (composition arc types) and 'Get' implies a read, but it says nothing about error behavior for a missing prim, permissions, or cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb, resource, and returned arc types are all packed in without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists (so return values need not be restated), the tool has two undocumented parameters, no annotations, and no usage guidance. For a 2-required-param USD tool, the description is too thin to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and neither of the two parameters (path, prim_path) is explained. The description's phrase 'for a prim' loosely implies prim_path, but the role of 'path' versus 'prim_path' is left entirely to inference, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('composition arcs') and even enumerates the arc kinds (references, payloads, inherits, specializes) returned for a prim. It is clear what the tool does, though it never distinguishes itself from nearby siblings like lop_prim_get or inspect_usd_layer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative mentioned. The description implies a read on a prim's composition but leaves the agent to guess whether it should call this versus lop_prim_get, list_usd_prims, or inspect_usd_layer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_prim_statsC
Get stats about a USD prim: child count, attr count, active, payload.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. 'Get' implies a read, and the listed fields hint at the output, but nothing is said about permissions, failure behavior when the prim path is invalid, or whether the prim must be loaded/active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key content (verb, resource, returned fields) comes first. It is efficient, though the terseness comes partly at the cost of the missing parameter and usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but for a two-parameter tool with 0% schema coverage, ambiguous parameter names, and no annotations, the description leaves too much for the agent to guess about correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both required parameters are undocumented. Worse, the two names ('path' and 'prim_path') are near-synonymous, so the description needed to disambiguate which is the stage/file path and which is the prim path — and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Get stats about a USD prim') and enumerates the returned fields (child count, attr count, active, payload), so the agent knows exactly what it yields. It does not, however, distinguish itself from closely related siblings such as get_usd_composition, get_usd_attribute, or lop_prim_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives despite many overlapping siblings (get_usd_composition, get_usd_variants, inspect_usd_layer, get_usd_attribute). The agent must infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_variantsC
Get variant sets and selections for a USD prim.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' clearly signals a non-mutating read operation, and the output schema covers return values, but there is no mention of permission needs, whether it requires a live stage, or any other operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is appropriately sized, though the brevity comes at the cost of the missing detail noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema the return values are covered, but the absence of annotations and the two undocumented path parameters mean the definition is not complete enough for reliable invocation. Nothing explains how 'path' and 'prim_path' differ or when the tool applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters ('path' and 'prim_path') have 0% schema description coverage, and the description adds no clarification. The two path-like parameters are ambiguous and their distinction is never explained, leaving a real gap for the agent to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('variant sets and selections for a USD prim'), which is clearly distinct from attribute/composition siblings. However, it does not explicitly name or distinguish itself from related tools like get_usd_composition or get_usd_attribute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_usd_composition or get_usd_attribute. The agent is left to infer usage entirely from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewport_infoC
Viewport camera, shading, Hydra delegate. viewer= pane name (optional).
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: it does not confirm the read-only nature explicitly, nor mention side effects, permissions, or scope of the returned state. The 'get_' prefix is the only behavioral cue.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is compact and front-loads the content domain first, then the parameter note. Nothing is wasteful, though the telegraphic two-fragment style is terse enough to be slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for an annotion-free read tool the description still omits what happens when 'viewer' is unset (does it default to the active pane?) and gives no indication of the state being reported. Coverage is too thin for the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 partially does by defining 'viewer' as the pane name and marking it optional. That is meaningful beyond the bare schema, but it adds no format, default behavior, or examples for resolving a pane name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Viewport camera, shading, Hydra delegate' signals the resource domain and enumerates the aspects covered, which helps distinguish it from the set_viewport_* writers. However, it is a noun phrase with no verb, so it never plainly states that it retrieves/reports viewport info; the agent infers the action from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. Siblings such as set_viewport_camera, set_viewport_display and set_viewport_renderer form an obvious read/write pair, but the description never establishes this tool as the read-only counterpart, leaving routing entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_fbx_animationC
kinefx::fbxanimimport — Mixamo clip. Attach to a character SOP geo.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | fbx_anim | |
| file_path | Yes | ||
| parent_path | No | /obj/mcp_character |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only states the output attachment target. It does not disclose whether the operation creates nodes, requires an existing parent, overwrites data, or what errors to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short but fragmentary, using namespace notation and two clipped phrases rather than front-loaded prose. Under-specification rather than conciseness is the issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three undocumented parameters, no annotations, and an output schema, the description is too thin. It leaves both the parameter roles and the behavioral side effects largely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters, but it never mentions file_path, name, or parent_path. The vague mention of an attach target is insufficient to clarify even parent_path semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action (import an FBX animation, Mixamo clip) and resource (kinefx::fbxanimimport), and distinguishes it from the sibling import_fbx_character by focusing on animation rather than character import. The cryptic namespace notation and fragmentary phrasing keep it from being a fully clear 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one usage prerequisite — attach to a character SOP geo — but provides no guidance on when to choose this tool over import_fbx_character or other animation-related siblings. There are no explicit exclusions or alternative-routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_fbx_characterC
kinefx::fbxcharacterimport under mcp_* geo. Mixamo/character rest pose.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | fbx_character | |
| file_path | Yes | ||
| parent_path | No | /obj/mcp_character |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it discloses almost nothing behavioral: no mention of side effects (what nodes it creates), error modes on bad paths, or how the rest-pose handling affects the rig. The only hint ('under mcp_* geo') is about placement, not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short, which is good, but the telegraphic fragment style front-loads an internal node identifier rather than the user-facing action. Brevity here trades against comprehension instead of earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but the description still leaves key gaps: undocumented parameters, no annotation coverage, and no statement of what gets created or where. For an import tool with a required file path, this is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have 0% schema description coverage, so the description must compensate and largely doesn't. It loosely implies a target network (relevant to parent_path) and an FBX source (relevant to file_path), but the name parameter and default values are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name gives a clear verb+resource, and the description adds the underlying Houdini node type (kinefx::fbxcharacterimport) and network scope (mcp_* geo). However, it never plainly states that it imports a skeletal/character FBX into the scene, and the phrase 'Mixamo/character rest pose' is cryptic rather than explanatory. An agent can roughly infer intent but not confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no routing among obvious siblings such as import_fbx_animation, attach_kinefx_deform, or map_kinefx_joints. The agent is left to guess whether this is the entry point for rigged character import versus animation import.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_usd_layerC
Inspect a specific USD layer by index in the stack.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layer_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing. 'Inspect' implies a read, but the description never confirms read-only behavior, permission needs, or how the layer_index default resolves against the stack. The output schema exists, so return format needn't be covered, but the operational context is still thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and scope front-loaded and no wasted words. It is efficient, though the brevity contributes to the under-specification rather than being a flaw of structure itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema is present, so return values need not be explained, but with 0% parameter coverage and no annotations, the description should do far more. It omits what 'path' means, how layer_index behaves, and when this tool is the right choice, leaving an agent under-equipped for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema has no field descriptions at all. The description only touches on 'by index' (layer_index) and says nothing about what 'path' represents or how it relates to the index, nor what the default 0 implies. The description does not compensate for the total documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (inspect) and resource (USD layer) and notes the index-in-stack scope, which is more than a tautology. However, it gives no differentiation from the many related USD tools in the sibling list (e.g. lop_layer_info, get_usd_composition), so an agent cannot easily tell which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as lop_layer_info or the other USD inspection tools. No prerequisites, no exclusions, and no named sibling are provided; the agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout_childrenD
Auto-layout child nodes in the network editor.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | No | /obj |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't state whether the operation is read-only or mutates the scene, what permissions are needed, whether it's reversible, or what the output looks like (despite an output schema existing). The description adds no behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it is too terse for a tool with an output schema and an undocumented parameter. It doesn't waste words, but it also doesn't earn its place by adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and a complex sibling set (Houdini network editing), the description is far too sparse. It should explain the effect on the scene, the role of node_path, and expected outcome. The presence of an output schema doesn't excuse the lack of basic operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter 'node_path'. The description does not mention this parameter or clarify its default value '/obj', its format, or whether it represents a node path in Houdini. The description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('layout') and resource ('child nodes'), but it's essentially a restatement of the tool name. It does not distinguish from siblings like frame_all, frame_bbox, or frame_selection, which also arrange/view nodes. No detail on what 'auto-layout' means (grid, force-directed, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It doesn't say it operates on the selected node's children, nor does it reference siblings like list_children or frame_all. Use case is only implied by 'network editor'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_childrenC
List all children of a node, optionally recursive.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| recursive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it only implies a read-only listing. It does not state ordering, depth behavior, permissions, or what happens when the node has no children; the recursion option is mentioned but its cost or limits are not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words; the verb and resource come first. It is efficient, though its brevity reflects under-specification rather than disciplined pruning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is structurally simple (2 params, no nesting). Still, with zero schema coverage and no annotations, the description leaves the semantics of 'path' and recursion depth entirely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters are undocumented in structured data. The description only gestures at 'recursive' via 'optionally recursive' and says nothing about the required 'path' parameter (format, relative vs absolute, node addressing).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List all children of a node'), so the core operation is unambiguous. However, it does not distinguish itself from adjacent listing tools such as find_nodes or layout_children, and 'node' is left undefined in a toolkit with many node-like resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives in a large sibling set that includes find_nodes and list_node_types. The 'optionally recursive' clause hints at a usage mode but does not say when recursion is appropriate or costly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_file_parmsC
File/path parms on a node (alembic, usd, texture, fbx, vdb). No new importer.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It never states that the operation is read-only, whether it requires a cooked/valid node, or what it returns, and 'No new importer' is ambiguous about what side effects (if any) occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, which is appropriate for a simple list tool. But the trailing 'No new importer' is cryptic filler that neither guides usage nor explains behavior, so not every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool has only one parameter. Still, with zero annotations and zero schema descriptions, the definition leaves the agent without confirmation of read-only behavior or node prerequisites for a Houdini-style parameter query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter node_path is undocumented in the schema. The description's 'on a node' loosely implies node_path identifies the target node, but adds no syntax, format, or path-type detail to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'list' and resource 'file/path parms on a node' are identifiable, and the parenthetical examples (alembic, usd, texture, fbx, vdb) clarify the kind of parameters. However, the phrasing is terse and abbreviations like 'parms' plus the cryptic trailing clause 'No new importer' muddy the purpose, and it does not clearly distinguish itself from siblings like get_parameter or set_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'No new importer' hints at a scope boundary but is too opaque to function as when-to-use guidance. There is no explicit statement of when to use this versus get_parameter, set_file, or get_parameter_schema, leaving the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hydra_renderersC
List Hydra delegates on the LOP Scene Viewer and the current one.
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reveals only that a 'current' delegate is included, saying nothing about whether the operation is read-only, what requires the viewer to be open, or how multiple delegates are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with no filler, front-loading the verb and resource. Slightly terse given the unexplained viewer parameter, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return format need not be described. However, the undocumented viewer parameter and the absence of any behavioral or usage context leave gaps for correctly invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'viewer' parameter has 0% schema description coverage and is not mentioned in the description at all, so the agent cannot tell what value it expects (name, path, index?) or what omitting it defaults to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'List' plus resource 'Hydra delegates' scoped to the LOP Scene Viewer, and notes it also returns the current delegate. Implicitly contrasted with the sibling set_hydra_renderer, but that alternative is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus set_hydra_renderer, restart_renderer, or set_viewport_renderer. The agent is left to infer that this is the read counterpart to the setters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jointsC
KineFX skeleton joints (point name + P) on a SOP. Mixamo/character inspect.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| max_joints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the return content (joint point name and P position), which is genuinely useful, but says nothing about read-only/non-destructive nature, error behavior, or limits. A list tool's safety profile is inferable but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse fragments with no filler, and the core resource is front-loaded. The telegraphic style is efficient but borders on under-specification rather than clean structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be restated, but with zero annotation coverage and 0% parameter documentation, the description is too thin for a two-parameter tool. An agent gets no guidance on node_path format or the meaning/effect of max_joints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across two parameters, so the description must compensate and largely does not. 'On a SOP' weakly implies node_path refers to a SOP node, but max_joints (default 256) is never mentioned, leaving half the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (KineFX skeleton joints) and its content (point name + P) on a SOP node, which distinguishes it from generic sibling tools like get_parameter or list_children. The verb 'list' is only implied by the tool name rather than the description text, so it falls just short of a clean 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Mixamo/character inspect' hints at a context (inspecting Mixamo/character rigs) but gives no explicit when-to-use, when-not-to-use, or alternatives. Relevant siblings such as map_kinefx_joints and attach_kinefx_deform are never referenced, so routing is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lightsC
List all light prims in a USD stage.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about traversal scope (recursive vs direct children), what happens on an invalid path, or permissions. It is read-only in effect but that is only implied by the verb 'List', not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero wasted words. It is efficiently structured, though so minimal that it borders on under-specification rather than optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but the description still omits the meaning of the sole parameter and the scope of the listing, leaving meaningful gaps for a tool with many overlapping siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'path' has 0% schema description coverage, and the description does not explain whether it is a stage path, prim path, or file path. With one undocumented parameter the description should compensate, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and a narrow resource (light prims in a USD stage), which is more precise than the generic sibling list_usd_prims. However it never names an alternative or clarifies scope relative to list_usd_prims / lop_prim_search, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the several overlapping prim-listing siblings (list_usd_prims, lop_prim_search, lop_prim_get). The agent can only infer usage from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_typesB
List node types. category e.g. 'Sop'/'Lop'/'Object'; pattern is a glob matched against the type name or label, e.g. 'intersect'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| pattern | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing beyond the parameters: no read-only confirmation, no mention of the default limit of 200 or any pagination/truncation behavior, and no ordering guarantees. An output schema exists (so return shape is covered), but the operational traits of the call remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the core action and then attach parameter meaning with illustrative examples. There is no filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the parameter semantics for pattern/category are covered. However, the limit parameter's effect and any usage routing remain unaddressed, leaving the definition adequate but with clear gaps for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does for two of three parameters with concrete, non-obvious semantics: category values ('Sop'/'Lop'/'Object') and pattern as a glob matched against type name or label. Only 'limit' is left undocumented, so it falls just short of full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('List node types'), which is unambiguous and distinguishable from mutating siblings like create_node or modify_node. It does not, however, explicitly contrast itself with related discovery tools such as find_nodes or list_usd_prims, so the differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the parameter examples ('Sop'/'Lop'/'Object', '*intersect*') hint at the discovery/filtering scenario but there is no explicit when-to-use or when-not-to-use guidance against alternatives like find_nodes. An agent can infer the intent but is not routed deliberately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_panesA
List all pane tabs in the Houdini desktop.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' strongly implies a safe read-only enumeration, but the description says nothing about the Houdini session requirement, whether it works headless, or what the returned pane entries contain. The presence of an output schema offsets some of the return-value gap, keeping this at a minimum-viable 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word earns its place for a trivial enumeration tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and the zero-parameter signature is fully covered. Only the session/prerequisite context is absent, which is a minor gap for a simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case under the rubric. The description correctly implies no filtering or scoping arguments exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List all pane tabs in the Houdini desktop'), so an agent immediately knows it enumerates UI panes rather than scene nodes. It is not confused with siblings like list_children or list_lights, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, nor any preconditions. For a zero-argument listing tool the usage is fairly obvious, but the description offers nothing beyond the bare purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usd_primsC
List USD prims up to a given depth.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| max_depth | No | ||
| root_prim | No | / |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, whether it has side effects, or any performance or permission characteristics; only the bare action is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. However, its extreme terseness leaves essential parameter and usage context unstated, which is a completeness issue rather than a conciseness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but the description still omits parameter meaning, usage guidance, and any behavioral attributes. With no annotations and 0% schema description coverage, it is insufficient for a three-parameter USD listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the three undocumented parameters. It hints at the depth parameter ('up to a given depth') but gives no meaning for the required 'path' parameter or the 'root_prim' parameter, nor does it explain defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource (list USD prims) plus a scope qualifier (up to a given depth). It is understandable without opening the schema, but it does not distinguish the tool from sibling USD prim-listing tools such as lop_prim_search or get_usd_prim_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when this tool should be used instead of alternatives, even though many sibling tools operate on USD prims. There are no exclusions, prerequisites, or routing hints for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_sceneC
Load a .hip file into Houdini.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does not say whether loading replaces the current scene (and destroys unsaved work), what happens on a missing/invalid path, or whether it blocks. For a scene-level mutation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler. It is efficient, though the brevity comes at the cost of substance rather than being a virtue of concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but with no annotations, no parameter documentation, and no mention of side effects on the current scene, the definition is not complete enough for an agent to call this destructive operation confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single file_path parameter has 0% schema description coverage and no explanation in the description. The phrase '.hip file' only vaguely implies the expected path/extension, leaving format (absolute vs relative) and default behavior unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Load) and resource (.hip file) with the host application named, so the agent knows this opens a Houdini scene. It does not distinguish itself from siblings like lop_import, save_scene, or execute_houdini_code, but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to load a .hip versus importing via lop_import or running code, and no prerequisites noted. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookdev_cameraC
Place a LOP Camera looking at a prim bbox. Look through the USD prim string.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | mcp_cam | |
| look_at | No | /world/hero | |
| lop_path | No | ||
| input_path | No | ||
| parent_path | No | /stage | |
| distance_scale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies scene mutation (placing a camera) but says nothing about side effects, permissions, whether an existing camera is replaced, or how the bbox/aiming is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, so it is not bloated. The second sentence, however, is unclear enough that it reads as noise rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a 6-parameter mutation tool with zero annotation and zero schema-description coverage, the two-line description leaves the agent without enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters (name, look_at, lop_path, input_path, parent_path, distance_scale), yet the description names none of them. 'looking at a prim bbox' loosely hints at look_at and the USD prim reference at input_path, but defaults, formats, and path semantics are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a recognizable verb+resource ('Place a LOP Camera looking at a prim bbox'), so an agent can tell it creates a camera aimed at a prim. However, the second sentence ('Look through the USD prim string') is garbled and does not clarify the action or differentiate it from siblings like lookdev_dome or set_viewport_camera.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as frame_usd_prim, set_viewport_camera, or the other lookdev_* tools. The agent must infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookdev_display_colorB
Set primvars:displayColor on a USD mesh (not a full material).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| color | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries full burden. It does disclose the exact attribute written (primvars:displayColor) and that it is not a material assignment, which is genuinely useful behavioral scope. However it omits permission needs, reversibility, and whether the prim must already exist — a meaningful gap for a mutation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key constraint is parenthesized right where it matters. Efficient, if extremely terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values are covered, but with no annotations, 0% parameter documentation, and an ambiguous path/prim_path pair, an agent lacks what it needs to call this reliably. The description should at minimum clarify the two path parameters and the color format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across three parameters and the description adds nothing to disambiguate them. Critically, 'path' and 'prim_path' are both undocumented strings with no stated distinction, and the 'color' array's expected length/format (e.g., RGB floats) is never given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set), a precise target attribute (primvars:displayColor), and a resource (USD mesh). The parenthetical '(not a full material)' scopes it away from material tools like lookdev_preview_surface, giving real differentiation, though it doesn't name a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(not a full material)' clause implies when this lightweight override is appropriate versus a real material, but there is no explicit when-to-use, prerequisites, or named alternative. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookdev_domeC
Create/edit a Dome Light LOP under mcp_* isolation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | mcp_dome | |
| color | No | ||
| texture | No | ||
| exposure | No | ||
| primpath | No | ||
| input_path | No | ||
| parent_path | No | /stage |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure and fails to meet it. It does not say what 'edit' does to existing values, whether creation is idempotent, what 'mcp_* isolation' protects against, or what permissions are needed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with zero filler, which is good structure, but at this length it omits necessary information rather than being appropriately sized for a 7-parameter mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 undocumented parameters, zero annotations, and a create/edit mutation surface, the definition is far too thin. The output schema exists, so return values need not be explained, but nearly everything else an agent needs to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, and the description names none of them (color, texture, exposure, primpath, parent_path, etc.). With no annotations and no schema text, an agent has no guidance on parameter meaning or interaction between them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Create/edit a Dome Light LOP') that clearly separates it from sibling lookdev tools like lookdev_camera and lookdev_preview_surface. It stops short of full sibling differentiation, and 'mcp_* isolation' is jargon that an agent cannot interpret without external knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no conditions for choosing it over create_lop_node or list_lights. The only contextual hint is the 'mcp_* isolation' naming convention, which is unexplained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookdev_preview_surfaceD
USD Preview Surface + assignmaterial under mcp_*.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | mcp_preview | |
| color | No | ||
| metallic | No | ||
| roughness | No | ||
| input_path | No | ||
| parent_path | No | /stage | |
| prim_pattern | No | /world/hero |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state what happens to existing materials, whether the operation is destructive, what permissions or path constraints apply, or how the 'mcp_*' prefix behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single cryptic fragment. Although brief, it is under-specified rather than concise: the sentence does not earn its place because it fails to convey a clear operation or scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 undocumented parameters, no annotations, and no usage guidance, the definition is completely inadequate for an agent to invoke the tool correctly. The presence of an output schema does not compensate for the missing input and behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 7 parameters and schema description coverage is 0%. The description adds no meaning for any parameter (name, color, metallic, roughness, input_path, parent_path, prim_pattern), so an agent receives no guidance beyond bare titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'USD Preview Surface + assignmaterial under mcp_*' names a resource type and an action, but no clear verb or scope. It does not distinguish this tool from siblings like lookdev_dome or lookdev_camera, leaving the agent to guess whether it creates, modifies, or applies materials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. There is no mention of alternatives, preconditions, or contexts that select this tool over the many other lookdev and USD-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_importC
Import a USD file via reference or sublayer.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| path | Yes | ||
| method | No | reference | |
| prim_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a stage mutation but does not state whether a stage must exist, whether the import is reversible, what path/prim_path refer to, or what the side effects are. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though arguably under-specified rather than genuinely well-scoped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists so return values need not be explained, the combination of 4 undocumented parameters, zero annotations, and an unclear mutation context leaves the definition inadequate. An agent cannot confidently invoke this with the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 4 parameters, and the description only loosely gestures at 'file' and the 'method' (reference/sublayer). The required 'path' and optional 'prim_path' are left entirely undefined in both schema and description, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (import) and resource (USD file) plus the mechanism (reference or sublayer), so the core action is clear. It does not differentiate from sibling USD/LOP importers like import_fbx_character, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. an existing stage or LOP node context), and no routing to alternatives such as import_fbx_character or lop_layer_info. The choice between 'reference' and 'sublayer' methods is never explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_layer_infoC
Get USD layer stack info from a LOP node.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says nothing beyond 'Get ... info'. It does not state that the operation is read-only, whether it requires an open USD stage or an existing LOP node, or what happens if the path is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler or redundancy. It is efficient, though its brevity contributes to the missing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with no annotations and an unspecified 'path' parameter, the definition leaves the agent guessing about both the input's meaning and how this tool differs from the other USD-inspection siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'path' parameter, and the description does not compensate: it is ambiguous whether 'path' is a Houdini node path (e.g. /stage/lop) or a USD primitive path. This ambiguity matters for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('USD layer stack info') scoped to a LOP node, so the agent knows it is a read of layer-stack data rather than stage or prim data. It does not, however, distinguish itself from close siblings such as lop_stage_info, get_usd_composition, or inspect_usd_layer, which plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no named alternative. Given several siblings that surface USD information (lop_stage_info, get_usd_composition, inspect_usd_layer, list_usd_prims), the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_prim_getC
Get details of a specific USD prim.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| prim_path | Yes | ||
| include_attrs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and does not meet it. It implies a read via 'Get' but says nothing about behavior on an invalid prim path, whether a stage must be active, or what 'details' encompasses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding and the purpose front-loaded. It is efficient, though the brevity is under-specification rather than deliberate concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Still, with three undocumented parameters, no usage guidance, and no annotations, the definition leaves critical invocation details unresolved for what appears to be a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Three parameters at 0% schema description coverage, and the description explains none of them. The distinction between the required 'path' and 'prim_path' is particularly unclear and undocumented anywhere, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('details of a specific USD prim'), so the basic purpose is legible. However, it offers no differentiation from closely related siblings such as get_usd_attribute, get_usd_prim_stats, or lop_prim_search, and 'details' is vague about what is actually returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_usd_attribute, get_usd_prim_stats, or list_usd_prims. No preconditions (e.g. a loaded stage) or exclusions are stated, leaving the agent to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_prim_searchC
Search for USD prims matching a pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| pattern | Yes | ||
| type_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only lookup, whether it searches recursively under the given path, or anything about scope/limits of the search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no waste, but the brevity tips into under-specification for a tool with 3 undocumented parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but with 0% schema coverage, no annotations, and no usage guidance, the definition leaves an agent unable to call this tool confidently or pick it over its many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters, so the description must compensate and does not. It mentions a 'pattern' but never explains its syntax (glob vs. regex vs. prim path expression), nor does it clarify what 'path' roots the search or what 'type_name' filters on.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Search) and resource (USD prims) and adds the matching condition. It is clear on its own, but gives no differentiation from siblings like list_usd_prims, lop_prim_get, or find_nodes, leaving the agent to guess which search/list tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling prim/node search tools. The agent receives no signal about whether this is for stage prims vs. network nodes or how it relates to lop_prim_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_stage_infoB
Get USD stage info from a LOP node: prims, layers, time codes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. 'Get' implies a read-only operation and it names the categories of data returned, but it omits output format, permissions, performance implications, and whether reading triggers stage evaluation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler. The purpose and the three main data categories are front-loaded and efficiently conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has an output schema but the description never references it, and the required path parameter is undocumented. It gives a rough sense of scope via prims, layers, and time codes but leaves sibling overlap and invocation details unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'path' parameter is never described in the description or schema. The phrase 'from a LOP node' hints that path identifies a LOP node, but expected format or example is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifies a clear verb and resource: get USD stage info from a LOP node, and lists the returned components (prims, layers, time codes). However, it does not differentiate from overlapping siblings such as lop_layer_info or list_usd_prims, leaving the agent to infer that this is a broad stage-level snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus lop_layer_info, list_usd_prims, get_usd_composition, or inspect_usd_layer. The description implies a stage-scope overview, but provides no explicit when/when-not or alternative selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_kinefx_jointsB
Map Mixamo-like clip joint names onto a rest skeleton. Unmapped names error.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_path | Yes | ||
| rest_path | Yes | ||
| max_joints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose one key trait: unmapped names cause an error. However, it omits whether the operation mutates the skeleton or clip, what permissions/setup it needs, and how large/messy inputs are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and no filler. The failure-mode note is terse but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with 0% schema coverage and no annotations, the description is too thin. It omits parameter meaning (especially max_joints) and usage context; the existing output schema excuses it from explaining return values, but the input-side gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It loosely implies that clip_path is the clip's joint names and rest_path is the rest skeleton, but it never explains max_joints (default 4096) or the path formats, leaving a third of the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (map) and resource (clip joint names onto a rest skeleton), scoped to KineFX/Mixamo workflows, so an agent can distinguish it from generic node tools. It does not explicitly distinguish itself from close siblings like attach_kinefx_deform or list_joints, but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. It never says when this mapping step is required (e.g., before deform attachment) or how it relates to sibling KineFX tools, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_nodeC
Modify an existing node — rename, reposition, or change parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| path | Yes | ||
| position | No | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It conveys only that this is a mutation on an existing node, saying nothing about required permissions, whether unspecified fields are preserved (partial vs full update), whether rename affects downstream references, or the coordinate space for position. An output schema exists, so return values need not be explained, but the mutation semantics are a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the mutation categories are listed compactly. It is well-sized, though the terseness is partly what leaves the behavioral and parameter gaps unfilled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotations, nested-object parameters, and heavy sibling overlap, the description is too thin. It omits update semantics, parameter formats, and disambiguation from set_parameter/set_node_flags, though the presence of an output schema reduces the need to document return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 4 parameters, so the description must compensate. It loosely maps to three parameters (name, position, parameters) but adds essentially nothing beyond the self-evident parameter names, gives no format for the position array or the parameters object, and never mentions the required 'path' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (modify) and resource (node) plus the three mutation categories: rename, reposition, change parameters. This is clear and actionable. However, it does not distinguish itself from siblings like set_parameter, set_parameters, or set_node_flags, which also mutate node state, so an agent cannot tell which tool to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. Given that siblings set_parameter/set_parameters exist specifically for changing parameter values and the description lists 'change parameters' as a capability here, the overlap is left unresolved and the agent must guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_renderA
Check if a Karma (husk) or Mantra (mantra-bin) render is still running. Optionally pass output_path to also report file existence and size. No Houdini connection needed — runs on the bridge side.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose a non-obvious trait: it runs bridge-side and needs no Houdini connection, plus the side effect of reporting file existence/size. It stops short of describing failure modes or what a paused/killed render looks like, but the key operational context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: purpose first, optional parameter behavior second, and execution context last. No repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. For a single-optional-param monitoring tool, the description covers purpose, the param's effect, and runtime context, leaving only minor gaps around status edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 0% schema coverage, and the description compensates by explaining that output_path is optional and what it triggers ('also report file existence and size'). That maps the parameter to a concrete effect, exceeding the bare name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Check') plus resource ('Karma (husk) or Mantra (mantra-bin) render') and scope ('still running'). It names both render engines it covers, and no sibling tool monitors render status, so an agent can identify its unique purpose immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrasing 'Check if ... is still running,' and there is no sibling that overlaps, so no alternative needs to be named. However, the description offers no explicit when-to-use trigger or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Health check to verify Houdini is connected and responsive. Returns server status info or an error if Houdini is unreachable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully states the return behavior (status info or an error when unreachable), which is more than a bare ping would give, but it does not explicitly confirm the operation is read-only with no side effects or describe any timeout/rate considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core purpose front-loaded and the return behavior following. Appropriately sized for a trivial operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a no-parameter health check the description covers what the agent needs, though it could note why this differs from the connectivity sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Houdini connection) and verb (health check/verify responsive), so its purpose is unambiguous. However, it does not distinguish itself from the sibling get_connection_status, which appears to serve an overlapping connectivity-check role, leaving the agent to guess which to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_connection_status. The description implies usage (check whether Houdini is reachable) but offers no explicit trigger conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reload_pluginA
Reload houdinimcp handler modules in the live houdini-bin.
After `scripts/install.py --houdini-version 22.0`, call this so new
command keys exist without restarting H22. Does not restart the TCP
listener. If this 404s, the process still has the old table — run
execute_code: `from houdinimcp.handlers.plugin import bootstrap_reload; bootstrap_reload()`
once, then this tool works.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it scopes the effect ('Does not restart the TCP listener'), states a concrete failure signature (404 = stale command table), and gives a recovery procedure. It stops short of stating idempotency or whether an in-flight session/scene state is disturbed by the reload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, then prerequisite, then scope limit, then failure/recovery. Every sentence carries distinct information and there is no filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose, parameter count is zero, and the description covers the remaining unknowns an agent needs: when to call it, what it does not do, and how to recover from the documented failure mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. The description correctly adds no parameter discussion and instead spends its words on preconditions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reload) and a precise resource (houdinimcp handler modules in the live houdini-bin), which no sibling tool touches. An agent can immediately distinguish this from restart_renderer, ping, or execute_code-based workarounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('After scripts/install.py --houdini-version 22.0, call this so new command keys exist without restarting H22') and names the alternative path (execute_code with bootstrap_reload) plus the exact condition under which that alternative is required (a 404).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_rendererB
Rebuild the active LOP Hydra delegate. Can stall the UI; prefer not to.
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose a meaningful trait: it can stall the UI. That is real value beyond structured fields. It still omits what 'rebuild' resets, whether it is reversible, and any permission/state implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed immediately by the caveat. Every word earns its place; nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers the core action plus a risk warning. But the lone parameter is left unexplained and there are no annotations to cover safety or state-change semantics, leaving a real gap for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (viewer) with 0% schema description coverage, and the description never mentions it or explains what specifying a viewer does versus defaulting to the 'active' delegate. The 0-param baseline of 4 does not apply because a parameter exists and is undocumented by both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rebuild) and resource (active LOP Hydra delegate), which distinguishes it from siblings like set_hydra_renderer and set_renderer_paused. It doesn't explicitly name those alternatives, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'prefer not to' gives a soft steer that this is a last-resort/heavy operation, which is useful context. However, it never states when you actually should use it (e.g., delegate is stuck or invalid) or what to try instead, so the agent is left inferring the trigger condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sceneB
Save the current Houdini scene, optionally to a new file path.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It does disclose the default path behavior (saves the current scene if no path is supplied), but says nothing about overwrite semantics, permission/file-write requirements, or whether an existing file is replaced without prompting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word (verb, resource, optional-parameter role) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and for a one-optional-parameter tool the description covers the essential call shape. Only the overwrite/error behavior is arguably missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single file_path parameter has no field description. The description partially compensates by explaining that the parameter is an optional target path for saving to a new file, but adds no format or overwrite details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (save) and resource (the current Houdini scene), plus an optional variant (new file path). It is clearly distinct from the inverse sibling load_scene, though it does not explicitly name it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus load_scene or any alternative, nor prerequisites such as whether an unsaved scene must exist or whether a modified scene is required. The 'optionally' phrasing implies default behavior but no usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsB
Search Houdini documentation offline using BM25. Returns ranked results with path, title, preview, and relevance score. Does NOT require a Houdini connection.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it discloses the ranking method (BM25), the returned fields (path, title, preview, score), and the important connection/auth constraint. It omits index freshness, result limits, and failure behavior for empty matches, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose, then return shape, then the connection constraint. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, and the description nevertheless summarizes them. Purpose, method, and connection requirement are all present; the only real gap is parameter semantics for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely does not. It never explains that 'query' is the search terms or that 'top_k' caps the number of returned results (default 5); only BM25 ranking is hinted at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Houdini documentation) plus the mechanism (BM25) and offline/connection-free scope. Clear on its own, but it never distinguishes itself from the get_doc sibling that also likely serves documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Does NOT require a Houdini connection' implies it can run when a live session is unavailable, which is useful routing context. However, there is no explicit when-to-use vs get_doc guidance or any exclusion criteria, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_networkC
Set the current network path in the network editor.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing beyond the one-line action. It does not say whether this changes global editor state, whether the change is persistent or reversible, whether invalid paths error, or whether any prior state is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler. It is efficient, though the brevity contributes to the specification gaps noted elsewhere rather than being a structural defect in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a state-mutating tool with no annotations and an undocumented required parameter, the description is too thin. It omits path format, error behavior, and scope of effect, leaving real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required 'path' parameter, so the description must compensate and does not: it never states the expected path syntax, whether it is absolute or relative, or what a valid network path looks like. The word 'path' is repeated without adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (set) plus a specific target (current network path in the network editor), which an agent can distinguish from siblings like get_network_overview or set_selection. It does not, however, clarify what a 'network' or 'network path' means in this domain (e.g. a Houdini node path such as /obj/geo1), so some inference remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling tools. The agent is left to guess whether this tool is needed for navigation, node creation, or something else.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fileB
Set a node's file parm. create_node + set_file — not import_alembic/import_volume.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| node_path | Yes | ||
| parm_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It says only that a file parameter is set; it does not state whether existing values are overwritten, what input file formats are valid, whether the node must exist or already be cooked, or what errors occur. For a mutation tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact fragments with the primary action front-loaded and zero filler. The em-dash shorthand and unexplained 'parm' terms make it slightly cryptic, but it is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not owed. However, with no annotations and 0% parameter descriptions, the definition leaves the optional parm_name and mutation behavior undocumented; an agent has to guess how to target the right parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across all three parameters. The description implies node_path and file_path but never explains the optional parm_name or how it selects the target parameter, leaving a required semantic gap that neither the schema nor the text fills.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource pair ('Set a node's file parm'), which is clear to anyone with Houdini domain knowledge, and it explicitly distinguishes itself from import_alembic/import_volume. The term 'parm' is jargon and no output/effect detail is given, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete when-to-use recipe ('create_node + set_file') and names the alternatives NOT to use (import_alembic/import_volume), which is real routing guidance. It stops short of explaining when set_file would be wrong in other cases, but it clearly tells the agent which tools to combine.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frameC
Set the current frame in Houdini's playbar.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it only restates the action. It says nothing about side effects (does this trigger a recook, update the viewport, or clamp out-of-range values), reversibility, or whether it is a safe read-like state change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clean sentence with the resource stated up front and no filler. It is efficient, though arguably under-specified for the amount of behavior it leaves unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is simple. However, with zero annotations and zero parameter coverage, the definition omits basic state-change semantics an agent would want before mutating the current frame.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'frame' parameter has no description, default range, or type nuance explained. The description only loosely ties 'frame' to the playbar, adding almost no semantics beyond the schema's own key name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Set the current frame in Houdini's playbar' tells the agent exactly what is affected (the playbar/timeline frame). The word 'playbar' usefully separates it from the camera-framing siblings (frame_selection, frame_all, frame_bbox), though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives for changing the timeline, and no prerequisites. The agent must infer context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_hydra_displayD
USD purpose vis on the LOP viewer: proxy/guide/render/materials/procedurals.
| Name | Required | Description | Default |
|---|---|---|---|
| guide | No | ||
| proxy | No | ||
| render | No | ||
| viewer | No | ||
| materials | No | ||
| procedurals | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state side effects, permissions, whether flags toggle or set, or what happens to omitted parameters, leaving the mutation profile entirely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The fragment is short but under-specified rather than concise; it omits essential operational detail. It is front-loaded but does not earn its place for a 6-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no annotations, and 0% schema coverage, the description is far too thin for an agent to invoke the tool confidently. The existence of an output schema means return values need not be explained, but input semantics and usage context are still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description merely repeats the purpose names already present in the schema, without defining what each boolean controls or what the 'viewer' string expects. It adds no semantic meaning beyond the property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource area (USD purpose visibility on the LOP viewer) and enumerates the purposes, but the fragment lacks a clear verb and uses the abbreviation 'vis', leaving the exact operation ambiguous. It names a relevant sibling domain but does not fully distinguish itself from tools like set_viewport_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus set_viewport_display, set_hydra_renderer, or other viewport tools. The only context is an implied LOP viewer scope, with no conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_hydra_rendererA
Set LOP viewport renderer: 'xpu', 'cpu', 'vk', 'storm', or exact name.
Does not restart or wait — XPU converges asynchronously. Poll
list_hydra_renderers, then capture_screenshot later.
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No | ||
| renderer | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers key behavioral traits: non-blocking, asynchronous convergence, and the need for polling and delayed screenshot. It does not cover permissions or side effects on other viewport state, but the async behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the core action and valid values, followed by essential behavioral context. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers async behavior and follow-up steps. The missing explanation for the optional 'viewer' parameter is the main gap, but overall it is sufficient for a focused setter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It gives valid renderer values ('xpu', 'cpu', 'vk', 'storm', or exact name), which is useful, but it says nothing about the optional 'viewer' parameter, leaving one of two parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('LOP viewport renderer') and enumerates valid values, making the tool's action clear. It does not explicitly contrast with the sibling set_viewport_renderer, so sibling differentiation is only implied by 'LOP viewport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: does not restart or wait, XPU converges asynchronously, and directs the agent to poll list_hydra_renderers and then capture_screenshot later. No explicit when-not-to-use or alternative naming, but the workflow guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_karma_qualityC
Karma viewport quality. H22 has no pixel-sample HOM; LOP settings are the knob.
Reports viewport sample API as unavailable instead of pretending.
paused goes through setRendererPaused and returns pause_honored.
| Name | Required | Description | Default |
|---|---|---|---|
| paused | No | ||
| viewer | No | ||
| preview | No | ||
| samples | No | ||
| lop_path | No | ||
| parent_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: the viewport sample API is reported unavailable rather than faked, and pause is delegated to setRendererPaused with a 'pause_honored' result. That is genuine non-obvious behavior, but nothing is said about whether the call mutates scene state, requires a LOP context, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the topic, but the three fragments are telegraphic and under-specified rather than tight; the single-sentence openers trade clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be restated, yet 6 parameters at 0% coverage go undocumented and the tool's core action is never articulated. For a 6-param tool with no annotations, this leaves major gaps an agent must fill by trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 6 parameters, and the description documents only the semantics of 'paused'. 'viewer', 'preview', 'samples', 'lop_path', and 'parent_path' are entirely unexplained in both the schema and the description, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opener 'Karma viewport quality' is a topic label, not a verb+resource statement of what the tool does. It never states that it sets/applies quality settings, and the 'H22 has no pixel-sample HOM; LOP settings are the knob' line is internal jargon an agent cannot decode into an action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a partial routing hint ('paused goes through setRendererPaused'), which implicitly tells the agent not to expect pause handling here, but there is no stated when-to-use versus siblings like set_viewport_display, set_hydra_display, or set_renderer_paused.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_log_levelA
Houdini Python-shell noise. quiet (default) hides per-command connect/execute/disconnect. verbose restores it. HOUDINIMCP_LOG=verbose also works. Does not restart the TCP listener.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | quiet |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add non-obvious behavior: it discloses that the change does not restart the TCP listener, which an agent could otherwise assume was required. It also reveals a parallel configuration path via the environment variable, useful operational context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, with the effect of each level stated before the tangential environment-variable and TCP-listener notes. The opening fragment 'Houdini Python-shell noise' is a little clipped but earns its place as scoping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a one-parameter toggle the description covers default, values, side effects, and an alternate control path, leaving little an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema only gives a bare string with default 'quiet', so the description is the sole source of meaning. It defines both valid values — quiet hides connect/execute/disconnect, verbose restores it — which is exactly what the schema omits, though it doesn't explicitly state that these are the only accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the verb (set) and the resource (log level) and specifies exactly what the setting governs: per-command connect/execute/disconnect noise in the Houdini Python shell. It is clear what the tool does, though it never differentiates itself from siblings like get_last_log, leaving the distinction to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent that quiet is the default and verbose restores the noise, and it notes the HOUDINIMCP_LOG=verbose environment-variable alternative. However, it never says when an agent should bother switching levels or when this is unnecessary, so usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_flagsC
Set display, render, and/or bypass flags on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| bypass | No | ||
| render | No | ||
| display | No | ||
| node_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a mutation tool. It implies a boolean flag toggle but does not state whether changes require specific permissions, whether they persist, how null/default values behave (all params default to null), or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is efficient, though its brevity is partly a symptom of under-specification rather than disciplined pruning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be described, but with no annotations and 0% schema description coverage across four parameters, the description should do more. It omits flag semantics, default/null behavior, and any usage context for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema provides no descriptions, so the description must compensate. It does name the three flag parameters (display, render, bypass) and identifies the target ('a node', i.e., node_path), but it adds no meaning about what each flag does or what an unset/null value means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Set') with a specific resource ('flags on a node') and enumerates the three flag categories (display, render, bypass). It is clear what the tool does, though it does not explicitly distinguish itself from nearby mutators like set_parameter or modify_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites, and no mention of alternatives such as set_parameter or modify_node, which could also alter node state. The agent must infer that this is the right tool for toggling visibility/render/bypass flags.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parameterC
Set a single parameter value on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| node_path | Yes | ||
| parm_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no statement about permissions, whether the change triggers a cook, type coercion of the value, error behavior on an invalid node path, or reversibility. Only the word 'single' hints at the mutation scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity is achieved partly by omitting information rather than by tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero annotation coverage, zero schema descriptions, and a mutation of scene state, the definition is too thin: an agent cannot reliably construct a valid call or predict side effects. The existence of an output schema only removes the need to explain return values, which is a small relief.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for three undocumented parameters. It implies node_path and parm_name loosely ('a node', 'a parameter'), but gives no path syntax, no parm naming/index conventions, and no indication of accepted value types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set a single parameter value on a node') and the word 'single' implicitly distinguishes it from the sibling set_parameters. It does not explicitly name that sibling or explain the distinction, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the obvious alternative (set_parameters for multiple values). The agent must infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parametersC
Set multiple parameters at once on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| parameters | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a mutation tool, and it says nothing about permissions, validation of parameter names against the node's schema, partial-application behavior on failure, or undo/reversibility. Only the atomicity hint in 'at once' is offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Efficient, though its brevity is partly under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a mutation tool with a nested free-form parameters object and zero annotation coverage, the description omits too much: how to discover valid parameter names (get_parameter_schema exists as a sibling but is not referenced) and what happens on invalid keys.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two required parameters, and 'parameters' is an unconstrained nested object with additionalProperties. The description does not explain the expected key/value format, how parameter names map to the node's parameter schema, or what node_path accepts, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (set) and resource (parameters on a node) with the distinguishing scope 'multiple ... at once', which separates it from the sibling set_parameter. It stops short of naming that sibling explicitly, so an agent must infer the pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at once' implies this is the bulk alternative to set_parameter, but no when-to-use/when-not guidance, prerequisites, or explicit alternative naming is given. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_renderer_pausedC
Pause or resume the active LOP Hydra delegate.
| Name | Required | Description | Default |
|---|---|---|---|
| paused | No | ||
| viewer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only implies a state mutation. It does not say whether the pause affects all viewers or the realm, whether it requires an active render session, or how pause state interacts with later renders or restarts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which suits a small toggle tool. It is arguably too terse given the unexplained second parameter, but there is no wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a state-mutating renderer tool with zero annotation coverage and 0% parameter documentation, the description omits too much. The agent cannot tell what scope 'active' covers or what the viewer argument does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for two undocumented parameters. It only loosely maps to 'paused'; the 'viewer' parameter is never explained, leaving the agent unable to know whether it targets a specific viewport or the whole delegate. Default values (paused=true) are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb pair ('pause or resume') and a specific resource ('the active LOP Hydra delegate'), so an agent knows the operation. It does not, however, distinguish itself from close siblings such as restart_renderer or set_hydra_renderer, which could plausibly affect the same delegate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives like restart_renderer or set_hydra_renderer. The agent is left to infer usage entirely from the name and one sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_selectionC
Set the node selection to the given list of node paths.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether the operation replaces the existing selection, whether invalid/nonexistent paths raise errors or are ignored, or what side effects (viewport highlight, network context) occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and object front-loaded. No wasted words, though the brevity is close to under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the single required parameter is named. However, with no annotations and no error/side-effect guidance, an agent lacks enough context to know edge-case behavior when calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema only says 'array of strings' with no meaning. The description compensates partially by identifying those strings as node paths, which is the key semantic the schema lacks, but adds no path syntax, delimiter, or format guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (set) and resource (node selection) with the input form named. An agent can distinguish it from get_selection and frame_selection, though the description never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this rather than get_selection, frame_selection, or set_node_flags. No prerequisites, no note about whether it replaces or augments the current selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_usd_attributeC
Set a USD attribute value.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| value | Yes | ||
| attr_name | Yes | ||
| prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Set' implies a mutation, but nothing states whether the write persists to the stage, requires editing permissions, overwrites vs creates the attribute, or if it is undoable. For a mutating tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste, but it is under-specified rather than truly concise. It is front-loaded and readable, yet it omits everything an agent would need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But with 4 fully undocumented required parameters, no annotations, and no sibling differentiation, the description is too thin for a mutation tool in a crowded USD/parameter tool set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 4 required parameters (path, value, attr_name, prim_path), and all are required with no titles beyond the raw property names. The description only vaguely gestures at 'attribute' and 'value', leaving the distinction between path and prim_path and the expected value type entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set a USD attribute value'), which is more than a tautology. However, it gives no differentiation from related siblings like get_usd_attribute, set_parameter, or lop_prim_get, so an agent cannot tell which setting tool applies to a USD prim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as set_parameter or set_parameters. The agent must infer from the name alone when this is the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_cameraC
Look through an OBJ camera or a USD prim (e.g. /world/cam).
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No | ||
| camera_path | Yes | ||
| camera_prim | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose side effects, permission requirements, error conditions, or how the viewport state changes, leaving the agent with only a one-line functional statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Its brevity is appropriate for the surface-level statement it makes, even though it lacks detail elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no schema descriptions, no annotations, and only one sentence, the definition is not complete enough for an agent to confidently invoke the tool. An output schema exists, so return values need not be explained, but parameter meaning and behavioral context remain largely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters, so the description must compensate. It gives a useful hint for camera paths ('OBJ camera or a USD prim') but does not explain the 'viewer' parameter or clarify the distinction between 'camera_path' and 'camera_prim'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (look through) and resource (OBJ camera or USD prim), so an agent can understand the tool's basic purpose. It does not distinguish this tool from sibling viewport/camera tools such as set_viewport_direction or lookdev_camera.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The phrase 'OBJ camera or a USD prim' hints at valid input types but does not say when this tool is preferable to other camera or viewport controls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_directionA
Set viewport direction: front, back, left, right, top, bottom, persp.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does add a genuinely useful behavioral constraint by enumerating the legal direction values, which the schema does not, but it says nothing about which viewport is affected, whether the change is persistent/undoable, or any auth/state requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action first and the value list second; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the sole parameter is fully enumerated. The only real gap is scope – it does not say whether the direction applies to the active pane or all viewports.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema exposes 'direction' as a bare string with no enum. The description compensates by listing all seven valid values (front, back, left, right, top, bottom, persp), which is exactly the semantics an agent needs to avoid an invalid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set) and resource (viewport direction) and enumerates the accepted directions. It is distinguishable from siblings like set_viewport_camera or set_viewport_display, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. An agent is left to infer that this snaps the view to an axis while set_viewport_camera presumably sets an arbitrary camera, and nothing is said about preconditions (e.g., whether a viewport must be active).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_displayC
Set viewport display options (shading, guides, grid, isolate).
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | ||
| guide | No | ||
| viewer | No | ||
| isolate | No | ||
| shading_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about persistence, whether unspecified options are left untouched, permission requirements, or side effects. The parenthetical list of option categories is the only added context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical enumeration is an efficient way to scope the tool. It is appropriately sized, though the terse list leaves the reader wanting detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a five-parameter tool with zero schema coverage and no annotations, the description is far too thin to let an agent invoke it confidently with correct values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the parameters carry only titles, so the description must compensate. It names four of the five options (shading, guides, grid, isolate) but omits 'viewer' entirely and gives no value syntax, accepted strings, or semantics for shading_mode/isolate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Set viewport display options') and enumerates the affected areas (shading, guides, grid, isolate). It is clear on its own, but it never distinguishes itself from nearby siblings like set_viewport_camera, set_viewport_renderer, or set_hydra_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other viewport-setting siblings, nor any stated prerequisites (e.g., an active viewport or scene). The agent must infer usage entirely from the name and parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_rendererC
LOP Hydra delegate (xpu, cpu, vk, storm) or OBJ view type (persp/top).
| Name | Required | Description | Default |
|---|---|---|---|
| viewer | No | ||
| renderer | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it discloses nothing about side effects, permissions, whether the change is persistent or per-session, or what happens on an unsupported renderer. It only enumerates candidate values, which is schema-domain information rather than behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with no padding, so nothing is wasted, but it is under-specified rather than concise. There is no front-loaded statement of what the tool does, only a bare enumeration of values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation-style setter with two parameters, no annotations, and an undocumented 'viewer' parameter, the description is incomplete; it neither covers the missing parameter nor explains the effect of the call. The presence of an output schema excuses it from describing return values, but little else is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It usefully enumerates renderer values (xpu, cpu, vk, storm) and persp/top view types for the required 'renderer' argument, but the 'viewer' parameter is completely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists valid renderer values (xpu, cpu, vk, storm) and view types (persp/top) but never states the action, leaving 'set' to be inferred from the name alone. It gives no differentiation from the adjacent siblings set_hydra_renderer, restart_renderer, or set_hydra_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus set_hydra_renderer, list_hydra_renderers, or set_viewport_display. No prerequisites, no exclusions, no context about which viewport or state it applies to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
82 tool updates
v0.1.0- First observed
attach_kinefx_deform - First observed
batch - First observed
capture_desktop - First observed
capture_screenshot - First observed
connect_nodes - First observed
create_lop_node - First observed
create_node - First observed
delete_node - First observed
disconnect_node_input - First observed
evaluate_expression - First observed
execute_houdini_code - First observed
execute_hscript - First observed
explain_node - First observed
find_error_nodes - First observed
find_nodes - First observed
frame_all - First observed
frame_bbox - First observed
frame_selection - First observed
frame_usd_prim - First observed
get_connection_status - First observed
get_cook_chain - First observed
get_doc - First observed
get_last_log - First observed
get_last_modified_prims - First observed
get_network_overview - First observed
get_node_info - First observed
get_parameter - First observed
get_parameter_schema - First observed
get_scene_info - First observed
get_selection - First observed
get_usd_attribute - First observed
get_usd_composition - First observed
get_usd_prim_stats - First observed
get_usd_variants - First observed
get_viewport_info - First observed
import_fbx_animation - First observed
import_fbx_character - First observed
inspect_usd_layer - First observed
layout_children - First observed
list_children - First observed
list_file_parms - First observed
list_hydra_renderers - First observed
list_joints - First observed
list_lights - First observed
list_node_types - First observed
list_panes - First observed
list_usd_prims - First observed
load_scene - First observed
lookdev_camera - First observed
lookdev_display_color - First observed
lookdev_dome - First observed
lookdev_preview_surface - First observed
lop_import - First observed
lop_layer_info - First observed
lop_prim_get - First observed
lop_prim_search - First observed
lop_stage_info - First observed
map_kinefx_joints - First observed
modify_node - First observed
monitor_render - First observed
ping - First observed
reload_plugin - First observed
restart_renderer - First observed
save_scene - First observed
search_docs - First observed
set_current_network - First observed
set_file - First observed
set_frame - First observed
set_hydra_display - First observed
set_hydra_renderer - First observed
set_karma_quality - First observed
set_log_level - First observed
set_node_flags - First observed
set_parameter - First observed
set_parameters - First observed
set_renderer_paused - First observed
set_selection - First observed
set_usd_attribute - First observed
set_viewport_camera - First observed
set_viewport_direction - First observed
set_viewport_display - First observed
set_viewport_renderer
TDQS
Scored across 82 tools
Many tools have clearly distinct purposes (node CRUD, USD inspection, docs search), but there are overlapping clusters: set_viewport_renderer vs set_hydra_renderer vs set_hydra_display vs set_viewport_display, four frame_* variants, and lop_prim_get vs get_usd_attribute. Descriptions mitigate most confusion, but an agent could easily misselect within these clusters.
Names overwhelmingly follow snake_case verb_noun (get_parameter, create_node, list_children, set_viewport_camera), with domain prefixes like lop_*, lookdev_*, frame_*, and import_*/attach_* used fairly predictably. A few single-word tools (batch, ping) and mixed prefixes are minor deviations from an otherwise consistent scheme.
82 tools is far beyond what an agent can reliably navigate for a single application-control server; the description even admits overlap (e.g. viz/flipbook variants, parameter get/set families). This forces the agent to choose among many near-siblings rather than a coherent, curated surface.
The surface covers an impressive breadth: node lifecycle, parameter access, USD/LOP inspection and editing, viewport/render control, KineFX character workflows, lookdev, scene persistence, and offline docs. Only minor gaps remain (e.g. no explicit undo/redo, limited PR-like review of scene changes), which agents can work around.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1Hosted MCP server for task-first delegation to remote workstations and workers.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to control Houdini by executing Python code, querying scene information, and creating nodes via the Model Context Protocol.2-
- AlicenseNot gradedqualityBmaintenanceAn MCP server for controlling SideFX Houdini via hrpyc, enabling AI assistants to interact with Houdini sessions.79MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for SideFX Houdini that enables AI assistants to interactively control, construct, inspect, and visually verify 3D procedural scenes through tools like node creation, parameter editing, viewport capture, and rendering.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to connect directly to a live Houdini session and act as a technical director by creating nodes, wiring networks, querying scene data, running Python/HScript, and modifying parameters in real time.-