A side-by-side look at the Browserless and Playwright MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Browserless for browser automation work as a local process; choose Playwright MCP Server for browser automation as a local process. You can also run both side by side in one mcpServers block.
browserless_content, browserless_scrape, browserless_screenshot.start_codegen_session, end_codegen_session, get_codegen_session.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 59/100 · Good | 67/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 5,667 |
| Directory activity | 1 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 4 | 33 |
| Full listing | View Browserless | View Playwright MCP Server |
browserless_contentRender a URL in headless Chromium and return the fully-executed HTML (after JavaScript runs) — use this when a plain fetch returns an empty shell or JS-rendered SPA. Example: browserless_content({ url: "https://example.com", _apiKey: "your-token" })browserless_scrapeExtract structured data from a rendered page using CSS selectors. Returns text, inner HTML, attributes and geometry for every matched element. Example: browserless_scrape({ url: "https://news.ycombinator.com", elements: [{ selector: ".titleline a" }], _apiKey: "your-token" })browserless_screenshotCapture a screenshot of a rendered page. Returns the image byte-length and metadata only (the binary PNG is NOT inlined). Example: browserless_screenshot({ url: "https://example.com", fullPage: true, _apiKey: "your-token" })browserless_smart_scrapeAI-assisted extraction: tries a plain HTTP fetch first and falls back to a full headless browser, returning content in the requested formats (html, markdown, links, screenshot, pdf). Best when you just want clean page content and do not know the right selectors. Example: browserless_smart_scrape({ url: "https://example.com", formats: ["markdown", "links"], _apiKey: "your-token" })start_codegen_sessionStart a new code generation session to record Playwright actionsend_codegen_sessionEnd a code generation session and generate the test fileget_codegen_sessionGet information about a code generation sessionclear_codegen_sessionClear a code generation session without generating a testplaywright_navigateNavigate to a URLplaywright_screenshotTake a screenshot of the current page or a specific elementplaywright_clickClick an element on the pageplaywright_iframe_clickClick an element in an iframe on the pageplaywright_iframe_fillFill an element in an iframe on the pageplaywright_fillfill out an input fieldplaywright_selectSelect an element on the page with Select tagplaywright_hoverHover an element on the pagePaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"browserless": {
"command": "npx",
"args": [
"-y",
"@pipeworx/mcp-browserless"
]
}
}
}
{
"mcpServers": {
"executeautomation-playwright-mcp-server": {
"command": "npx",
"args": [
"-y",
"@executeautomation/playwright-mcp-server"
]
}
}
}