Skip to main content
Glama

browser_install

Install the required browser for Playwright MCP's automation tasks when encountering browser not installed errors.

Instructions

Install the browser specified in the config. Call this if you get an error about the browser not being installed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function that forks the Playwright CLI process to install the browser channel specified in the config (defaults to 'chrome'). Captures output and rejects on non-zero exit code.
    handle: async (context, params, response) => { const channel = context.config.browser?.launchOptions?.channel ?? context.config.browser?.browserName ?? 'chrome'; const cliUrl = import.meta.resolve('playwright/package.json'); const cliPath = path.join(fileURLToPath(cliUrl), '..', 'cli.js'); const child = fork(cliPath, ['install', channel], { stdio: 'pipe', }); const output: string[] = []; child.stdout?.on('data', data => output.push(data.toString())); child.stderr?.on('data', data => output.push(data.toString())); await new Promise<void>((resolve, reject) => { child.on('close', code => { if (code === 0) resolve(); else reject(new Error(`Failed to install browser: ${output.join('')}`)); }); }); response.setIncludeTabs(); },
  • The tool schema defining name 'browser_install', empty input schema (no parameters), and destructive type.
    schema: { name: 'browser_install', title: 'Install the browser specified in the config', description: 'Install the browser specified in the config. Call this if you get an error about the browser not being installed.', inputSchema: z.object({}), type: 'destructive', },
  • src/tools.ts:36-52 (registration)
    Registers browser_install by spreading the install tools array into the global allTools list used by the backend.
    export const allTools: Tool<any>[] = [ ...common, ...console, ...dialogs, ...evaluate, ...files, ...install, ...keyboard, ...navigate, ...network, ...mouse, ...pdf, ...screenshot, ...snapshot, ...tabs, ...wait, ];
  • The MCP ServerBackend.tools() method exposes the tool schemas (including browser_install) to the MCP server.
    tools(): mcpServer.ToolSchema<any>[] { return this._tools.map(tool => tool.schema); }
  • Initializes the backend's _tools list using filteredTools(config), which includes core-install capability tools like browser_install.
    constructor(config: FullConfig, browserContextFactory: BrowserContextFactory) { this._tools = filteredTools(config);

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/nzjami/mcpPlaywright'

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