navigate
Direct the Chromium ARM64 Browser to load a specific webpage URL for automation, testing, or data extraction tasks.
Instructions
Navigate to a URL
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to navigate to |
Implementation Reference
- index.js:105-118 (registration)Registration of the 'navigate' tool in the MCP server's listTools response, including name, description, and input schema.{ name: 'navigate', description: 'Navigate to a URL', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The URL to navigate to', }, }, required: ['url'], }, },
- index.js:108-117 (schema)Input schema for the navigate tool requiring a URL string.inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The URL to navigate to', }, }, required: ['url'], },
- index.js:603-610 (handler)Core handler function that launches/ensures Chromium browser and executes the Page.navigate CDP command to navigate to the specified URL.async navigate(url) { await this.ensureChromium(); await this.sendCDPCommand('Page.navigate', { url }); return { content: [{ type: 'text', text: `Successfully navigated to ${url}` }], }; }
- index.js:351-352 (registration)Dispatch/registration handler in the CallToolRequestSchema switch statement that routes 'navigate' calls to the implementation.case 'navigate': return await this.navigate(args.url);
- index.js:346-404 (handler)MCP CallTool request handler that dispatches tool calls, including 'navigate' to its implementation.this.server.setRequestHandler(CallToolRequestSchema, async (request) => { try { const { name, arguments: args } = request.params; switch (name) { case 'navigate': return await this.navigate(args.url); case 'screenshot': return await this.screenshot(args.name || 'screenshot.png', args.fullPage || false); case 'click': return await this.click(args.selector); case 'fill': return await this.fill(args.selector, args.value); case 'evaluate': return await this.evaluate(args.script); case 'get_content': return await this.getContent(args.type || 'text'); case 'hover': return await this.hover(args.selector); case 'select': return await this.select(args.selector, args.value); case 'get_console_logs': return await this.getConsoleLogs(); case 'get_console_errors': return await this.getConsoleErrors(); case 'get_network_logs': return await this.getNetworkLogs(); case 'get_network_errors': return await this.getNetworkErrors(); case 'wipe_logs': return await this.wipeLogs(); case 'get_selected_element': return await this.getSelectedElement(); case 'run_accessibility_audit': return await this.runAccessibilityAudit(); case 'run_performance_audit': return await this.runPerformanceAudit(); case 'run_seo_audit': return await this.runSEOAudit(); case 'run_best_practices_audit': return await this.runBestPracticesAudit(); case 'run_nextjs_audit': return await this.runNextJSAudit(); case 'run_debugger_mode': return await this.runDebuggerMode(); case 'run_audit_mode': return await this.runAuditMode(); case 'close_browser': return await this.closeBrowser(); default: throw new Error(`Unknown tool: ${name}`); } } catch (error) { return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true, }; } });