set_viewport_size
Adjust browser viewport dimensions in pixels for responsive testing and layout verification. Specify width and height to simulate different screen sizes.
Instructions
Set viewport dimensions in pixels.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Width in pixels | |
| height | Yes | Height in pixels |
Implementation Reference
- src/tools/utilities.ts:143-164 (handler)The MCP tool handler function that validates input parameters (width, height), retrieves the Firefox instance, calls the underlying setViewportSize method, and returns a formatted success or error response.
export async function handleSetViewportSize(args: unknown): Promise<McpToolResponse> { try { const { width, height } = args as { width: number; height: number }; if (typeof width !== 'number' || width <= 0) { throw new Error('width parameter is required and must be a positive number'); } if (typeof height !== 'number' || height <= 0) { throw new Error('height parameter is required and must be a positive number'); } const { getFirefox } = await import('../index.js'); const firefox = await getFirefox(); await firefox.setViewportSize(width, height); return successResponse(`✅ ${width}x${height}`); } catch (error) { return errorResponse(error as Error); } } - src/tools/utilities.ts:50-67 (schema)The tool definition object specifying name, description, and input schema (object with required numeric width/height properties).
export const setViewportSizeTool = { name: 'set_viewport_size', description: 'Set viewport dimensions in pixels.', inputSchema: { type: 'object', properties: { width: { type: 'number', description: 'Width in pixels', }, height: { type: 'number', description: 'Height in pixels', }, }, required: ['width', 'height'], }, }; - src/index.ts:146-146 (registration)Registers the tool handler in the central toolHandlers Map used by the MCP server to dispatch CallTool requests.
['set_viewport_size', tools.handleSetViewportSize], - src/index.ts:190-190 (registration)Adds the tool definition to the allTools array served in response to ListTools requests.
tools.setViewportSizeTool, - src/firefox/pages.ts:40-42 (helper)Underlying browser automation helper: uses Selenium WebDriver to set the browser window/viewport size via setRect.
async setViewportSize(width: number, height: number): Promise<void> { await this.driver.manage().window().setRect({ width, height }); }