run_debugger_mode
Debug application issues by activating debugger mode for troubleshooting and problem resolution.
Instructions
Run debugger mode to debug issues in the application
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:1029-1059 (handler)The core handler function for the 'run_debugger_mode' tool. It ensures Chromium is running, evaluates JavaScript in the page to collect debug information (URL, user agent, sizes, performance metrics), parses the result, and returns it as text content.async runDebuggerMode() { await this.ensureChromium(); const result = await this.sendCDPCommand('Runtime.evaluate', { expression: ` JSON.stringify({ url: window.location.href, userAgent: navigator.userAgent, screenSize: \`\${screen.width}x\${screen.height}\`, viewportSize: \`\${window.innerWidth}x\${window.innerHeight}\`, performance: { memory: performance.memory ? { used: Math.round(performance.memory.usedJSHeapSize / 1024 / 1024) + 'MB', total: Math.round(performance.memory.totalJSHeapSize / 1024 / 1024) + 'MB' } : 'Not available', timing: performance.timing ? { pageLoad: performance.timing.loadEventEnd - performance.timing.navigationStart + 'ms', domReady: performance.timing.domContentLoadedEventEnd - performance.timing.navigationStart + 'ms' } : 'Not available' } }); `, returnByValue: true }); const debugInfo = JSON.parse(result.result?.value || '{}'); return { content: [{ type: 'text', text: `Debugger Mode Results:\\n${JSON.stringify(debugInfo, null, 2)}` }], }; }
- index.js:389-390 (registration)The dispatch case in the CallToolRequestSchema handler that routes calls to 'run_debugger_mode' to the runDebuggerMode() method.case 'run_debugger_mode': return await this.runDebuggerMode();
- index.js:320-326 (schema)The tool registration in ListToolsRequestSchema response, including name, description, and empty input schema (no parameters required).name: 'run_debugger_mode', description: 'Run debugger mode to debug issues in the application', inputSchema: { type: 'object', properties: {}, }, },
- index.js:103-344 (registration)The overall tool list registration via setRequestHandler for ListToolsRequestSchema, which includes the 'run_debugger_mode' tool definition.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: 'navigate', description: 'Navigate to a URL', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The URL to navigate to', }, }, required: ['url'], }, }, { name: 'screenshot', description: 'Take a screenshot of the current page', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Name for the screenshot file', default: 'screenshot.png', }, fullPage: { type: 'boolean', description: 'Capture full page', default: false, }, }, }, }, { name: 'click', description: 'Click an element on the page', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS selector for the element to click', }, }, required: ['selector'], }, }, { name: 'fill', description: 'Fill an input field', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS selector for the input field', }, value: { type: 'string', description: 'Value to fill', }, }, required: ['selector', 'value'], }, }, { name: 'evaluate', description: 'Execute JavaScript in the browser', inputSchema: { type: 'object', properties: { script: { type: 'string', description: 'JavaScript code to execute', }, }, required: ['script'], }, }, { name: 'get_content', description: 'Get page content (HTML or text)', inputSchema: { type: 'object', properties: { type: { type: 'string', enum: ['html', 'text'], description: 'Type of content to get', default: 'text', }, }, }, }, { name: 'hover', description: 'Hover over an element on the page', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS selector for the element to hover', }, }, required: ['selector'], }, }, { name: 'select', description: 'Select an option from a dropdown', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS selector for the select element', }, value: { type: 'string', description: 'Value to select', }, }, required: ['selector', 'value'], }, }, { name: 'get_console_logs', description: 'Get browser console logs', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_console_errors', description: 'Get browser console errors', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_network_logs', description: 'Get network activity logs', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_network_errors', description: 'Get network error logs', inputSchema: { type: 'object', properties: {}, }, }, { name: 'wipe_logs', description: 'Clear all stored logs from memory', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_selected_element', description: 'Get information about the currently selected element', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_accessibility_audit', description: 'Run an accessibility audit on the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_performance_audit', description: 'Run a performance audit on the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_seo_audit', description: 'Run an SEO audit on the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_best_practices_audit', description: 'Run a best practices audit on the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_nextjs_audit', description: 'Run a Next.js specific audit on the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_debugger_mode', description: 'Run debugger mode to debug issues in the application', inputSchema: { type: 'object', properties: {}, }, }, { name: 'run_audit_mode', description: 'Run comprehensive audit mode for optimization', inputSchema: { type: 'object', properties: {}, }, }, { name: 'close_browser', description: 'Close the browser instance', inputSchema: { type: 'object', properties: {}, }, }, ], }));