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
JavaScript
/**
* 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