Firefox DevTools MCP vs PWA Debug Layer

A side-by-side look at the Firefox 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.

Firefox DevTools MCP logoFirefox DevTools MCPBrowser Automation · Local subprocess (stdio)Control and debug Firefox: navigate, fill forms, inspect network and console, profile.72GreatAuth: 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.59GoodAuth: not declared

Verdict: choose Firefox 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?

Firefox DevTools MCP logoChoose Firefox 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 list_pages, new_page, navigate_page.
Explore Firefox 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 click, close_page, drag.
Explore PWA Debug Layer

Feature & specification comparison

Rows where the two servers differ are marked.

SpecFirefox DevTools MCP logoFirefox DevTools MCPPWA Debug Layer logoPWA Debug Layer
CategoryBrowser AutomationBrowser Automation
Quality signal72/100 · Great59/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 stars5160
Directory activity 5 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools3532

Tools & capabilities

Firefox DevTools MCP tools 35

  • list_pagesList open tabs (index, title, URL). Selected tab is marked.
  • new_pageOpen new tab at URL. Returns tab index.
  • navigate_pageNavigate selected tab to URL.
  • select_pageSelect active tab by index, URL, or title. Index takes precedence.
  • close_pageClose tab by index.
  • get_page_textGet the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.
  • take_snapshotCapture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.
  • resolve_uid_to_selectorResolve UID to CSS selector. Fails if the element is gone.
  • clear_snapshotClear snapshot UIDs. Usually not needed.
  • click_by_uidClick element by UID. Set dblClick for double-click.
  • hover_by_uidHover over element by UID.
  • fill_by_uidFill text input/textarea by UID.
  • +23 more on the listing page

PWA Debug Layer tools 32

  • clickClicks on the provided element
  • close_pageCloses the page by its index. The last open page cannot be closed.
  • dragDrag an element onto another element
  • emulateEmulates various features on the target page. Each call replaces all emulation settings (except extraHttpHeaders), so pass all desired settings in a single call.
  • evaluate_scriptEvaluate JavaScript inside the target page. The source can be provided inline or loaded from a local file. Returns the response as JSON, so returned values have to be JSON-serializable.
  • fillType text into an input, text area or select an option from a <select> element.
  • fill_formFill out multiple form elements (inputs, selects, checkboxes, radios) at once. ALWAYS prefer this tool over multiple individual 'fill' or 'click' calls when interacting with forms. It is significantly faster, more reliable, and reduces turn count. Example: Fill username, password, and check "Remember Me" in one call.
  • get_console_messageGets a console message by its ID. You can get all messages by calling list_console_messages.
  • get_css_stylesRetrieve matched CSS rules, inline styles (element.style), inherited styles, custom properties, and cascade wrappers (@layer, @media, @container, @scope) for an element identified by its UID. Rules are ordered from highest to lowest cascade precedence and include source line numbers (e.g. index:196). Active (winning) declarations have no prefix tag, while (losing) overridden declarations are prefixed with [overloaded]. Treat the output as authoritative and complete. Results are paginated (10 rules per page by default); use pageIdx to page through the remaining rules. Requires a UID from take_snapshot.
  • get_network_requestGets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel. Useful for inspecting request headers (including 'Cookie') and response headers (including 'Set-Cookie' and directives).
  • handle_dialogIf a browser dialog was opened, use this command to handle it
  • hoverHover over the provided element
  • +20 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.

Firefox DevTools MCP

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

PWA Debug Layer

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

Frequently asked questions

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

Firefox 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 firefox-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, Firefox DevTools MCP has a quality signal of 72/100 (Great) with 5 views, 0 installs and 516 GitHub stars. PWA Debug Layer has 59/100 (Good) with 1 views, 0 installs and 0 GitHub stars.