PlugWiki
Firefox DevTools MCP logo

Firefox DevTools MCP Server: Browse and Debug Firefox with AI

OfficialLocal
Getnpm@mozilla/firefox-devtools-mcpmozilla/firefox-devtools-mcp

Lets your AI assistant open, click through, inspect and profile pages in a real Firefox on your computer.

Firefox DevTools MCP is made by Mozilla. It runs on your computer, starts a Firefox window (or attaches to one you started), and gives the assistant tools to open pages, click, type, take screenshots and read the console and network traffic. No account or API key is needed.

You need Firefox 100 or newer and Node.js 20.19 or newer. The default setup includes a tool that runs JavaScript in any page and one that installs extensions, so use a separate Firefox profile and only visit sites you trust.

Good for

  • Web developers who want the assistant to read console errors and network calls while they work
  • Testers who want multi-step flows and forms checked in Firefox, not only Chrome
  • Performance engineers recording Firefox profiles and videos
  • People who want an assistant to read pages and fill forms in Firefox

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install Firefox DevTools MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the Firefox DevTools MCP server to Claude Code. Run this command:
    
    claude mcp add firefox-devtools -- npx -y @mozilla/firefox-devtools-mcp
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js, Firefox 100 or newer installed, Node.js 20.19 or newer.

Firefox 100 or newer must be installed (auto-detected, or add the firefox-path option). Add --tool-preset slim to the arguments to drop the JavaScript tool, or --tool-preset developer for the network, console, profiler and debugger tools. Mozilla advises a dedicated Firefox profile.

Built from the package data we hold. Not yet tested by us.

Tools

  • Lists the open Firefox tabs

    Returns each open tab with its number, title and address, and marks the one the assistant is working in.

    Try: “What tabs are open in Firefox right now?”

    Read · list_pages

  • Opens a new tab at an address

    Opens a tab at the URL you give and returns its tab number. You can choose whether it waits for nothing, for the page structure, or for the full load.

    Try: “Open https://example.com in a new tab”

    Write · new_page

  • Sends the current tab to an address

    Loads a new URL in the tab the assistant is working in, with the same choice of how long to wait.

    Try: “Go to https://example.com/pricing”

    Write · navigate_page

  • Switches to another tab

    Picks the active tab by number, or by part of its address or title. The number wins if you give both.

    Try: “Switch to the tab with GitHub in the title”

    Write · select_page

  • Closes a tab

    Closes the tab with the number you give.

    Try: “Close tab 2”

    Delete · close_page

  • Reads the visible text of a page

    Returns the page text as the browser shows it, cut off at 20,000 characters unless you ask for a file. It can save the full text to a file.

    Try: “Get the text of this page and save it to a file”

    Write · get_page_text

  • Captures a page outline with element IDs

    Builds a short outline of the page where each element gets an ID that stays valid until the element goes away. Click and fill tools use those IDs. It can write the full outline to a file.

    Try: “Take a snapshot of the checkout form”

    Write · take_snapshot

  • Turns an element ID into a CSS selector

    Looks up an ID from a snapshot and returns the CSS selector for that element. It fails if the element is gone.

    Try: “Give me a CSS selector for the Submit button”

    Read · resolve_uid_to_selector

  • Forgets the saved element IDs

    Clears the element IDs from earlier snapshots. The README says it is usually not needed.

    Try: “Clear the snapshot IDs”

    Write · clear_snapshot

  • Clicks an element

    Clicks the element with the given ID. Turn on double-click to click twice.

    Try: “Click the Sign in button”

    Write · click_by_uid

  • Moves the pointer over an element

    Hovers over the element with the given ID, for menus and tooltips.

    Try: “Hover over the Products menu”

    Write · hover_by_uid

  • Fills in a text field

    Puts text into the input or text area with the given ID.

    Try: “Fill the email field with test@example.com”

    Write · fill_by_uid

Read from the source code

Permissions

high risk · 5 things to watch

High risk

By default the assistant can run JavaScript on any page you open and install extensions, so a hostile web page could steer it into acting inside your browser session. Use a dedicated Firefox profile and the slim tool preset when you do not need scripting.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It can run any JavaScript in the pages you open

    The default tool preset includes evaluate_script, so a page that manipulates the assistant could read page data or act as you on that site. Start the server with the slim preset to remove it; slim still has click, fill, file upload and tab-closing tools. github.com

  • Pointed at your normal profile, it can use your logins

    The connect-existing option attaches to a running Firefox with your cookies and sessions. Run the server with its own Firefox profile instead. github.com

  • It can install and remove Firefox extensions

    install_extension and uninstall_extension are part of the default preset. Leave out the management modules with an explicit tools list if you do not want this. github.com

  • It writes files to your disk

    Screenshots, PDFs, profiles, recordings and the saveTo option write under ~/.firefox-devtools-mcp/output by default. The unrestricted-save-paths flag lets the assistant write anywhere, so leave it off. github.com

  • Android mode wipes the app's data

    The Android option runs a data clear on the target Firefox app before each session, which removes tabs, history, bookmarks and passwords. Use a Firefox build set aside for automation. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Talks toSites you open in Firefox. The server itself needs no account or API key.
Sign-in and keysNo credentials. The server uses whatever the Firefox profile it controls is signed in to.

Questions

Is it official?

Yes. It is made by Mozilla, the maker of Firefox, and is published from the mozilla GitHub organisation as the @mozilla/firefox-devtools-mcp package.

Which AI apps does it work with?

The README names Claude Code, Claude Desktop, Cursor, Cline and Codex, and says other MCP clients work too. It runs on your computer, so it does not work as a ChatGPT or claude.ai web connector.

Does it need an API key?

No. You need Node.js 20.19 or newer and Firefox 100 or newer installed on the same computer. There is no sign-in.

How many tools do I get?

The default preset (basic) turns on 35 of the 49 tools. The developer preset adds network, console, profiler and debugger tools to reach 49. Mozilla-only tools in other presets are left out of the public package.

Can I make it safer?

Yes. Use a separate Firefox profile and pick the slim preset to drop the JavaScript tool, extension install and downloads. Slim still lets the assistant click, type, upload a file you name and close tabs. There is no read-only mode.

Can it use my already open Firefox with my logins?

Yes, with the connect-existing option, after you start Firefox with Marionette and remote debugging turned on. Mozilla advises a dedicated profile instead, because the assistant would see your cookies and sessions.

Does it run headless?

Yes. Add the headless option or set the FIREFOX_HEADLESS variable to true to run Firefox without a window.

Can it test Firefox for Android?

Yes, with the Android option and adb on your path. It wipes the target app's data at the start of every session, so use a build kept for testing.

Information

updated Nov 2, 2026

Publisher
Official
Package
@mozilla/firefox-devtools-mcp
Registry
npm
Transport
stdio
Version
0.10.7
License
MIT OR Apache-2.0
Last commit
Oct 30, 2026
Listed in
Official MCP registry

GitHubnpmOfficial MCP Registry

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 3
  1. github.com · github.com
  2. github.com · github.com
  3. github.com · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.