Skip to main content
Glama

list_dialogs

Detect and list open TouchDesigner modal dialogs, including message boxes, file pickers, and save prompts, even when the main thread is blocked. Capture screenshots to read dialog text.

Instructions

List the modal dialogs a TouchDesigner instance currently shows (ui.messageBox, missing-file and save-changes prompts, the license box, file pickers). Runs on the bridge, so it works while TD's main thread is blocked by the dialog and every Envoy tool is timing out. TD draws its own dialogs, so their text is not readable through the OS: pass screenshot=true to save a PNG of each one and Read it. Returns blocked=true when a dialog is up.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
instanceNoRegistered instance name (toe basename) to inspect. Omit for this session's pinned instance.
screenshotNoSave a PNG of each dialog window to the temp dir and return its path (Windows). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv6.2.67

TDQS

A4/5.0
Behavior4/5

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 does so well: it discloses that it runs on the bridge and therefore works during a blocked main thread, that TD's dialogs are not OS-readable, and that a blocked=true signal is returned when a dialog is up. It omits permission/auth requirements and how the returned list is structured, but covers the non-obvious behavioral traits.

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

Conciseness4/5

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

Four sentences, each carrying distinct information (purpose, execution context, text-reading workaround, return signal), with the core purpose front-loaded. Dense and mostly waste-free, though the parenthetical dialog enumeration could be tightened.

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

Completeness4/5

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

Given an unusual execution scenario (working during a blocked main thread) with no annotations and no output schema, the description supplies the needed context: what it lists, when it works, how to read dialog text, and the blocked flag. It leaves the return structure of the dialog list undescribed, which is a minor gap without an output schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3. The description adds real value beyond the schema by specifying the screenshot workflow — 'pass screenshot=true to save a PNG of each one and Read it' — which tells the agent what to do with the parameter's output, something the schema alone does not convey.

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

Purpose4/5

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

States a specific verb and resource ('List the modal dialogs a TouchDesigner instance currently shows') and enumerates concrete dialog types. However, it never names or differentiates from the obvious sibling dismiss_dialog, so an agent must infer that this is the read-only counterpart rather than being routed explicitly.

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

Usage Guidelines4/5

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

Gives clear context for when this is the tool to reach for: while TD's main thread is blocked and every other Envoy tool is timing out. It also tells the agent to pass screenshot=true and Read the PNG when text is needed. It stops short of naming the alternative action (dismiss_dialog) after a dialog is found.

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