A side-by-side look at the Browserless and Playwright MCP 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 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.browser_close, browser_resize, browser_console_messages.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 59/100 · Good | 89/100 · Excellent |
| 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 | Verified |
| GitHub stars | 0 | 38,289 |
| Directory activity | 1 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 4 | 25 |
| Full listing | View Browserless | View Playwright MCP |
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" })browser_closeClose the pagebrowser_resizeResize the browser windowbrowser_console_messagesReturns all console messagesbrowser_handle_dialogHandle a dialogbrowser_emulate_mediaEmulate CSS media features for the page, for example switch between the light and dark color scheme. Omitted parameters are left unchanged; null clears an override.browser_evaluateEvaluate JavaScript expression on page or elementbrowser_file_uploadUpload one or multiple filesbrowser_dropDrop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.browser_findSearch the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref.browser_fill_formFill multiple form fieldsbrowser_press_keyPress a key on the keyboardbrowser_typeType text into editable elementPaste 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": {
"microsoft-playwright-mcp": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest"
]
}
}
}