A side-by-side look at the CDPM 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 CDPM 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.
browser_status, browser_launch, browser_close.browser_close, browser_resize, browser_console_messages.Rows where the two servers differ are marked.
| Spec | C CDPM | |
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 60/100 · Good | 89/100 · Excellent |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Verified |
| GitHub stars | 2 | 38,407 |
| Directory activity | 1 views 0 installs 0 upvotes | 6 views 0 installs 0 upvotes |
| Tools | 28 | 25 |
| Full listing | View CDPM | View Playwright MCP |
browser_statusLive slots, tabs, openers, last actions, summaries, dialogsbrowser_launchStart a slot — only when the user asks; no `slot` = lowest free; `slots` (list) or `count` start several at once, lowest first; `url` / `urls` open a start page right away. Window or headless is the user's choice: if they didn't say, Claude asks first (without `headless`, a closed slot is not start…browser_closeClose gracefully (profile kept)browser_tabsList / open in background (returns ID) / close / bring to front (only when the user wants)browser_snapshotAccessibility text with refs; `page`, `find`, `refbrowser_textReadable text (main/article first, or one `ref`), paginatedbrowser_screenshotVisible area as PNG, background tabs included; no full-page capturebrowser_navigateWaits for load; slow servers are reported as "still loading", not as errorsbrowser_clickReal mouse click; reports covering elements, new tabs, form-validation failuresbrowser_typeReal key events per character (`clear`, `submit`, `fast`); verifies the value and does not press Enter for `submit` if the value differs (the site rejected or reformatted the input); date/time inputs are set after format validationbrowser_fillFill several inputs on one page in order, then optionally `submit` ("Enter" or a button ref); stops at the first failure, page change, dialog or a field whose value differs from what was typed (nothing is submitted then)browser_dialogAccept or dismiss an open alert/confirm/prompt/beforeunload (`text` for prompt). Claude decides from the messagebrowser_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": {
"igelharine-cdpm": {
"command": "npx",
"args": [
"-y",
"cdpm-mcp"
]
}
}
}
{
"mcpServers": {
"microsoft-playwright-mcp": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest"
]
}
}
}