Skip to content

Releases: mozilla/firefox-devtools-mcp

v0.9.9

Choose a tag to compare

@juliandescottes juliandescottes released this 02 Jul 16:09

What's Changed

Full Changelog: v0.9.8...v0.9.9

v0.9.8

Choose a tag to compare

@juliandescottes juliandescottes released this 02 Jul 10:24

What's Changed

Full Changelog: v0.9.7...v0.9.8

v0.9.6

Choose a tag to compare

@juliandescottes juliandescottes released this 26 Jun 14:48

What's Changed

New Contributors

Full Changelog: v0.9.5...v0.9.6

v0.9.5

Choose a tag to compare

@juliandescottes juliandescottes released this 11 Jun 17:57

Changed

  • Bug 2046777 - fix: use about:blank as start url instead of about:home by @juliandescottes in #94

Full Changelog: v0.9.4...v0.9.5

v0.9.4

Choose a tag to compare

@juliandescottes juliandescottes released this 04 Jun 15:57

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

Choose a tag to compare

@juliandescottes juliandescottes released this 18 May 06:42

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 creates the user home directory

Changed

  • Package renamed from firefox-devtools-mcp to @mozilla/firefox-devtools-mcp
  • License changed to dual MIT OR Apache-2.0
  • Reduced emoji usage in MCP log messages

0.9.2

Choose a tag to compare

@freema freema released this 19 Apr 11:45

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

  • Privileged context state not preserved across tool calls: set_firefox_prefs and list_extensions no longer silently revert a privileged context selection
  • Session cleanup on connection failure: getFirefox() now closes the failed instance to prevent zombie geckodriver processes and Marionette session locks

Changed

  • Breaking: Removed --marionette-host CLI parameter (connect-existing mode now uses localhost only)
  • Rewrote connect-existing mode to use Selenium's native --connect-existing feature via ServiceBuilder, replacing the custom GeckodriverHttpDriver HTTP client (~530 lines removed)
  • Replaced custom IDriver/IElement/IBiDi interfaces with native WebDriver/WebElement from selenium-webdriver
  • Improved error messages for BiDi-dependent features (console/network) to suggest --remote-debugging-port
  • Pinned all dependency versions for build reproducibility
  • Updated dependencies: @modelcontextprotocol/sdk 1.29.0, tsup 8.5.0, tsx 4.21.0, typescript-eslint 8.58.0

Full Changelog: 0.9.1...0.9.2

0.9.1

Choose a tag to compare

@freema freema released this 29 Mar 15:11

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 unit tests for connect-existing mode (BiDi, session cleanup, reconnect)

Contributors

Full Changelog: 0.9.0...0.9.1

0.9.0

Choose a tag to compare

@freema freema released this 28 Mar 02:26

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 (--pref name=value) and runtime tools (set_firefox_prefs, get_firefox_prefs)
  • Environment variables & output capture--env and --output-file CLI flags
  • WebDriver BiDi commands — direct support for sending BiDi commands
  • MOZ_LOG support — Firefox logging integration

Fixes

  • Use native --profile arg for reliable profile loading
  • Wait for WebSocket ready before sending BiDi commands
  • Fix pref tools failing when env var passed via --env
  • Handle disconnected Firefox gracefully in restart_firefox
  • Don't kill unrelated Firefox processes on test cleanup

Breaking Changes

  • Script evaluation and privileged context are now opt-in via --enable-script and --enable-privileged-context flags
  • Removed non-English documentation files

Contributors

Full Changelog: 0.8.1...0.9.0

0.8.1

Choose a tag to compare

@freema freema released this 17 Mar 18:33

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: 0.8.0...0.8.1