Firefox DevTools MCP
An MCP server from Mozilla: an agent drives Firefox through WebDriver BiDi, reads the console and network, takes page snapshots and profiles loading
- 517 ★ on the repository
- Last commit
Broad access
Why this level
- The agent acts in the browser on your behalf and sees cookies and saved sessions of the profile
- The evaluate_script tool in the default preset runs JavaScript on open pages
- Pages of external sites can slip instructions to the agent, and Android mode wipes app data
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/firefox-devtools-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent acts in the browser on your behalf and sees cookies and saved sessions of the profile
- The evaluate_script tool in the default preset runs JavaScript on open pages
- Pages of external sites can slip instructions to the agent, and Android mode wipes app data
This is third-party code. Review the repository files before installing.
What it does
The server lets an agent control a real Firefox through WebDriver BiDi with the help of Selenium. It works in two scenarios. In the first, the agent browses sites like a user: reads pages, fills forms and walks multi-step flows. In the second, it opens the page you are building and inspects it with developer tools: the console, network requests, the debugger and the profiler. The agent first takes a page snapshot with take_snapshot, gets element IDs and then works with them: click_by_uid, fill_by_uid. A list of network requests and downloads is captured all the time, the console is read with list_console_messages and screenshot_page takes a screenshot. Bulky output can go to a file with the saveTo parameter so it does not eat the agent's context. The tool set is chosen by a preset: slim, basic by default, developer, mozilla and all. For Claude Code there is a ready plugin with the skills browser-automation, navigate, debug, screenshot and web-performance and two subagents, e2e-tester and web-extractor.
Who it is for. For web developers and testers who need to check a site specifically in Firefox from Claude Code, Codex, Cursor or Cline.
Good fit when
- Layout behaves differently in Firefox than in Chrome and you want the console, network requests and a page snapshot seen through an agent
- You need to run a login flow: the agent fills the form, submits it and reports where a request failed
- You want to profile page loading and analyze the result with the web-performance skill's playbook
- You need to automate Firefox for Android: the server launches it on a device through adb
- You want to save a large network log to a file and analyze it later without cluttering the agent's context
Not a fit when
- You need Chrome: the server drives only Firefox, and the catalog has chrome-devtools-mcp for Chrome
- You need a cloud run: the server requires a local Firefox and does not run on cloud hosting such as glama.ai
- You plan to send an agent to foreign or unchecked sites with your main profile: a page can slip instructions to the agent
- The machine has Node.js below 20.19 or Firefox below 100
- A single screenshot is enough: it is simpler to open the page and save it yourself
Example request
Open localhost:3000 in Firefox, take a page snapshot, show console errors and network requests with 4xx and 5xx statuses, then save a screenshotMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
START_URL- The URL opened on start
FIREFOX_HEADLESS- The value true runs Firefox without a window
TOOL_PRESET- The tool preset: slim, basic, developer, mozilla or all
Limitations
You need Node.js 20.19 or later and Firefox 100 or later; the browser path is detected or set with --firefox-path. The Claude Code plugin enables script tools that need Firefox 153 or later, while without them Firefox 120 is enough.
The default basic preset includes evaluate_script, which runs JavaScript on a page. To drop it, start the server with --tool-preset slim. The prefs, privileged, launch and bidi modules exist only in Mozilla's internal build: the public package skips them even when requested. The version is still 0.x.
Android mode wipes all data of the target app before every session, so it requires the --android-wipe-app-data flag and a separate browser build for automation. The --connect-existing mode turns on Marionette, which sets navigator.webdriver to true, and sites with bot protection may react. The author does not say whether it works from Russia.
How to disable. Remove the server with claude mcp remove firefox-devtools or delete the entry from your client configuration. The plugin comes off through the /plugin menu. A separate Firefox profile created for the agent can be erased; it sits in the firefox_devtools_mcp_profile subfolder.
FAQ
How do I connect Firefox to Claude Code through MCP?
Run claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest. Add -- --headless --viewport 1280x720 if you do not need the browser window, or set START_URL and FIREFOX_HEADLESS through --env. For Codex the command is the same but starts with codex mcp add.
How does Firefox DevTools MCP differ from chrome-devtools-mcp?
It drives Firefox through WebDriver BiDi and Selenium, whereas chrome-devtools-mcp works with Chrome. Pick this server when a site must be checked in Firefox, including Firefox for Android.
Is it safe to give an agent my main Firefox profile?
No. The agent gets access to everything the browser can reach, including cookies and saved sessions. Mozilla advises a dedicated profile, a limited tool set and caution with sites whose pages can manipulate an agent.
What do the tool presets mean?
The presets slim, basic, developer, mozilla and all form a nested series, each wider than the last. Basic, the default, includes evaluate_script, and developer adds network, console, debugging and the profiler. An explicit module list with the --tools flag overrides the preset.
Can I attach to a Firefox that is already running?
Yes, with the --connect-existing flag. Start Firefox with --marionette and --remote-debugging-port. Afterwards restart the browser normally, because Marionette changes fingerprint signals and can trigger bot protection.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server, agent and skills for end-to-end UI tests where the agent drives the computer through vision on cloud machines
An MCP server that spins up several browser agents to test a site for broken links, UI bugs and accessibility issues
One binary for agent browser automation: a CLI with browser and check skills, an MCP server and clients for JS, Python and Java
A community Playwright MCP server: browser automation, screenshots, device emulation and test code generation
The official MCP server debugger: web UI, automation CLI and terminal UI in one package
CLI, MCP server and typed Node.js API so an agent can verify its changes in a live mobile app on iOS, Android and more
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Firefox DevTools MCP (this entry) | yes | not required | 517 | |
| Chrome DevTools MCP | yes | not required | 54,043 | the same idea for the Chrome browser |
| Playwright MCP | yes | not required | 38,551 | browser automation through Playwright, not tied to Firefox developer tools |
README in short
The document opens with two use cases and security warnings: a dedicated profile, caution with sites and a choice of modules. It continues with requirements, installation for Claude Code and Codex by command or configuration edit, running with MCP Inspector and a table of flags. Separate sections explain tool presets, Android mode with a full wipe of app data, attaching to a running Firefox and saving bulky output to a file. At the end come troubleshooting tips, including a workaround for npx failing on Windows 10.