browser_navigate_back
Go to the previous page in the browser. Navigates back one step in the browsing history.
Instructions
browser navigate back
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/browser_tools.js:138-171 (handler)The function that implements the 'browser_navigate_back' tool logic. It uses Puppeteer's page.goBack() to navigate to the previous page in history, waits for DOM content to load, and returns success/failure with the new page URL and title.
/** * Go back to previous page */ async function browserNavigateBack() { try { const page = await getPage(); const response = await page.goBack({ waitUntil: 'domcontentloaded', timeout: config.timeout }); if (!response) { return { success: false, message: 'No previous page in history' }; } return { success: true, message: 'Navigated back', url: page.url(), title: await page.title() }; } catch (error) { logger.error(`Error navigating back: ${error.message}`); return { success: false, message: error.message }; } } - src/mcp/server.js:126-136 (registration)Registration of 'browser_navigate_back' as a tool name in the MCP server's tools/list response. It's listed in the browserExtras array and added to the tools list with a generated description.
// Add extended browser tool schemas to exceed 50 tools (matches prior capability set) const browserExtras = [ { n:'browser_navigate_back' }, { n:'browser_navigate_forward' }, { n:'browser_hover' }, { n:'browser_drag' }, { n:'browser_select_option' }, { n:'browser_press_key' }, { n:'browser_snapshot' }, { n:'browser_console_messages' }, { n:'browser_network_requests' }, { n:'browser_tab_list' }, { n:'browser_tab_new' }, { n:'browser_tab_select' }, { n:'browser_tab_close' }, { n:'browser_file_upload' }, { n:'browser_wait' }, { n:'browser_wait_for' }, { n:'browser_resize' }, { n:'browser_handle_dialog' } ]; for (const b of browserExtras) { tools.push({ name: b.n, description: b.n.replace(/_/g,' '), inputSchema: { type:'object', properties:{} } }); } - src/mcp/server.js:275-275 (registration)Dispatch/routing of the 'browser_navigate_back' tool call in the tools/call handler. It invokes browserTools.browserNavigateBack() when the tool name matches.
case 'browser_navigate_back': data = await browserTools.browserNavigateBack(); break; - src/mcp/server.js:128-148 (helper)Tool schema definition for 'browser_navigate_back'. The input schema is an empty object since this tool takes no arguments.
{ n:'browser_navigate_back' }, { n:'browser_navigate_forward' }, { n:'browser_hover' }, { n:'browser_drag' }, { n:'browser_select_option' }, { n:'browser_press_key' }, { n:'browser_snapshot' }, { n:'browser_console_messages' }, { n:'browser_network_requests' }, { n:'browser_tab_list' }, { n:'browser_tab_new' }, { n:'browser_tab_select' }, { n:'browser_tab_close' }, { n:'browser_file_upload' }, { n:'browser_wait' }, { n:'browser_wait_for' }, { n:'browser_resize' }, { n:'browser_handle_dialog' } ]; for (const b of browserExtras) { tools.push({ name: b.n, description: b.n.replace(/_/g,' '), inputSchema: { type:'object', properties:{} } }); } sendResponse(id, { tools }); break; case 'tools/call': case 'tools/run': { const toolName = method === 'tools/call' ? params.name : params.tool; logger.info(`[tools] ${method} name=${toolName}`); const args = method === 'tools/call' ? (params.arguments || params.parameters || {}) : (params.args || {}); let data; try { switch (toolName) { case 'setWorkspace':