Install the Firefox extension
Use Firefox 153 or later, or a Zen build based on Firefox 153 or later. Build the current source:dist/firefox-extension/ and dist/browspark-firefox-extension.zip. The separate dist/browspark-extension.zip is for Chromium.
- Open
about:debugging#/runtime/this-firefoxin Firefox or Zen. - Choose Load Temporary Add-on and select
dist/firefox-extension/manifest.jsonor the Firefox ZIP. - Register the companion from the same source revision with your MCP client: use command
bunand the absolute path tocompanion/src/index.tsas its argument. This keeps the extension and companion protocol versions aligned before a release is published. - Open the Browspark toolbar icon. If shown, choose Allow website access, then Enable Firefox automation to grant user-script permission. Share the HTTP or HTTPS tabs the agent may access.
- Ask the agent to call
browser_status, then use the listedtabIdor choose the Firefox profile’sbrowserIdwhen opening a new tab.
about:debugging afterwards. Permanent installation in standard Firefox needs Mozilla signing. See Mozilla’s temporary installation instructions.
The extension requests access to all websites (<all_urls>) because Firefox requires this permission for native tab screenshots, plus user-script execution for page automation. Browspark still limits automation to shared HTTP/HTTPS tabs and checks sharing before each command. It connects to your local companion; content returned to your MCP client may be processed by your chosen AI provider. Firefox browser pages, add-on pages, protected Mozilla sites and local files are unavailable.
Extension tool coverage
The extension provides shared-tab automation through Firefox WebExtension APIs and a sandboxed user-script world. It does not expose a native debugger. See the coverage notes below before choosing between an existing shared tab and a separate developer profile.
All 43 tool names remain registered. Unsupported actions return explicit errors for the selected Firefox extension tab. Use a separate Firefox or Zen developer session when you need supported BiDi capabilities such as native input or network inspection; that session has its own profile and logins. Use Chromium developer mode for CDP or Lighthouse.
Launch a separate Firefox or Zen developer browser
Install the browser, register the companion, and ask your agent to open a Firefox or Zen developer session. For Firefox it callsbrowser_session with:
browser to "zen" and use its own context, such as "zen". You can run both alongside Chrome and Brave. Use a returned tab ID with browser_snapshot, browser_click, browser_read, or another tool. When opening another tab, specify mode: "dev" and the intended context. See using multiple browsers.
browserPath selects the executable for the chosen browser. Set BROWSPARK_FIREFOX for Firefox or BROWSPARK_ZEN for Zen in your MCP server’s environment; the existing firefoxPath option remains supported. Other Firefox-based browsers, such as LibreWolf, can be selected with browser: "firefox" and an executable path when their build enables WebDriver BiDi. Custom builds may disable remote automation or omit commands; an executable path does not guarantee the same capabilities in every fork.
Profiles persist under ~/.browspark/profiles/.firefox/<context> for Firefox and ~/.browspark/profiles/.zen/<context> for Zen (under BROWSPARK_PROFILES when set). They are separate from each other and from Chromium profiles, including the default context. A context name can belong to only one running browser at a time. Pass the matching browser when deleting a stopped context.
Developer-mode tool coverage
Unsupported actions return an explicit error. They do not silently run in Chrome or substitute results from another browser.
Network capture does not include WebSocket/SSE frames, TLS certificate details, remote IPs, or Chrome initiator stacks. Network throttling and service-worker bypass are unavailable. Replaying a request with a body requires its body to be supplied explicitly when the original was not captured.
Literal multiline text in
browser_fill or the text argument of browser_key is unavailable in Firefox and Zen; it returns an error before typing. Ordinary text and explicit keyboard actions use native browser input.
These developer-mode limits apply to both Firefox and Zen. The generated CDP capability matrix describes Chromium only. devtools_capabilities reports the selected tab’s backend and capabilities; a supported domain does not imply that every Chrome command in it is available.
Launch options
headless: trueruns the browser without a window. Use screenshots to inspect it; the Chrome live screencast is unavailable.proxyaccepts an HTTP or SOCKS proxy without embedded credentials.argspasses additional command-line switches to the selected browser.devtools: trueand unpackedextensionsare unavailable on Firefox and Zen and return an error.
