browser_evaluate
Execute JavaScript in the browser console to manipulate page content and extract data without page reloads.
Instructions
Execute JavaScript in the browser console
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute |
Implementation Reference
- index.ts:521-561 (handler)The handler function for browser_evaluate that executes JavaScript in the browser console via Playwright's page.evaluate() with console output capture.
case ToolName.BrowserEvaluate: try { const result = await page.evaluate((script) => { const logs: string[] = []; const originalConsole = { ...console }; ['log', 'info', 'warn', 'error'].forEach(method => { (console as any)[method] = (...args: any[]) => { logs.push(`[${method}] ${args.join(' ')}`); (originalConsole as any)[method](...args); }; }); try { const result = eval(script); Object.assign(console, originalConsole); return { result, logs }; } catch (error) { Object.assign(console, originalConsole); throw error; } }, args.script); return { content: [ { type: "text", text: `Execution result:\n${JSON.stringify(result.result, null, 2)}\n\nConsole output:\n${result.logs.join('\n')}`, }, ], isError: false, }; } catch (error) { return { content: [{ type: "text", text: `Script execution failed: ${(error as Error).message}`, }], isError: true, }; } - index.ts:141-151 (schema)The tool definition/schema for browser_evaluate, specifying 'script' as a required string parameter.
{ name: ToolName.BrowserEvaluate, description: "Execute JavaScript in the browser console", inputSchema: { type: "object", properties: { script: { type: "string", description: "JavaScript code to execute" }, }, required: ["script"], }, }, - index.ts:32-33 (registration)Enum definition registering the tool name 'browser_evaluate' as ToolName.BrowserEvaluate.
BrowserEvaluate = "browser_evaluate" }