browserbase_stagehand_navigate
Navigate to specified URLs in a browser for web automation tasks, enabling AI-powered interaction with websites through the Browserbase MCP Server.
Instructions
Navigate to a URL in the browser. Only use this tool with URLs you're confident will work and be 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:19-58 (handler)The core handler function that performs the browser navigation using Stagehand's page.goto method on the active page.async function handleNavigate( context: Context, params: NavigateInput, ): Promise<ToolResult> { const action = async (): Promise<ToolActionResult> => { try { const stagehand = await context.getStagehand(); const pages = stagehand.context.pages(); const page = pages[0]; 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"); } return { content: [ { type: "text", text: `Navigated to: ${params.url}`, }, ], }; } 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:12-17 (schema)The tool schema defining the name 'browserbase_stagehand_navigate', description, and Zod input schema requiring a 'url' string.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 be up to date. Otherwise, use https://google.com as the starting point`, inputSchema: NavigateInputSchema, };
- src/tools/index.ts:21-30 (registration)The navigateTool is included in the central TOOLS array which is used for MCP registration.export const TOOLS = [ ...sessionTools, navigateTool, actTool, extractTool, observeTool, screenshotTool, getUrlTool, agentTool, ];
- src/index.ts:168-198 (registration)The MCP server registration loop that registers all tools from TOOLS array, including browserbase_stagehand_navigate, by calling server.tool with the schema name and a wrapper around the tool's handle function via context.run.const tools: MCPToolsArray = [...TOOLS]; // Register each tool with the Smithery server tools.forEach((tool) => { if (tool.schema.inputSchema instanceof z.ZodObject) { server.tool( tool.schema.name, tool.schema.description, tool.schema.inputSchema.shape, async (params: z.infer<typeof tool.schema.inputSchema>) => { try { const result = await context.run(tool, params); return result; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); process.stderr.write( `[Smithery Error] ${new Date().toISOString()} Error running tool ${tool.schema.name}: ${errorMessage}\n`, ); throw new Error( `Failed to run tool '${tool.schema.name}': ${errorMessage}`, ); } }, ); } else { console.warn( `Tool "${tool.schema.name}" has an input schema that is not a ZodObject. Schema type: ${tool.schema.inputSchema.constructor.name}`, ); } });