FD

Firefox DevTools MCP

Mozilla's server that lets an agent drive and inspect Firefox over WebDriver BiDi: browse, fill forms, read the console and network, and debug web pages.

🧭 Browser automationGitHub stars509Updated 2026-10-20By MozillaAuth: Not checked yetGitHub ↗

Test results

Last passed 2026-10-23
Claude CodePassed2026-10-23 · install, connect, tools, agent taskTested with Claude Code 2.1.296 · @mozilla/firefox-devtools-mcp 0.10.6 · connected in 2.7s
CursorPassed2026-10-23 · install, connect, tools, agent taskTested with Cursor CLI 2026.10.22-27dcf5f · @mozilla/firefox-devtools-mcp 0.10.6 · connected in 1.4s
Claude DesktopNot tested yet—
ChatGPT (Codex)Passed2026-10-23 · install, connect, tools, agent taskTested with Codex CLI 0.162.0-alpha.17.2 · @mozilla/firefox-devtools-mcp 0.10.6 · connect time not recorded

Server package tested: @mozilla/firefox-devtools-mcp 0.10.6 (npm, Node v20.19.2; resolved 2026-10-23)

Direct and key dependencies as resolved: @modelcontextprotocol/sdk 1.29.0 · express 5.3.0 · geckodriver 6.0.2 · selenium-webdriver 4.36.0 · ws 8.21.0 · yargs 17.7.2 · zod 4.6.7 · zod-to-json-schema 3.25.2

All 136 resolved dependencies
@bazel/runfiles==6.5.0
@hono/node-server==1.19.17
@modelcontextprotocol/sdk==1.29.0
@wdio/logger==9.29.1
@zip.js/zip.js==2.24.0
accepts==2.0.0
agent-base==7.1.4
ajv==8.20.0
ajv-formats==3.0.1
ansi-regex==5.0.1, 6.4.0
ansi-styles==4.3.0
body-parser==2.4.0
bytes==3.1.2
call-bind-apply-helpers==1.0.2
call-bound==1.0.4
chalk==5.6.2
cliui==8.0.1
color-convert==2.0.1
color-name==1.1.4
content-disposition==2.0.1
content-type==1.0.5, 2.1.0
cookie==0.7.2
cookie-signature==1.2.2
core-util-is==1.0.3
cors==2.8.6
cross-spawn==7.0.6
debug==4.4.3
decamelize==6.0.1
depd==2.0.0
dunder-proto==1.0.1
ee-first==1.1.1
emoji-regex==8.0.0
encodeurl==2.0.0
es-define-property==1.0.1
es-errors==1.3.0
es-object-atoms==1.1.2
escalade==3.2.0
escape-html==1.0.3
etag==1.8.1
eventsource==3.0.7
eventsource-parser==3.1.1
express==5.3.0
express-rate-limit==8.7.1
fast-deep-equal==3.1.3
fast-uri==3.1.9
finalhandler==2.1.1
forwarded==0.2.0
fresh==2.0.0
function-bind==1.1.2
geckodriver==6.0.2
get-caller-file==2.0.5
get-intrinsic==1.3.0
get-proto==1.0.1
gopd==1.2.0
has-symbols==1.1.0
hasown==2.0.4
hono==4.13.13
http-errors==2.0.1
http-proxy-agent==7.0.2
https-proxy-agent==7.0.6
iconv-lite==0.7.3
immediate==3.0.6
inherits==2.0.4
ip-address==10.7.4
ipaddr.js==1.9.1
is-fullwidth-code-point==3.0.0
is-promise==4.0.0
isarray==1.0.0
isexe==2.0.0
jose==6.2.13
json-schema-traverse==1.0.0
json-schema-typed==8.0.2
jszip==3.10.2
lie==3.3.0
loglevel==1.9.2
loglevel-plugin-prefix==0.8.4
math-intrinsics==1.1.0
media-typer==1.1.1
merge-descriptors==2.0.0
mime-db==1.54.0
mime-types==3.0.2
modern-tar==0.3.5
ms==2.1.3
negotiator==1.1.0
object-assign==4.1.1
object-inspect==1.13.4
on-finished==2.4.2
once==1.4.0
pako==1.0.11
parseurl==1.3.3
path-key==3.1.1
path-to-regexp==8.4.2
pkce-challenge==5.0.1
process-nextick-args==2.0.1
proxy-addr==2.0.8
qs==6.16.1
range-parser==1.3.0
raw-body==3.0.2
readable-stream==2.3.8
require-directory==2.1.1
require-from-string==2.0.2
ret==0.5.1
router==2.2.0
safe-buffer==5.1.2
safe-regex2==5.1.2
safer-buffer==2.1.2
selenium-webdriver==4.36.0
send==1.2.1
serve-static==2.2.1
setimmediate==1.0.5
setprototypeof==1.2.0
shebang-command==2.0.0
shebang-regex==3.0.0
side-channel==1.1.1
side-channel-list==1.0.1
side-channel-map==1.0.1
side-channel-weakmap==1.0.2
statuses==2.0.2
string-width==4.2.3
string_decoder==1.1.1
strip-ansi==6.0.1, 7.2.0
tmp==0.2.7
toidentifier==1.0.1
type-is==2.1.0
unpipe==1.0.0
util-deprecate==1.0.2
vary==1.1.2
which==2.0.2
wrap-ansi==7.0.0
wrappy==1.0.2
ws==8.21.0
y18n==5.0.8
yargs==17.7.2
yargs-parser==21.1.1
zod==4.6.7
zod-to-json-schema==3.25.2

Captured with: npm ls --all --json in the npx env.

Full result per app: Does it work with Claude Code? · Does it work with Cursor? · Does it work with ChatGPT (Codex)?

Protocol: starts, 35 tools listed · 2026-10-23 · connected in 3.9s
🧪 Test-box note: Headless Firefox (official Mozilla tarball in the box user folder, passed with --firefox-path).

Real test

Passed

One run from our records. When two runs share a date, we show a failure if there is one.

Client
ChatGPT (Codex) · Codex CLI 0.162.0-alpha.17.2
Date
Oct 23, 2026
The task we gave
Using only the firefox-devtools-mcp MCP browser tools, open http://127.0.0.1:4399/click.html, click the button labeled 'Reveal code', and reply with the code that appears on the page.
What it promised
details not recorded for this run
What happened

Tool calls:

firefox-devtools-mcp:new_pagefirefox-devtools-mcp:take_snapshotfirefox-devtools-mcp:click_by_uidfirefox-devtools-mcp:get_page_text

Tool result

{"content": [{"type": "text", "text": "new page [1] \u2192 http://127.0.0.1:4399/click.html"}], "structured_content": null}

Agent reply

The code is **TP-4242**.
Verdict
Passed

Install

claude mcp add firefox-devtools-mcp -- npx -y @mozilla/firefox-devtools-mcp@latest --headless --viewport 1280x720

Run in your terminal. This exact command is what our harness runs in Claude Code; see the results above.

{
  "mcpServers": {
    "firefox-devtools-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mozilla/firefox-devtools-mcp@latest",
        "--headless",
        "--viewport",
        "1280x720"
      ]
    }
  }
}

Save as .cursor/mcp.json. This exact config is what our harness runs in Cursor; see the results above.

{
  "mcpServers": {
    "firefox-devtools-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mozilla/firefox-devtools-mcp@latest",
        "--headless",
        "--viewport",
        "1280x720"
      ]
    }
  }
}

Add to claude_desktop_config.json and restart Claude Desktop. Tested on the Linux beta; see the results above.

[mcp_servers.firefox-devtools-mcp]
command = "npx"
args = ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"]

Add to ~/.codex/config.toml (shared by the ChatGPT (Codex) CLI and the ChatGPT desktop app; Codex runs inside the ChatGPT desktop app). Tested with the ChatGPT (Codex) CLI bundled in the ChatGPT desktop app; see the results above.

Not connecting? Troubleshooting: Claude Code · Cursor · Claude Desktop · ChatGPT (Codex)

Test history

DateCheckResultVersions tested
2026-10-23Protocol (direct stdio)Protocol: starts, 35 tools listed@mozilla/firefox-devtools-mcp 0.10.6 · server reported v0.10.6
2026-10-23Claude CodePassed
install, connect, tools, agent task
Claude Code 2.1.296 · @mozilla/firefox-devtools-mcp 0.10.6
2026-10-23CursorPassed
install, connect, tools, agent task
Cursor CLI 2026.10.22-27dcf5f · @mozilla/firefox-devtools-mcp 0.10.6
2026-10-23ChatGPT (Codex)Passed
install, connect, tools, agent task
Codex CLI 0.162.0-alpha.17.2 · @mozilla/firefox-devtools-mcp 0.10.6

Tools seen by our harness (35)

list_pagesnew_pagenavigate_pageselect_pageclose_pageget_page_texttake_snapshotresolve_uid_to_selectorclear_snapshotclick_by_uidhover_by_uidfill_by_uiddrag_by_uid_to_uidfill_form_by_uidupload_file_by_uidpress_keytype_textscreenshot_pagescreenshot_by_uidprint_pagelist_downloadsclear_downloadsset_download_behavioraccept_dialogdismiss_dialognavigate_historyset_viewport_sizeget_firefox_outputget_firefox_infoclose_firefox_sessioninstall_extensionuninstall_extensionscreencast_startscreencast_stopevaluate_script
Sponsors