Install
openclaw skills install playwright-mcp-automationLaunch and operate the Playwright MCP server to let agents browse real websites (login, search, checkout, dashboards) through structured tools. Use when the task requires interacting with live pages beyond simple fetches—e.g., filling ecommerce carts, downloading statements behind auth, capturing screenshots, or testing UI flows with Playwright automation.
openclaw skills install playwright-mcp-automationUse this skill whenever an agent must drive a real browser session via the Playwright MCP server. It covers standing up the MCP daemon, wiring it into your MCP client, and running reliable automation loops (login → navigate → act → verify). Pair these instructions with the upstream repo (https://github.com/microsoft/playwright-mcp) for the latest binaries.
Bundled resources
references/setup.md — launch recipes, flags, troubleshooting.references/tools.md — quick lookup table for MCP tools.scripts/start_playwright_mcp.sh — opinionated launcher (persistent profile, sane timeouts). Override via env vars or CLI flags.npx playwright install chromium
# Linux only: installs missing libraries (x11, fonts, etc.)
sudo npx playwright install-deps chromium
scripts/start_playwright_mcp.sh from this skill directory. Override with PWMCP_BROWSER, PWMCP_PORT, etc.references/setup.md §2–5.{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--browser=chromium", "--user-data-dir=/home/ai/.cache/playwright/mcp-profile", "--allowed-hosts=*", "--snapshot-mode=incremental"]
}
}
}
--port/--host then set "url": "http://HOST:PORT/mcp".browser_navigate to https://example.com, then browser_snapshot. If the tree renders, automation is ready.Follow this loop for every task. Refer to references/tools.md for exact tool signatures.
browser_navigate to the starting URL.browser_snapshot to capture the accessibility tree.--device, --viewport-size) or call browser_resize.Use semantic tools whenever possible:
browser_click, browser_type, browser_fill_form.browser_select_option.browser_hover → browser_wait_for.browser_snapshot + assert expected text before proceeding.--caps=vision and fall back to browser_mouse_* tools, but only as a last resort.browser_run_code:
async (page) => {
await page.waitForSelector('text=Place order');
await page.getByRole('button', { name: 'Place order' }).click();
return await page.getByTestId('order-number').innerText();
}
browser_wait_for with text / textGone over arbitrary sleeps.browser_console_messages, browser_network_requests) to debug API errors or CSP blocks.browser_snapshot and, if needed, browser_take_screenshot or browser_pdf_save (enable --caps=pdf).browser_tabs and ensure the correct tab is selected before final actions.browser_close at the end of unattended runs to release the browser.PWMCP_PROFILE. Great for daily automations.storage.json. Launch with --storage-state=/path/to/storage.json (see setup reference §4).--secrets path/.env so MCP can expose sensitive values via secrets.get. Include API keys or 2FA tokens there instead of SKILL files.--extension. Follow upstream README for pairing.--timeout-action/--timeout-navigation, or stage requests via browser_wait_for { time }.--save-video/--save-trace unless debugging.browser_snapshot filename) for audit trails, especially when producing evidence (e.g., order confirmations).references/setup.md.references/tools.md.scripts/start_playwright_mcp.sh. Export env vars (PWMCP_PORT, PWMCP_EXTRA="--headless") before running to tweak behavior.Keep SKILL.md lean by offloading details to the references. Update references/scripts whenever the upstream Playwright MCP release adds new capabilities (vision, pdf, devtools, etc.).