
Server Model Context Protocol per Firefox DevTools - consente agli assistenti AI di ispezionare e controllare il browser Firefox tramite WebDriver BiDi
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.
I server MCP per browser comportano rischi intrinseci. Alcune pratiche chiave:
basic include già evaluate_script; --tool-preset slim lo 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à.
--firefox-path)Consigliato: usa npx per eseguire l'ultima versione pubblicata su npm.
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 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
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"
}
}
}
}
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"
npm run setup
# Scegli Claude Code; lo script salva il JSON nel percorso corretto
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_snapshot poi click_by_uid / fill_by_uidlist_network_requests (cattura sempre attiva), get_network_requestlist_downloads (cattura sempre attiva), set_download_behaviorscreenshot_page, list_console_messagesPuoi 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 tramite moz:firefoxOptions (ripetibile)--tool-preset — seleziona quali moduli di strumenti abilitare: slim, basic (predefinito), developer, mozilla o all. 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 developer o --tools ... script debugging. Seleziona il preset di strumenti developer. (ENABLE_SCRIPT=true)--enable-privileged-context — deprecato, usa --tool-preset mozilla o --tools ... privileged prefs. Seleziona il preset di strumenti mozilla. Richiede MOZ_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). Esegui adb devices per elencare i dispositivi collegati. Ometti il valore o usa auto per 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, predefinito org.mozilla.firefox. Altri pacchetti: org.mozilla.firefox_beta per Firefox Beta, org.mozilla.fenix per Firefox Nightly, org.mozilla.fenix.debug per Firefox Nightly Debug, org.mozilla.geckoview_example per geckoview (ANDROID_PACKAGE)--unrestricted-save-paths — consenti al parametro saveTo di 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. Imposta DEBUG=* per includere anche log di debug dettagliati. Esempio: --log-file /tmp/firefox-mcp.log