Skip to content

Tool Debugger

v1.0.0

The Tool Debugger discovers all tools from a sequence of LOPs operators and outputs their complete schemas in multiple formats. Unlike interactive debugging, it provides a bulk inspection of every tool at once — ideal for validating tool definitions, reviewing parameter schemas, and generating documentation.

  • Bulk tool discovery: Scans all operators in the Tool sequence and extracts every GetTool() definition
  • Handler verification: Checks whether each tool’s handler method actually exists and is callable, with signature inspection
  • Multiple output formats: Detailed, Compact, Raw JSON, and Markdown views
  • Multiple output DATs: Switch between Markdown, Schema, Summary, Tools Table, and Params Table outputs
  • Broken tool detection: Markdown output highlights tools with missing or broken handlers

None — operators are added via the External Op Tools sequence on the Tools page.

  • Markdown: Formatted report with table of contents, statistics, and per-tool documentation
  • Schema: Raw tool schemas in the selected output format
  • Summary: Human-readable text overview of all discovered tools
  • Tools Table: One row per tool with name, description, operator path, handler status, and parameter counts
  • Params Table: One row per parameter across all tools with type, required status, description, defaults, and constraints

The Output DAT menu controls which of these connects to the operator’s output.

  1. Create a tool_debugger operator.
  2. On the Tools page, drag a tool-enabled operator (e.g., tool_dat, search, tool_registry) onto an External Op Tools slot.
  3. Pulse Get Tools.
  4. The operator discovers all tools and populates its output DATs.
  5. Set Output DAT to the view you want — Markdown for a formatted report, Tools Table for a spreadsheet-style overview.
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
  1. Set Output DAT to Markdown on the Tools page.
  2. Connect the Tool Debugger output to a Null DAT.
  3. Use that Null DAT as the Markdown Source for a web_viewer operator.
  4. Pulse Render Markdown on the Web Viewer to see a nicely formatted tool report inside TouchDesigner.

Some operators (like mcp_client) expose multiple tools at once. The Tool Debugger verifies all of them:

  1. Add the multi-tool operator to the External Op Tools sequence.
  2. Pulse Get Tools.
  3. Check the Tools Table output — each tool is listed with its type (Single or Multi), handler status, and parameter breakdown.
  4. Look for any handler warnings in the Markdown output’s “Tool Issues Detected” section.

The Output Format menu on the Tools page controls how the Schema output is formatted:

FormatDescription
DetailedFull schemas with operator paths and complete JSON for each tool
CompactTool names, descriptions, and parameter names only
Raw JSONPure JSON array of all tool schemas

The Markdown output always generates a full report regardless of this setting. Toggle Include Args and Include Callback Info to control whether optional args and callback details appear in the schema and markdown outputs.

Debug / Evaluate LOPs Tools Header
External Op Tools (Tool) op('tool_debugger').par.Tool Sequence
Default:
0
OP (Tool0op) op('tool_debugger').par.Tool0op OP
Default:
"" (Empty String)
Get Tools (Gettools) op('tool_debugger').par.Gettools Pulse

Discover all tools from the Tool sequence and output their schemas.

Default:
False
Auto Refresh (Autorefresh) op('tool_debugger').par.Autorefresh Toggle

Automatically refresh tool schemas when Tool sequence changes.

Default:
False
Output Format (Outputformat) op('tool_debugger').par.Outputformat Menu

Format for the text output display.

Default:
detailed
Options:
detailed, compact, raw_json
Include Args (Includeargs) op('tool_debugger').par.Includeargs Toggle

Include the optional args section from tool definitions.

Default:
False
Include Callback Info (Includecallback) op('tool_debugger').par.Includecallback Toggle

Include callback_info details in the output.

Default:
False
Last Update (Lastupdate) op('tool_debugger').par.Lastupdate Str

Timestamp of the last tool discovery.

Default:
"" (Empty String)
Output DAT (Outputdat) op('tool_debugger').par.Outputdat Menu

Select which DAT to connect to the out1 operator.

Default:
markdown
Options:
markdown, schema, summary, tools_table, params_table
v1.0.02025-07-20

🎉 Initial Release - Complete Tool Schema Inspector

#### Core Functionality

  • Tool Discovery Engine: Automatically discovers and analyzes all tools from Tool sequence parameter
  • Bulk Schema Output: Processes multiple tools simultaneously, unlike interactive tool_debug operator
  • Handler Verification: Safely inspects tool handler methods without execution using Python inspect module
  • Issue Detection: Automatically identifies broken or misconfigured tools with detailed error reporting

#### Multiple Output Formats

  • Detailed Format: Complete tool schemas with full JSON structures
  • Compact Format: Essential information in condensed view
  • Raw JSON Format: Pure JSON output for programmatic use
  • Markdown Format: Rich documentation with tables, collapsible sections, and issue warnings

#### Comprehensive Data Tables

  • Tools Table: Overview with tool names, descriptions, operator paths, handler verification status, signatures, and parameter counts
  • Parameters Table: Detailed breakdown of every parameter across all tools with types, requirements, and constraints
  • Handler Inspection: Method signatures, docstrings, parameter details, and existence verification

#### Advanced Output Routing

  • Dynamic Output DAT: out1 operator that can connect to any internal DAT based on user selection
  • Output DAT Menu: Choose between markdown, schema, summary, tools table, or parameters table for external routing
  • Smart Connections: Proper TouchDesigner connector-based wiring using outputConnectors[0].connect()

#### Handler Safety & Inspection

  • Safe Verification: Checks handler existence using getattr() pattern (same as agent/gemini_live operators)
  • Method Signatures: Extracts full method signatures with parameter details
  • Docstring Extraction: Captures handler documentation when available
  • Error Handling: Graceful handling of inspection failures with detailed error messages
  • No Execution Risk: Never calls handler methods, only inspects them

#### Issue Detection & Reporting

  • Broken Tool Warnings: Prominent warnings at top of markdown output for tools with missing handlers
  • Clear Error Messages: Specific descriptions like "Handler method 'HandleCalculation' not found"
  • Visual Indicators: ✅/❌ status indicators throughout all outputs
  • Condensed Warnings: One-line descriptions with tool names for quick identification

#### User Interface

  • Tool Sequence Parameter: Standard opseq parameter compatible with agent and gemini_live patterns
  • Get Tools Pulse: Manual trigger for tool discovery and analysis
  • Auto Refresh: Automatic refresh when Tool sequence changes
  • Output Format Menu: Choose display format for schema output
  • Include Options: Toggle callback info and args sections
  • Status Tracking: Last update timestamp and real-time feedback

#### Architecture & Integration

  • DotLOPUtils Base Class: Inherits advanced LOPs functionality including logging and async support
  • Standard LOPs Patterns: Follows established parameter callback patterns and tool sequence handling
  • Tool Sequence Compatibility: Uses same parsing logic as agent and gemini_live operators
  • Multi-Tool Support: Handles both single-tool and multi-tool providers (like MCP clients)
  • Extension Ready: Proper extension initialization and extensionsReady checking

#### Data Management

  • Comprehensive Reset: ResetOp() method clears all data, resets Tool sequence, and clears logs
  • Smart Initialization: Checks for existing out1 operator to prevent duplicates on reinit
  • Memory Management: Proper cleanup of internal tracking dictionaries and connections
  • Table Management: Header preservation during clears, proper row management

#### Output Features

  • Markdown Enhancements:
    • Table of contents with anchor links
    • Statistics overview (operators, parameters, required vs optional counts)
    • Tools grouped by operator
    • Compact parameter format with inline extras
    • Collapsible JSON schemas using
      tags
    • Issue warnings with specific error descriptions
  • Table Outputs: Sortable, filterable data for external analysis
  • Text Outputs: Human-readable summaries with handler status indicators

#### Error Handling & Logging

  • Comprehensive Logging: Detailed logging throughout discovery and processing
  • Exception Safety: Graceful handling of malformed tools, missing operators, and inspection failures
  • Progress Tracking: Real-time feedback during tool processing
  • Debug Information: Extensive debug output for troubleshooting tool issues

#### Use Cases Supported

  • Tool Development: Inspect schemas and verify handlers during development
  • Debugging: Identify broken tools, missing handlers, and configuration issues
  • Documentation: Generate comprehensive tool documentation from live schemas
  • Integration Testing: Validate tool compatibility across operators
  • Health Monitoring: Bulk analysis of tool ecosystem with issue detection
  • Schema Analysis: Export and analyze tool definitions programmatically