Enables browser automation and web interaction through Firefox via WebDriver BiDi, providing tools for page navigation, element interaction, network monitoring, screenshot capture, and console message access.
Firefox DevTools MCP
Model Context Protocol server for automating Firefox via WebDriver BiDi (through Selenium WebDriver). Works with Claude Code, Claude Desktop, Cursor, Cline and other MCP clients.
Repository: https://github.com/freema/firefox-devtools-mcp
Requirements
Node.js ≥ 20.19.0
Firefox 100+ installed (auto‑detected, or pass
--firefox-path
)
Install and use with Claude Code (npx)
Recommended: use npx so you always run the latest published version from npm.
Option A — Claude Code CLI
Pass options either as args or env vars. Examples:
Option B — Edit Claude Code settings JSON
Add to your Claude Code config file:
macOS:
~/Library/Application Support/Claude/Code/mcp_settings.json
Linux:
~/.config/claude/code/mcp_settings.json
Windows:
%APPDATA%\Claude\Code\mcp_settings.json
Option C — Helper script (local dev build)
Try it with MCP Inspector
Then call tools like:
list_pages
,select_page
,navigate_page
take_snapshot
thenclick_by_uid
/fill_by_uid
list_network_requests
(always‑on capture),get_network_request
screenshot_page
,list_console_messages
CLI options
You can pass flags or environment variables (names on the right):
--firefox-path
— absolute path to Firefox binary--headless
— run without UI (FIREFOX_HEADLESS=true
)--viewport 1280x720
— initial window size--profile-path
— use a specific Firefox profile--firefox-arg
— extra Firefox arguments (repeatable)--start-url
— open this URL on start (START_URL
)--accept-insecure-certs
— ignore TLS errors (ACCEPT_INSECURE_CERTS=true
)
Tool overview
Pages: list/new/navigate/select/close
Snapshot/UID: take/resolve/clear
Input: click/hover/fill/drag/upload/form fill
Network: list/get (ID‑first, filters, always‑on capture)
Console: list/clear
Screenshot: page/by uid
Utilities: accept/dismiss dialog, history back/forward, set viewport
Local development
Troubleshooting
Firefox not found: pass
--firefox-path "/Applications/Firefox.app/Contents/MacOS/firefox"
(macOS) or the correct path on your OS.First run is slow: Selenium sets up the BiDi session; subsequent runs are faster.
Stale UIDs after navigation: take a fresh snapshot (
take_snapshot
) before using UID tools.
Versioning
Pre‑1.0 API: versions start at
0.x
. Use@latest
with npx for the newest release.
CI and Release
GitHub Actions for CI, Release, and npm publish are included. See docs/ci-and-release.md for details and required secrets.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Firefox browser automation via WebDriver BiDi for testing, scraping, and browser control. Supports snapshot/UID-based interactions, network monitoring, console capture, and screenshots.
Related MCP Servers
- AsecurityFlicenseAqualityProvides Firefox browser automation capabilities through Playwright, allowing control of Firefox from MCP-enabled applications with features for basic automation and advanced multi-tab debugging.Last updated -299