Tool Debugger
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.
Key Features
Section titled “Key Features”- 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
Input/Output
Section titled “Input/Output”Inputs
Section titled “Inputs”None — operators are added via the External Op Tools sequence on the Tools page.
Outputs
Section titled “Outputs”- 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.
Usage Examples
Section titled “Usage Examples”Basic Tool Inspection
Section titled “Basic Tool Inspection”- Create a
tool_debuggeroperator. - On the Tools page, drag a tool-enabled operator (e.g.,
tool_dat,search,tool_registry) onto an External Op Tools slot. - Pulse Get Tools.
- The operator discovers all tools and populates its output DATs.
- Set Output DAT to the view you want —
Markdownfor a formatted report,Tools Tablefor a spreadsheet-style overview.
Reviewing Schemas in a Web Viewer
Section titled “Reviewing Schemas in a Web Viewer”- Set Output DAT to
Markdownon the Tools page. - Connect the Tool Debugger output to a Null DAT.
- Use that Null DAT as the Markdown Source for a
web_vieweroperator. - Pulse Render Markdown on the Web Viewer to see a nicely formatted tool report inside TouchDesigner.
Verifying a Multi-Tool Operator
Section titled “Verifying a Multi-Tool Operator”Some operators (like mcp_client) expose multiple tools at once. The Tool Debugger verifies all of them:
- Add the multi-tool operator to the External Op Tools sequence.
- Pulse Get Tools.
- Check the Tools Table output — each tool is listed with its type (Single or Multi), handler status, and parameter breakdown.
- Look for any handler warnings in the Markdown output’s “Tool Issues Detected” section.
Output Formats
Section titled “Output Formats”The Output Format menu on the Tools page controls how the Schema output is formatted:
| Format | Description |
|---|---|
| Detailed | Full schemas with operator paths and complete JSON for each tool |
| Compact | Tool names, descriptions, and parameter names only |
| Raw JSON | Pure 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.
Parameters
Section titled “Parameters”op('tool_debugger').par.Tool Sequence - Default:
0
op('tool_debugger').par.Tool0op OP - Default:
"" (Empty String)
op('tool_debugger').par.Gettools Pulse Discover all tools from the Tool sequence and output their schemas.
- Default:
False
op('tool_debugger').par.Autorefresh Toggle Automatically refresh tool schemas when Tool sequence changes.
- Default:
False
op('tool_debugger').par.Includeargs Toggle Include the optional args section from tool definitions.
- Default:
False
op('tool_debugger').par.Includecallback Toggle Include callback_info details in the output.
- Default:
False
op('tool_debugger').par.Lastupdate Str Timestamp of the last tool discovery.
- Default:
"" (Empty String)
Changelog
Section titled “Changelog”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
inspectmodule - 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:
out1operator 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
opseqparameter 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
out1operator 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