Chrome Devtools MCP vs PWA Debug Layer

A side-by-side look at the Chrome Devtools MCP and PWA Debug Layer MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Chrome Devtools MCP logoChrome Devtools MCPBrowser Automation · Local subprocess (stdio)Chrome DevTools for coding agents65GreatAuth: no auth requiredPWA Debug Layer logoPWA Debug LayerBrowser Automation · Local subprocess (stdio)Debug PWAs in your real browser via MCP: service-worker, cache, installability & framework state.53GoodAuth: not declared

Verdict: choose Chrome Devtools MCP for browser automation work as a local process; choose PWA Debug Layer for browser automation as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Chrome Devtools MCP logoChoose Chrome Devtools MCP when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You want tools like click, drag, fill.
Explore Chrome Devtools MCP

PWA Debug Layer logoChoose PWA Debug Layer when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like host_status, host_list_registrations, session_ping.
Explore PWA Debug Layer

Feature & specification comparison

Rows where the two servers differ are marked.

SpecChrome Devtools MCP logoChrome Devtools MCPPWA Debug Layer logoPWA Debug Layer
CategoryBrowser AutomationBrowser Automation
Quality signal65/100 · Great53/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNo auth requiredNot declared
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars54,0080
Directory activity 6 views 0 installs 0 upvotes 0 views 0 installs 0 upvotes
Tools5627

Tools & capabilities

Chrome Devtools MCP tools 56

  • click
  • drag
  • fill
  • fill_form
  • handle_dialog
  • hover
  • press_key
  • type_text
  • upload_file
  • click_at
  • close_page
  • list_pages
  • +44 more on the listing page

PWA Debug Layer tools 27

  • host_statusInstall/liveness state: registered IDs, manifest paths, launcher path, active connections. Cheap, idempotent. **Always call first.
  • host_list_registrationsRead registered IDs; destructive cleanup to re-bootstrap.
  • session_pingFull MCP → IPC → NMH → SW → page-world round-trip with typed `pageWorldError` codes + self-heal.
  • pdl_check_setupDiagnose setup → `{ ok, gaps[], recommendations[] }` (CDP reachable, manifest installed, extension present, ID registered).
  • pdl_browser_statusManaged launches (browser, profile mode, port, pid) with live debug-port re-probe + extension SW heartbeat.
  • console_tailCursor-paginated, filterable tails of the persistent capture ring buffers (memory + disk spill).
  • recent_eventsRecent captured events across kinds for quick verification.
  • evaluateEvaluate an expression in the page world.
  • session_recordrrweb session recording + cursor-paginated replay.
  • source_map_resolveResolve generated stack frames to original `src/…:line:col`.
  • settings_list_schemaRead the typed settings schema; get/set values (allowlist, capture filters, disk-spill, etc.).
  • sw_statusService-worker registrations: installing/waiting/active versions, `updateViaCache`, controller, and whether an update is stuck **waiting** (the #1 "why isn't my update showing").
  • +15 more on the listing page

Ready-to-paste client configs

Paste 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.

Chrome Devtools MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "chrome-devtools-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp"
      ]
    }
  }
}

PWA Debug Layer

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "pwa-debug-layer": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest"
      ]
    }
  }
}

Frequently asked questions

Chrome Devtools MCP is categorized under Browser Automation and uses a local stdio subprocess. PWA Debug Layer belongs to Browser Automation and uses a local stdio subprocess. Pick Chrome Devtools MCP for browser automation work and PWA Debug Layer for browser automation.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Chrome Devtools MCP is listed as free. Auth: no auth required. PWA Debug Layer has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add chrome-devtools-mcp and pwa-debug-layer as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Chrome Devtools MCP has a quality signal of 65/100 (Great) with 6 views, 0 installs and 54,008 GitHub stars. PWA Debug Layer has 53/100 (Good) with 0 views, 0 installs and 0 GitHub stars.