browser_open
Launch a new browser session for web automation tasks. Choose from Chrome, Firefox, Edge, or Safari browsers with configurable options including headless mode.
Instructions
Open a new browser session
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| browser | Yes | Browser to launch | |
| options | No |
Implementation Reference
- src/tools/browserTools.ts:15-46 (handler)The handler function that implements the core logic of the 'browser_open' tool: launches the specified browser using BrowserService.createDriver, creates a session ID, stores the driver in StateManager, and returns success/error messages.async ({ browser, options = {} }) => { try { const driver = await BrowserService.createDriver(browser, { ...options, headless: typeof options.headless === 'boolean' ? options.headless : false, arguments: options.arguments ?? [], }); const sessionId = `${browser}_${Date.now()}`; stateManager.addDriver(sessionId, driver); stateManager.setCurrentSession(sessionId); return { content: [ { type: 'text', text: `Browser started with session_id: ${sessionId}`, }, ], }; } catch (e) { return { content: [ { type: 'text', text: `Error starting browser: ${(e as Error).message}`, }, ], }; } } );
- src/tools/browserTools.ts:9-46 (registration)Direct registration of the 'browser_open' tool using server.tool(), including name, description, input schema, and handler reference.'browser_open', 'Open a new browser session', { browser: z.enum(['chrome', 'firefox', 'edge', 'safari']).describe('Browser to launch'), options: browserOptionsSchema, }, async ({ browser, options = {} }) => { try { const driver = await BrowserService.createDriver(browser, { ...options, headless: typeof options.headless === 'boolean' ? options.headless : false, arguments: options.arguments ?? [], }); const sessionId = `${browser}_${Date.now()}`; stateManager.addDriver(sessionId, driver); stateManager.setCurrentSession(sessionId); return { content: [ { type: 'text', text: `Browser started with session_id: ${sessionId}`, }, ], }; } catch (e) { return { content: [ { type: 'text', text: `Error starting browser: ${(e as Error).message}`, }, ], }; } } );
- src/types/index.ts:22-27 (schema)Zod schema for browser options (headless, arguments) used in the input schema of 'browser_open' tool.export const browserOptionsSchema = z .object({ headless: z.boolean().optional().describe('Run browser in headless mode'), arguments: z.array(z.string()).optional().describe('Additional browser arguments'), }) .optional();
- src/services/browserService.ts:47-63 (helper)BrowserService.createDriver method called by the handler to instantiate the WebDriver for the specified browser and options.static async createDriver( browser: 'chrome' | 'firefox' | 'edge' | 'safari', options: BrowserOptions = {} ): Promise<WebDriver> { switch (browser) { case 'chrome': return this.createChromeDriver(options); case 'edge': return this.createEdgeDriver(options); case 'firefox': return this.createFirefoxDriver(options); case 'safari': return this.createSafariDriver(); default: throw new Error(`Unsupported browser: ${browser}`); } }
- src/tools/index.ts:9-9 (registration)Invocation of registerBrowserTools within registerAllTools, which registers the browser_open tool among others.registerBrowserTools(server, stateManager);