# firefox-devtools-mcp

> Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through the Remote Debugging Protocol

- **URL**: https://www.freshcrate.ai/projects/firefox-devtools-mcp
- **Author**: mozilla
- **Category**: MCP Servers
- **Latest version**: `v0.9.4` (2026-06-04)
- **License**: MIT
- **Source**: https://github.com/mozilla/firefox-devtools-mcp
- **Language**: TypeScript
- **GitHub**: 121 stars, 27 forks
- **Registry**: github
- **Tags**: `claude-code`, `firefox`, `mcp`, `mcp-server`, `typescript`

## Description

Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through the Remote Debugging Protocol

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v0.9.4` | 2026-06-04 | High | ### Added - Support for connecting to Firefox for Android via `--android` flag  ### Fixed - Navigation to `moz-extension://` URLs no longer hangs; now uses BiDi navigate - Geckodriver binary detection on Windows |
| `0.9.3` | 2026-05-18 | High | ### Added - New `@mozilla/firefox-devtools-mcp-moz` npm package with privileged context support enabled by default - `--profile-path` now uses a dedicated subfolder to avoid corrupting existing profiles, and warns when reusing a profile that already exists  ### Fixed - Profile reuse warnings are now surfaced as MCP errors so AI assistants can see them - Network debug command now uses `statusMin=400` instead of `status="failed"` to correctly match 4xx/5xx responses - Docker image now creat |
| `0.9.2` | 2026-04-19 | High | ### Added - `evaluate_privileged_script` now detects `const`/`let`/`var` statements and rejects them with a helpful error message suggesting IIFE workaround - BiDi console and network events now degrade gracefully when Firefox Remote Agent is not running, instead of crashing - Comprehensive e2e scenario integration tests covering the full `FirefoxClient` API - Unit tests for privileged context state consistency and statement detection - Testing documentation (`docs/testing.md`)  ### Fixed - Priv |
| `0.9.1` | 2026-03-29 | Medium | ## What's Changed  ### Bug Fixes - Fixed `SERVER_VERSION` reporting `0.7.1` instead of actual package version — now reads from `package.json` dynamically - Fixed connect-existing mode: session cleanup, BiDi support, `--marionette-host` parameter (#50) - Fixed lint/type errors from PR #50 merge - Resolved 11 security vulnerabilities in dependencies (#47)  ### Improvements - Removed fragile `process.on` handlers in test setup that masked real errors and caused `MaxListenersExceededWarning` - Added |
| `0.9.0` | 2026-03-28 | Medium | ## What's Changed  ### New Features - **Content script evaluation** — evaluate JS against web pages (`--enable-script` flag) - **Privileged context support** — chrome-privileged context for Firefox internal development (`--enable-privileged-context` flag) - **WebExtension tools** — install, uninstall, and list Firefox extensions - **Firefox restart tool** — restart Firefox with new config at runtime (preserves profile path) - **Preferences configuration** — read/write Firefox prefs via CLI (`--p |
| `0.8.1` | 2026-03-17 | Low | ## What's Changed  ### Fixes - Fixed flaky snapshot integration test on Node 22 CI runners (increased Firefox startup timeout from 30s to 60s) - Upgraded all GitHub Actions from v4 to v5 (checkout, setup-node) and upload-artifact to v7 to resolve Node.js 20 deprecation warnings - Publish workflow now uses Node.js 22  **Full Changelog**: https://github.com/freema/firefox-devtools-mcp/compare/0.8.0...0.8.1 |
| `0.8.0` | 2026-03-17 | Low | ## What's Changed  ### New Feature: Connect to existing Firefox (`--connect-existing`)  You can now attach to an already-running Firefox instance instead of launching a new one. This enables automating your **existing browsing session** — with cookies, logins, and open tabs intact.  #### Usage  ```bash # Start Firefox with Marionette enabled firefox --marionette  # Run the MCP server npx firefox-devtools-mcp --connect-existing --marionette-port 2828 ```  Also supports environment variables: `CON |
| `0.7.4` | 2026-02-27 | Low | ## What's Changed * test: Add unit tests for injected browser scripts by @freema in https://github.com/freema/firefox-devtools-mcp/pull/43   **Full Changelog**: https://github.com/freema/firefox-devtools-mcp/compare/0.7.3...0.7.4 |
| `0.7.3` | 2026-02-24 | Low | ## What's Changed * docs: Document solutions for Windows MCP server errors by @EzioMercer in https://github.com/freema/firefox-devtools-mcp/pull/41  ## New Contributors * @EzioMercer made their first contribution in https://github.com/freema/firefox-devtools-mcp/pull/41  **Full Changelog**: https://github.com/freema/firefox-devtools-mcp/compare/0.7.1...0.7.3 |
| `0.7.1` | 2026-02-13 | Low | ## What's Changed * fix: Update version to 0.7.1 and simplify saveTo parameter descriptio… by @freema in https://github.com/freema/firefox-devtools-mcp/pull/39   **Full Changelog**: https://github.com/freema/firefox-devtools-mcp/compare/0.7.0...0.7.1 |

## Citation

- HTML: https://www.freshcrate.ai/projects/firefox-devtools-mcp
- Markdown: https://www.freshcrate.ai/projects/firefox-devtools-mcp.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/firefox-devtools-mcp/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
