Browser Automation with Claude + Playwright MCP: Why Accessibility Snapshots Beat Screenshots Playwright's MCP server enables browser automation with Claude by feeding the model the page's accessibility tree instead of screenshots, reducing flakiness in AI-driven clicks. The setup registers at user scope, runs as a local stdio subprocess, and supports Claude Desktop, Cursor, VS Code, and Windsurf. Developers can describe form flows, data extraction, and E2E tests in plain language, though elements outside the accessibility tree remain challenging. If you've tried "AI clicks the screen" automation, you know the flaky part is usually the vision step. Playwright's MCP server takes a different route: it feeds the model the page's accessibility tree, not a screenshot. claude mcp add playwright npx @playwright/mcp@latest It registers at user scope, runs as a local stdio subprocess, and uses headed Chromium by default. Claude Desktop, Cursor, VS Code and Windsurf work too. Repetitive form flows, data extraction, and E2E/regression tests you can describe in plain language. Keep browser snapshot as the default and reach for browser screenshot only when you need a visual check. It drives a real local browser, and elements outside the accessibility tree canvas, custom widgets are harder. Keep a human in the loop for anything sensitive. Tags: ai, webdev, programming, testing Disclosure: I publish Pointchecknote; a fuller walkthrough is here: https://pointchecknote.com/en/posts/2026-08-05-playwright-mcp-claude/ https://pointchecknote.com/en/posts/2026-08-05-playwright-mcp-claude/