Firefox DevTools MCP Server
Firefox browser automation via WebDriver BiDi for AI development workflows.
Data last scanned today · Reviewed today
Overview
This MCP server enables AI assistants to control and automate a local Firefox browser instance using the WebDriver BiDi protocol. It supports various tool presets ranging from basic navigation to advanced debugging, network inspection, and privileged Mozilla-specific browser access. Designed for local execution, the server requires a Firefox 100+ installation and Node.js 20.19.0 or later. Users can deploy it via npx or Docker, with the ability to configure browser behavior through CLI arguments and environment variables like headless mode and custom viewport sizes.
Our verdict
With a security score of 45/100, this server is classified as high risk. Because the authentication method and read-only mode support remain unreviewed, users must follow strict safety protocols, including the use of a dedicated Firefox profile and limiting tool presets to only what is necessary for their specific task. This tool is best suited for experienced developers working in controlled, local environments who are prepared to manage the browser isolation themselves.
- Supports modular tool presets to limit agent access levels.
- Small dependency surface with only 5 direct dependencies.
- Maintains active development with recent commit activity.
- High-risk security score due to unreviewed authentication mechanisms.
- Requires manual isolation via dedicated browser profiles.
- License status listed as NOASSERTION in data.
Setup
{
"mcpServers": {
"firefox-devtools-mcp": {
"args": [
"-y",
"@mozilla/firefox-devtools-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| list_pages | List open pages | low |
| new_page | Create a new page | medium |
| navigate_page | Navigate page to a URL | medium |
| select_page | Select a page as current | low |
| close_page | Close a page | medium |
| get_page_text | Get text content of the page | low |
| take_snapshot | Take a DOM snapshot | low |
| resolve_uid | Resolve a UID to an element | low |
| clear_snapshot | Clear the current DOM snapshot | low |
| click | Click an element by UID | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Can I run this MCP server on cloud hosting?
No, this server requires a local Firefox browser installation and cannot operate on cloud hosting services.
›What are the core system requirements?
You must have Node.js version 20.19.0 or higher and Firefox 100 or later installed on your machine.
›How should I handle Firefox profiles for security?
It is highly recommended to use a dedicated Firefox profile for this server, as the agent has access to any information reachable by the browser, such as cookies and saved sessions.
›Can I limit the tools available to the agent?
Yes, you can use the --tool-preset flag to restrict capabilities. For example, the slim preset disables evaluate_script, while developer or mozilla presets grant additional debugging or system-level access.
›Is it possible to connect to an existing Firefox instance?
Yes, you can use the --connect-existing flag to attach to a running Firefox instance instead of having the server launch a new one.
Alternatives
Changelog
Badge
Maintain this server? Add the live badge to your README.