UNPKG

ai-debug-local-mcp

Version:

🎯 ENHANCED AI GUIDANCE v4.1.2: Dramatically improved tool descriptions help AI users choose the right tools instead of 'close enough' options. Ultra-fast keyboard automation (10x speed), universal recording, multi-ecosystem debugging support, and compreh

776 lines • 29.2 kB
/** * Complete List of All Unique Tools * * This is the definitive list of all tools available in the system. * No duplicates, no placeholders, just real tools with real implementations. */ export const COMPLETE_TOOL_LIST = [ // Core Debugging Tools { name: 'inject_debugging', description: 'Inject debugging capabilities into a web page to enable monitoring and analysis', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'URL to inject debugging into' }, framework: { type: 'string', description: 'Optional: Framework to optimize for (auto-detected if not specified)' } }, required: ['url'] } }, { name: 'take_screenshot', description: 'Capture a screenshot of the current page or a specific element', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, fullPage: { type: 'boolean', description: 'Capture full page (default: false)' }, selector: { type: 'string', description: 'Optional: CSS selector for specific element' } }, required: ['sessionId'] } }, { name: 'get_console_logs', description: 'Get all console logs from the current session', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, level: { type: 'string', enum: ['all', 'error', 'warn', 'info', 'debug'], description: 'Filter by log level' } }, required: ['sessionId'] } }, { name: 'simulate_user_action', description: 'Simulate user interactions like clicks, typing, scrolling', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, action: { type: 'string', enum: ['click', 'type', 'scroll', 'hover', 'submit'], description: 'Action to perform' }, selector: { type: 'string', description: 'CSS selector for target element' }, value: { type: 'string', description: 'Value for type action' } }, required: ['sessionId', 'action'] } }, { name: 'get_network_activity', description: 'Get network requests and responses from the session', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, filter: { type: 'string', description: 'Optional: Filter by URL pattern' } }, required: ['sessionId'] } }, { name: 'monitor_realtime', description: 'Monitor page events in real-time for a specified duration', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, duration: { type: 'number', description: 'Duration in milliseconds' }, events: { type: 'array', items: { type: 'string' }, description: 'Event types to monitor' } }, required: ['sessionId'] } }, { name: 'run_audit', description: 'Run comprehensive quality audits (performance, accessibility, SEO, best practices)', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, categories: { type: 'array', items: { type: 'string' }, description: 'Audit categories to run' } }, required: ['sessionId'] } }, { name: 'get_debug_report', description: 'Generate a comprehensive debugging report', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, includeScreenshots: { type: 'boolean', description: 'Include screenshots in report' } }, required: ['sessionId'] } }, { name: 'close_session', description: 'Close the debugging session and clean up resources', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, // TDD Tools { name: 'enable_tdd_mode', description: 'Enable TDD debugging mode with test-runtime bridging for Jest, Flutter, ExUnit, and pytest', inputSchema: { type: 'object', properties: { testFile: { type: 'string', description: 'Path to the test file to monitor' }, implementationFile: { type: 'string', description: 'Path to the implementation file being tested' }, autoValidate: { type: 'boolean', default: true, description: 'Automatically validate test expectations' }, enableRuntimeBridging: { type: 'boolean', default: true, description: 'Enable test-runtime behavior bridging' }, enableCoverage: { type: 'boolean', default: true, description: 'Enable code coverage tracking' } }, required: ['testFile'] } }, { name: 'run_tests_with_coverage', description: 'Run tests with comprehensive coverage analysis and runtime validation', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'TDD session ID' }, testPattern: { type: 'string', description: 'Test file pattern to run' }, captureVisualProof: { type: 'boolean', description: 'Capture screenshots during test execution' } }, required: ['sessionId'] } }, { name: 'test_impact_analysis', description: 'Analyze the impact of changes on tests and suggest what needs testing', inputSchema: { type: 'object', properties: { changedFiles: { type: 'array', items: { type: 'string' }, description: 'Files that were changed' }, fullStackAnalysis: { type: 'boolean', default: true, description: 'Include frontend impact of backend changes' } } } }, { name: 'regression_detection', description: 'Detect potential regressions before committing changes', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, baselineUrl: { type: 'string', description: 'URL for baseline comparison' }, includeVisual: { type: 'boolean', default: true, description: 'Include visual regression detection' } }, required: ['sessionId'] } }, { name: 'full_stack_tdd_workflow', description: 'Revolutionary full-stack TDD workflow that validates backend changes against frontend', inputSchema: { type: 'object', properties: { backendChanges: { type: 'array', items: { type: 'string' }, description: 'Backend files changed' }, frontendUrl: { type: 'string', description: 'Frontend URL to validate against' }, testScenarios: { type: 'array', items: { type: 'string' }, description: 'User scenarios to test' } }, required: ['backendChanges', 'frontendUrl'] } }, { name: 'close_tdd_session', description: 'Close TDD session and generate comprehensive report', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'TDD session ID' }, generateReport: { type: 'boolean', default: true, description: 'Generate final report' } }, required: ['sessionId'] } }, // Flutter Tools { name: 'flutter_quantum_analyze', description: 'Analyze Flutter web app quantum state and rendering', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'flutter_quantum_interact', description: 'Interact with Flutter widgets using quantum coordinates', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, action: { type: 'string', enum: ['tap', 'longPress', 'swipe', 'scroll'], description: 'Interaction type' }, coordinates: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' } } } }, required: ['sessionId', 'action'] } }, { name: 'flutter_widget_tree', description: 'Get the Flutter widget tree structure', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, depth: { type: 'number', description: 'Maximum depth to traverse' } }, required: ['sessionId'] } }, { name: 'flutter_quantum_find', description: 'Find Flutter widgets by properties or text', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, query: { type: 'string', description: 'Search query' }, type: { type: 'string', enum: ['text', 'type', 'key', 'property'], description: 'Search type' } }, required: ['sessionId', 'query'] } }, { name: 'flutter_enable_accessibility', description: 'Enable Flutter accessibility mode for better widget detection', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, // Next.js Tools { name: 'nextjs_page_info', description: 'Get detailed Next.js page information including props and rendering mode', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'nextjs_detect_issues', description: 'Detect common Next.js issues like hydration errors', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'nextjs_server_components', description: 'Analyze Next.js server components and their data flow', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'nextjs_bundle_analysis', description: 'Analyze Next.js bundle size and optimization opportunities', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'nextjs_cache_analysis', description: 'Analyze Next.js caching behavior and performance', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, // Phoenix/LiveView Tools { name: 'phoenix_live_view_state', description: 'Get Phoenix LiveView state and socket information', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'phoenix_live_events', description: 'Monitor Phoenix LiveView events and patches', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, duration: { type: 'number', description: 'Monitoring duration in ms' } }, required: ['sessionId'] } }, { name: 'phoenix_inspect_hooks', description: 'Inspect Phoenix hooks and JavaScript interop', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'phoenix_channel_monitor', description: 'Monitor Phoenix channel messages and presence', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, channel: { type: 'string', description: 'Channel to monitor' } }, required: ['sessionId'] } }, // Performance Tools { name: 'performance_profile', description: 'Profile application performance and identify bottlenecks', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, duration: { type: 'number', description: 'Profiling duration in ms' }, metrics: { type: 'array', items: { type: 'string' }, description: 'Specific metrics to capture' } }, required: ['sessionId'] } }, { name: 'performance_baseline', description: 'Establish performance baseline for comparison', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, scenarios: { type: 'array', items: { type: 'string' }, description: 'User scenarios to baseline' } }, required: ['sessionId'] } }, { name: 'memory_analysis', description: 'Analyze memory usage and detect leaks', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, heapSnapshot: { type: 'boolean', description: 'Take heap snapshot' } }, required: ['sessionId'] } }, // AI-Powered Tools { name: 'analyze_with_ai', description: 'Use AI to analyze debugging data and suggest solutions', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, analysisType: { type: 'string', enum: ['error', 'performance', 'ux', 'security'], description: 'Type of analysis' }, context: { type: 'string', description: 'Additional context for AI' } }, required: ['sessionId'] } }, { name: 'ai_code_review', description: 'AI-powered code review focusing on debugging and quality', inputSchema: { type: 'object', properties: { files: { type: 'array', items: { type: 'string' }, description: 'Files to review' }, focusAreas: { type: 'array', items: { type: 'string' }, description: 'Areas to focus on' } }, required: ['files'] } }, { name: 'generate_test_from_session', description: 'Generate tests based on debugging session interactions', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, framework: { type: 'string', enum: ['jest', 'cypress', 'playwright', 'flutter'], description: 'Test framework' } }, required: ['sessionId', 'framework'] } }, // Visual Tools { name: 'visual_regression_test', description: 'Perform visual regression testing between states', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, baselineImage: { type: 'string', description: 'Baseline image URL or base64' }, threshold: { type: 'number', description: 'Difference threshold (0-1)' } }, required: ['sessionId'] } }, { name: 'capture_element_states', description: 'Capture visual states of elements during interactions', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, selectors: { type: 'array', items: { type: 'string' }, description: 'Element selectors to capture' }, states: { type: 'array', items: { type: 'string' }, description: 'States to capture (hover, focus, etc)' } }, required: ['sessionId', 'selectors'] } }, // Backend Integration Tools { name: 'trace_api_calls', description: 'Trace API calls from frontend to backend', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, apiPattern: { type: 'string', description: 'API URL pattern to trace' } }, required: ['sessionId'] } }, { name: 'mock_api_response', description: 'Mock API responses for testing', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, url: { type: 'string', description: 'API URL to mock' }, response: { type: 'object', description: 'Mock response data' }, status: { type: 'number', description: 'HTTP status code' } }, required: ['sessionId', 'url', 'response'] } }, { name: 'database_query_trace', description: 'Trace database queries triggered by frontend actions', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, action: { type: 'string', description: 'Frontend action that triggers queries' } }, required: ['sessionId', 'action'] } }, // Error Detection Tools { name: 'detect_javascript_errors', description: 'Detect and analyze JavaScript errors in real-time', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, includeStackTrace: { type: 'boolean', default: true, description: 'Include full stack traces' } }, required: ['sessionId'] } }, { name: 'detect_hydration_errors', description: 'Detect SSR hydration mismatches', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'detect_memory_leaks', description: 'Detect potential memory leaks', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, duration: { type: 'number', description: 'Monitoring duration' } }, required: ['sessionId'] } }, // Accessibility Tools { name: 'accessibility_audit', description: 'Run comprehensive accessibility audit', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, standard: { type: 'string', enum: ['WCAG2A', 'WCAG2AA', 'WCAG2AAA'], description: 'Accessibility standard' } }, required: ['sessionId'] } }, { name: 'keyboard_navigation_test', description: 'Test keyboard navigation flow', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, flow: { type: 'array', items: { type: 'string' }, description: 'Expected navigation flow' } }, required: ['sessionId'] } }, { name: 'screen_reader_test', description: 'Test screen reader compatibility', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, content: { type: 'array', items: { type: 'string' }, description: 'Expected announcements' } }, required: ['sessionId'] } }, // Monitoring Tools { name: 'start_monitoring', description: 'Start continuous monitoring of application', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'URL to monitor' }, interval: { type: 'number', description: 'Check interval in seconds' }, alerts: { type: 'array', items: { type: 'string' }, description: 'Conditions to alert on' } }, required: ['url'] } }, { name: 'get_monitoring_report', description: 'Get monitoring report for time period', inputSchema: { type: 'object', properties: { monitoringId: { type: 'string', description: 'Monitoring session ID' }, timeRange: { type: 'object', properties: { start: { type: 'string' }, end: { type: 'string' } } } }, required: ['monitoringId'] } }, { name: 'stop_monitoring', description: 'Stop monitoring session', inputSchema: { type: 'object', properties: { monitoringId: { type: 'string', description: 'Monitoring session ID' } }, required: ['monitoringId'] } }, // Session Management Tools { name: 'list_sessions', description: 'List all active debugging sessions', inputSchema: { type: 'object', properties: {} } }, { name: 'get_session_info', description: 'Get detailed information about a session', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'export_session', description: 'Export session data for sharing or analysis', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, format: { type: 'string', enum: ['json', 'har', 'report'], description: 'Export format' } }, required: ['sessionId'] } }, { name: 'import_session', description: 'Import previously exported session', inputSchema: { type: 'object', properties: { data: { type: 'string', description: 'Session data to import' }, format: { type: 'string', enum: ['json', 'har', 'report'], description: 'Import format' } }, required: ['data'] } }, // Utility Tools { name: 'execute_javascript', description: 'Execute JavaScript code in the page context', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, code: { type: 'string', description: 'JavaScript code to execute' } }, required: ['sessionId', 'code'] } }, { name: 'get_page_metrics', description: 'Get detailed page performance metrics', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' } }, required: ['sessionId'] } }, { name: 'get_dom_snapshot', description: 'Get a snapshot of the DOM structure', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, selector: { type: 'string', description: 'Optional: Root element selector' } }, required: ['sessionId'] } }, { name: 'wait_for_element', description: 'Wait for an element to appear or change state', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Debug session ID' }, selector: { type: 'string', description: 'Element selector' }, state: { type: 'string', enum: ['visible', 'hidden', 'attached', 'detached'], description: 'Expected state' }, timeout: { type: 'number', description: 'Timeout in milliseconds' } }, required: ['sessionId', 'selector'] } }, // Discovery Tools { name: 'list_tools', description: 'List all available debugging tools', inputSchema: { type: 'object', properties: { category: { type: 'string', description: 'Filter by category' } } } }, { name: 'get_tool_info', description: 'Get detailed information about a specific tool', inputSchema: { type: 'object', properties: { toolName: { type: 'string', description: 'Name of the tool' } }, required: ['toolName'] } }, { name: 'discover_capabilities', description: 'Discover AI-Debug capabilities for your project', inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to project' }, framework: { type: 'string', description: 'Optional: Specify framework' } } } } ]; // Helper function to get tool count by category export function getToolCountByCategory() { const categories = {}; COMPLETE_TOOL_LIST.forEach(tool => { let category = 'general'; if (tool.name.includes('tdd') || tool.name.includes('test')) category = 'testing'; else if (tool.name.includes('flutter')) category = 'flutter'; else if (tool.name.includes('nextjs')) category = 'nextjs'; else if (tool.name.includes('phoenix')) category = 'phoenix'; else if (tool.name.includes('performance')) category = 'performance'; else if (tool.name.includes('visual')) category = 'visual'; else if (tool.name.includes('ai_') || tool.name.includes('analyze_with_ai')) category = 'ai'; else if (tool.name.includes('accessibility')) category = 'accessibility'; else if (tool.name.includes('monitor')) category = 'monitoring'; else if (tool.name.includes('session')) category = 'session'; else if (tool.name.includes('error') || tool.name.includes('detect')) category = 'error-detection'; categories[category] = (categories[category] || 0) + 1; }); return categories; } console.error(`📋 Complete tool list loaded: ${COMPLETE_TOOL_LIST.length} tools`); const categories = getToolCountByCategory(); console.error('📊 Tools by category:', categories); //# sourceMappingURL=complete-tool-list.js.map