Skip to content

Tool Debugger Operator

Tool Debugger UI

The Tool Debugger operator is a utility for inspecting and debugging LOPs (Live Operator Primitives) tools. It discovers all tools from a specified sequence of operators and outputs their complete schemas in various formats, including detailed tables and raw JSON. This allows developers and users to verify that their tools are correctly defined and to understand the exact structure that will be passed to other systems like AI models.

Unlike interactive debugging tools, the Tool Debugger provides a comprehensive, bulk output of all tool schemas at once, making it ideal for validation and documentation purposes.

tools tools markdown source
Fal AI LOP
Tool-enabled LOP
Search LOP
Another Tool-enabled LOP
Tool Debugger
Set to Markdown Output
Null DAT
Stores Markdown output
Web Viewer
Renders the Markdown

A good workflow for reviewing tool schemas is to connect the mardown results from the Tool Debugger as the Markdown Source for a Web Viewer LOP and then pulse Render Markdown. This creates a nicely formatted view of your tool documentation right inside your TouchDesigner network.

Debug / Evaluate LOPs Tools Header
External Op Tools (Tool) op('tool_debugger').par.Tool Sequence
Default:
None
OP (Tool0op) op('tool_debugger').par.Tool0op OP
Default:
None
Get Tools (Gettools) op('tool_debugger').par.Gettools Pulse
Default:
None
Auto Refresh (Autorefresh) op('tool_debugger').par.Autorefresh Toggle
Default:
Off
Output Format (Outputformat) op('tool_debugger').par.Outputformat StrMenu
Default:
detailed
Menu Options:
  • Detailed (detailed)
  • Compact (compact)
  • Raw JSON (raw_json)
Include Args (Includeargs) op('tool_debugger').par.Includeargs Toggle
Default:
Off
Include Callback Info (Includecallback) op('tool_debugger').par.Includecallback Toggle
Default:
Off
Last Update (Lastupdate) op('tool_debugger').par.Lastupdate Str
Default:
"" (Empty String)
Output DAT (Outputdat) op('tool_debugger').par.Outputdat StrMenu
Default:
markdown
Menu Options:
  • Markdown (markdown)
  • Schema (schema)
  • Summary (summary)
  • Tools Table (tools_table)
  • Params Table (params_table)
Bypass (Bypass) op('tool_debugger').par.Bypass Toggle
Default:
Off
Show Built-in Parameters (Showbuiltin) op('tool_debugger').par.Showbuiltin Toggle
Default:
Off
Version (Version) op('tool_debugger').par.Version Str
Default:
"" (Empty String)
Last Updated (Lastupdated) op('tool_debugger').par.Lastupdated Str
Default:
"" (Empty String)
Creator (Creator) op('tool_debugger').par.Creator Str
Default:
"" (Empty String)
Website (Website) op('tool_debugger').par.Website Str
Default:
"" (Empty String)
ChatTD Operator (Chattd) op('tool_debugger').par.Chattd OP
Default:
"" (Empty String)
  1. Create a Tool Debugger operator.
  2. Create an operator that has a GetTool method (e.g., a Tool Registry or a custom component).
  3. In the Tool Debugger’s “Tools” parameter page, drag the custom tool operator onto the OP field within the External Op Tools sequence.
  4. Click the Get Tools pulse button.
  5. Right-click on the Tool Debugger and select “View DATs” to see the generated outputs like markdownOutput, toolsTable, and parametersTable.

Some operators, like MCP Client, can expose multiple tools at once. The Tool Debugger can be used to verify all of them are being exposed correctly.

  1. Connect the Tool Debugger as described above, pointing it to an MCP Client operator.
  2. After pulsing Get Tools, view the toolsTable DAT. You will see a list of all tools provided by the client, each with a “Multi” type.
  3. View the markdownOutput DAT for a comprehensive, easy-to-read report of every tool, its parameters, and its handler information. This is useful for pasting into documentation or sharing with team members.