Browser automation#Browser automation

Firefox DevTools MCP: drive and debug Firefox from an agent

Mozilla's official Firefox MCP server over WebDriver BiDi. Agents click and fill by snapshot, and read network requests, console logs and profiler data.

Project and installation docs

View project

https://github.com/mozilla/firefox-devtools-mcp

Almost every browser MCP server is built around Chromium, so when a site breaks only in Firefox, the agent has nothing to work with. Firefox DevTools MCP is maintained by Mozilla. It drives a local Firefox over WebDriver BiDi (through Selenium), so the agent can operate the page and also see the network and console data you’d normally open DevTools for. It had about 460 stars as of 2026-10-06.

What it does

  • Snapshot-based actions: take_snapshot assigns IDs to page elements, then click_by_uid and fill_by_uid act on them. list_pages and navigate_page handle tabs and navigation.
  • Debugging data: list_network_requests records traffic all the time, get_network_request shows one request, list_console_messages reads the console and screenshot_page grabs the screen.
  • Tools by module: --tool-preset offers slim, basic, developer, mozilla and all. Only developer adds the debugger, network, console and profiler modules, mozilla adds a privileged context (needs MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1), and --tools lists exact modules, overriding the preset.
  • Profiling: under developer, profiler_start and profiler_stop record a performance profile and save it to the downloads folder automatically; large output is written to a restricted set of directories unless --unrestricted-save-paths lets saveTo write anywhere on disk.
  • Existing browsers and Android: --connect-existing attaches to a Firefox started with Marionette, and --android-device drives Firefox on an Android device.

Who it’s for

  • Front-end developers who want Claude Code or Codex to reproduce a Firefox-only bug and inspect the failing requests.
  • QA engineers adding Firefox to agent-driven cross-browser checks.

Setup

Needs Node.js 20.19 or newer and Firefox 100+ installed. In Claude Code:

claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest

Our take

It covers what Playwright MCP mostly leaves out: real Firefox, with DevTools-level network, console and profiling data, from Mozilla itself. The security notes are blunt and worth following. Use a dedicated Firefox profile, never your everyday one, because the agent can reach everything the browser can, cookies included. The default basic preset already includes evaluate_script; switch to slim if you don’t want arbitrary scripts. The mozilla preset opens up far more privileged access, which is why it’s kept out of the defaults on purpose. Android mode wipes the target app’s data every session, so use a build installed only for automation. Dual-licensed MIT and Apache-2.0.