browserbase_stagehand_navigate
Navigate to a specified URL in a cloud browser for automation tasks like data extraction, screenshots, or web interactions.
Instructions
Navigate to a URL in the browser. Only use this tool with URLs you're confident will work and stay up to date. Otherwise, use https://google.com as the starting point
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to navigate to |
Implementation Reference
- src/tools/navigate.ts:20-72 (handler)Executes the tool logic: navigates the active Browserbase page to the given URL, retrieves session ID and debugger URL, returns confirmation content with live links.async function handleNavigate( context: Context, params: NavigateInput, ): Promise<ToolResult> { const action = async (): Promise<ToolActionResult> => { try { const stagehand = await context.getStagehand(); const page = await context.getActivePage(); if (!page) { throw new Error("No active page available"); } await page.goto(params.url, { waitUntil: "domcontentloaded" }); const sessionId = stagehand.browserbaseSessionID; if (!sessionId) { throw new Error("No Browserbase session ID available"); } // Get the debug URL using Browserbase SDK const bb = new Browserbase({ apiKey: context.config.browserbaseApiKey, }); const debugUrl = (await bb.sessions.debug(sessionId)) .debuggerFullscreenUrl; return { content: [ { type: "text", text: `Navigated to: ${params.url}`, }, { type: "text", text: `View the live session here: https://www.browserbase.com/sessions/${sessionId}`, }, { type: "text", text: `Browserbase Live Debugger URL: ${debugUrl}`, }, ], }; } catch (error) { const errorMsg = error instanceof Error ? error.message : String(error); throw new Error(`Failed to navigate: ${errorMsg}`); } }; return { action, waitForNetwork: false, }; }
- src/tools/navigate.ts:7-18 (schema)Defines the Zod input schema for the URL parameter and the tool schema including name, description, and input schema.const NavigateInputSchema = z.object({ url: z.string().describe("The URL to navigate to"), }); type NavigateInput = z.infer<typeof NavigateInputSchema>; const navigateSchema: ToolSchema<typeof NavigateInputSchema> = { name: "browserbase_stagehand_navigate", description: "Navigate to a URL in the browser. Only use this tool with URLs you're confident will work and stay up to date. Otherwise, use https://google.com as the starting point", inputSchema: NavigateInputSchema, };
- src/tools/navigate.ts:74-80 (registration)Defines and exports the tool object combining schema and handler for use in tool registries.const navigateTool: Tool<typeof NavigateInputSchema> = { capability: "core", schema: navigateSchema, handle: handleNavigate, }; export default navigateTool;
- src/tools/index.ts:43-52 (registration)Registers the navigateTool in the main TOOLS export array used by the MCP server.export const TOOLS = [ ...multiSessionTools, ...sessionTools, navigateTool, actTool, extractTool, observeTool, screenshotTool, getUrlTool, ];