
firefox-devtools-mcp v0.9.15
Model Context Protocol server per Firefox DevTools - consente agli assistenti AI di ispezionare e controllare il browser Firefox tramite il Remote Debugging Protocol
Firefox DevTools MCP
Server Model Context Protocol per automatizzare Firefox tramite WebDriver BiDi (attraverso Selenium WebDriver). Funziona con Claude Code, Claude Desktop, Cursor, Cline e altri client MCP.
Repository: https://github.com/mozilla/firefox-devtools-mcp
Nota: Questo server MCP richiede un'installazione locale di Firefox e non può essere eseguito su servizi di hosting cloud come glama.ai. Usa
npx @mozilla/firefox-devtools-mcp@latestper eseguirlo localmente, oppure usa Docker con il Dockerfile fornito.
Sicurezza
I server MCP per browser comportano rischi intrinseci. Alcune pratiche chiave:
- Usa un profilo Firefox dedicato. Non eseguire mai il server sul tuo profilo abituale — l'agente ha accesso a tutto ciò che il browser può raggiungere, inclusi cookie e sessioni salvate.
- Presta attenzione ai siti che visiti. Le pagine possono restituire contenuti progettati per manipolare l'agente (prompt injection). Attieniti a siti che controlli o di cui ti fidi.
- Abilita solo i moduli di strumenti di cui hai bisogno. Il preset predefinito
basicinclude giàevaluate_script;--tool-preset slimlo rimuove. I preset superiori come--tool-preset developer(debugging, network, console, profiler) e--tool-preset mozilla(contesto privilegiato) espandono ulteriormente ciò che l'agente può fare.
Consulta SECURITY.md per un'analisi completa dei rischi e su come segnalare vulnerabilità.
Requisiti
- Node.js ≥ 20.19.0
- Firefox 100+ installato (rilevato automaticamente, oppure passa
--firefox-path)
Installazione e utilizzo con Claude Code o Codex (npx)
Consigliato: usa npx per eseguire l'ultima versione pubblicata su npm.
Opzione A — CLI
Claude Code
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest
# Headless + viewport tramite argomenti
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# Oppure tramite variabili d'ambiente
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true
Codex
codex mcp add firefox-devtools -- npx @mozilla/firefox-devtools-mcp@latest
# Headless + viewport tramite argomenti
codex mcp add firefox-devtools -- \
npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# Oppure tramite variabili d'ambiente
codex mcp add firefox-devtools \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true \
-- npx @mozilla/firefox-devtools-mcp@latest
Opzione B — Modifica il file di configurazione
Claude Code
Aggiungi a mcp_settings.json di Claude Code:
{
"mcpServers": {
"firefox-devtools": {
"command": "npx",
"args": ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"],
"env": {
"START_URL": "about:blank"
}
}
}
}
Codex
Aggiungi a ~/.codex/config.toml:
[mcp_servers.firefox-devtools]
command = "npx"
args = ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"]
[mcp_servers.firefox-devtools.env]
START_URL = "about:blank"
Opzione C — Script di supporto (build di sviluppo locale)
npm run setup
# Scegli Claude Code; lo script salva il JSON nel percorso corretto
Provalo con MCP Inspector
npx @modelcontextprotocol/inspector npx @mozilla/firefox-devtools-mcp@latest --start-url https://example.com --headless
Poi chiama strumenti come:
list_pages,select_page,navigate_pagetake_snapshotpoiclick_by_uid/fill_by_uidlist_network_requests(cattura sempre attiva),get_network_requestlist_downloads(cattura sempre attiva),set_download_behaviorscreenshot_page,list_console_messages
Opzioni CLI
Puoi passare flag o variabili d'ambiente (nomi a destra):
--firefox-path— percorso assoluto del binario di Firefox--headless— esegui senza interfaccia (FIREFOX_HEADLESS=true)--viewport 1280x720— dimensione iniziale della finestra--profile-path— usa un profilo Firefox specifico--firefox-arg— argomenti Firefox aggiuntivi (ripetibile)--start-url— apri questo URL all'avvio (START_URL)--accept-insecure-certs— ignora gli errori TLS (ACCEPT_INSECURE_CERTS=true)--connect-existing— collegati a un Firefox già in esecuzione invece di avviarne uno nuovo (CONNECT_EXISTING=true)--marionette-port— porta Marionette per la modalità connect-existing, predefinita 2828 (MARIONETTE_PORT)--pref name=value— imposta una preferenza Firefox all'avvio tramitemoz:firefoxOptions(ripetibile)--tool-preset— seleziona quali moduli di strumenti abilitare:slim,basic(predefinito),developer,mozillaoall. Consulta Moduli di strumenti e preset. (TOOL_PRESET)--tools— elenco esplicito di moduli di strumenti da abilitare, che sovrascrive completamente--tool-preset(es.--tools pages network script). Consulta Moduli di strumenti e preset.--enable-script— deprecato, usa--tool-preset developero--tools ... script debugging. Seleziona il preset di strumentideveloper. (ENABLE_SCRIPT=true)--enable-privileged-context— deprecato, usa--tool-preset mozillao--tools ... privileged prefs. Seleziona il preset di strumentimozilla. RichiedeMOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1(ENABLE_PRIVILEGED_CONTEXT=true)--android-device— abilita la modalità Firefox per Android; il valore è il seriale del dispositivo ADB (es.emulator-5554). Eseguiadb devicesper elencare i dispositivi collegati. Ometti il valore o usaautoper selezionare automaticamente l'unico dispositivo collegato.--android-wipe-app-data— conferma che la modalità Android cancella tutti i dati dell'app di destinazione. Obbligatorio insieme a--android-device. (ANDROID_WIPE_APP_DATA=true)--android-package— nome del pacchetto dell'app Android, predefinitoorg.mozilla.firefox. Altri pacchetti:org.mozilla.firefox_betaper Firefox Beta,org.mozilla.fenixper Firefox Nightly,org.mozilla.fenix.debugper Firefox Nightly Debug,org.mozilla.geckoview_exampleper geckoview (ANDROID_PACKAGE)--unrestricted-save-paths— consenti al parametrosaveTodi scrivere ovunque sul disco invece che nelle radici predefinite. Consulta Salvataggio di output voluminosi su disco e la nota sulla sicurezza in SECURITY.md. (UNRESTRICTED_SAVE_PATHS=true)--log-file— scrivi i log del server MCP su un file invece che su stderr. Utile per sessioni di debug con client MCP che nascondono l'output del server. ImpostaDEBUG=*per includere anche log di debug dettagliati. Esempio:--log-file /tmp/firefox-mcp.log
