take_screenshot
Capture a screenshot of the current webpage or specific element using Playwright MCP for browser automation tasks.
Instructions
Take a screenshot of the current page
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | No | ||
| selector | No |
Input Schema (JSON Schema)
{
"properties": {
"page_id": {
"type": "string"
},
"selector": {
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- src/playwright_mcp/server.py:270-289 (handler)The handler for the 'take_screenshot' tool. Captures screenshot of page or selector, base64 encodes it, returns as ImageContent.elif name == "take_screenshot": page = get_active_page(arguments.get("page_id")) selector = arguments.get("selector") if selector: screenshot = await page.locator(selector).screenshot() else: screenshot = await page.screenshot() # Convert the bytes to base64 base64_image = base64.b64encode(screenshot).decode('utf-8') # Return as ImageContent return [types.ImageContent( type="image", image=types.ImageData( mime_type="image/png", data=base64_image ) )]
- src/playwright_mcp/server.py:144-154 (registration)Registration of the 'take_screenshot' tool in handle_list_tools(), including schema for optional page_id and selector.types.Tool( name="take_screenshot", description="Take a screenshot of the current page", inputSchema={ "type": "object", "properties": { "page_id": {"type": "string"}, "selector": {"type": "string"}, }, }, ),
- src/playwright_mcp/server.py:200-210 (helper)Helper function used by take_screenshot handler to retrieve the target Page object.def get_active_page(page_id: Optional[str] = None) -> Page: """Get the active page based on page_id or current default.""" global current_page_id if page_id is None: page_id = current_page_id if page_id not in pages: raise ValueError(f"Page not found: {page_id}") return pages[page_id]