Skip to main content
Glama

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
NameRequiredDescriptionDefault
browserYesBrowser to launch
optionsNo

Implementation Reference

  • 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}`, }, ], }; } } );
  • 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}`, }, ], }; } } );
  • 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();
  • 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);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pshivapr/selenium-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server