
firefox-devtools-mcp v0.9.15
Servidor Model Context Protocol para Firefox DevTools - permite que assistentes de IA inspecionem e controlem o navegador Firefox através do Remote Debugging Protocol
Firefox DevTools MCP
Servidor Model Context Protocol para automatizar o Firefox via WebDriver BiDi (através do Selenium WebDriver). Funciona com Claude Code, Claude Desktop, Cursor, Cline e outros clientes MCP.
Repositório: https://github.com/mozilla/firefox-devtools-mcp
Nota: Este servidor MCP requer uma instalação local do navegador Firefox e não pode ser executado em serviços de hospedagem em nuvem como glama.ai. Use
npx @mozilla/firefox-devtools-mcp@latestpara executar localmente, ou use Docker com o Dockerfile fornecido.
Segurança
Servidores MCP de navegador apresentam riscos inerentes. Algumas práticas essenciais:
- Use um perfil Firefox dedicado. Nunca execute o servidor contra seu perfil normal — o agente tem acesso a tudo que o navegador pode alcançar, incluindo cookies e sessões salvas.
- Tenha cuidado com quais sites você visita. Páginas podem retornar conteúdo projetado para manipular o agente (injeção de prompt). Limite-se a sites que você controla ou nos quais confia.
- Ative apenas os módulos de ferramentas que você precisa. O preset padrão
basicjá incluievaluate_script;--tool-preset slimo remove. Presets mais altos como--tool-preset developer(depuração, rede, console, profiler) e--tool-preset mozilla(contexto privilegiado) expandem ainda mais o que o agente pode fazer.
Consulte SECURITY.md para uma análise completa dos riscos e como reportar vulnerabilidades.
Requisitos
- Node.js ≥ 20.19.0
- Firefox 100+ instalado (detecção automática, ou passe
--firefox-path)
Instalação e uso com Claude Code ou Codex (npx)
Recomendado: use npx para executar a versão publicada mais recente do npm.
Opção A — CLI
Claude Code
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest
# Headless + viewport via argumentos
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# Ou via variáveis de 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 via argumentos
codex mcp add firefox-devtools -- \
npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# Ou via variáveis de ambiente
codex mcp add firefox-devtools \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true \
-- npx @mozilla/firefox-devtools-mcp@latest
Opção B — Editar o arquivo de configuração
Claude Code
Adicione ao mcp_settings.json do Claude Code:
{
"mcpServers": {
"firefox-devtools": {
"command": "npx",
"args": ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"],
"env": {
"START_URL": "about:blank"
}
}
}
}
Codex
Adicione ao ~/.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"
Opção C — Script auxiliar (build de desenvolvimento local)
npm run setup
# Escolha Claude Code; o script salva o JSON no caminho correto
Experimente com o MCP Inspector
npx @modelcontextprotocol/inspector npx @mozilla/firefox-devtools-mcp@latest --start-url https://example.com --headless
Em seguida, chame ferramentas como:
list_pages,select_page,navigate_pagetake_snapshote depoisclick_by_uid/fill_by_uidlist_network_requests(captura sempre ativa),get_network_requestlist_downloads(captura sempre ativa),set_download_behaviorscreenshot_page,list_console_messages
Opções de CLI
Você pode passar flags ou variáveis de ambiente (nomes à direita):
--firefox-path— caminho absoluto para o binário do Firefox--headless— executar sem interface gráfica (FIREFOX_HEADLESS=true)--viewport 1280x720— tamanho inicial da janela--profile-path— usar um perfil Firefox específico--firefox-arg— argumentos extras do Firefox (repetível)--start-url— abrir esta URL na inicialização (START_URL)--accept-insecure-certs— ignorar erros de TLS (ACCEPT_INSECURE_CERTS=true)--connect-existing— anexar a um Firefox já em execução em vez de iniciar um novo (CONNECT_EXISTING=true)--marionette-port— porta Marionette para o modo connect-existing, padrão 2828 (MARIONETTE_PORT)--pref name=value— definir preferência do Firefox na inicialização viamoz:firefoxOptions(repetível)--tool-preset— selecionar quais módulos de ferramentas ativar:slim,basic(padrão),developer,mozillaouall. Consulte Módulos de ferramentas e presets. (TOOL_PRESET)--tools— lista explícita de módulos de ferramentas a ativar, substituindo completamente--tool-preset(ex.:--tools pages network script). Consulte Módulos de ferramentas e presets.--enable-script— obsoleto, use--tool-preset developerou--tools ... script debugging. Seleciona o preset de ferramentasdeveloper. (ENABLE_SCRIPT=true)--enable-privileged-context— obsoleto, use--tool-preset mozillaou--tools ... privileged prefs. Seleciona o preset de ferramentasmozilla. RequerMOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1(ENABLE_PRIVILEGED_CONTEXT=true)--android-device— ativar o modo Firefox para Android; o valor é o serial do dispositivo ADB (ex.:emulator-5554). Executeadb devicespara listar dispositivos conectados. Omita o valor ou useautopara selecionar automaticamente o único dispositivo conectado.--android-wipe-app-data— confirmar que o modo Android apaga todos os dados do aplicativo alvo. Necessário junto com--android-device. (ANDROID_WIPE_APP_DATA=true)--android-package— nome do pacote do aplicativo Android, padrãoorg.mozilla.firefox. Outros pacotes:org.mozilla.firefox_betapara Firefox Beta,org.mozilla.fenixpara Firefox Nightly,org.mozilla.fenix.debugpara Firefox Nightly Debug,org.mozilla.geckoview_examplepara geckoview (ANDROID_PACKAGE)--unrestricted-save-paths— permitir que o parâmetrosaveTograve em qualquer lugar do disco em vez das raízes padrão. Consulte Salvando saída volumosa em disco e a nota de segurança em SECURITY.md. (UNRESTRICTED_SAVE_PATHS=true)--log-file— gravar logs do servidor MCP em um arquivo em vez de stderr. Útil para sessões de depuração com clientes MCP que ocultam a saída do servidor. DefinaDEBUG=*para também incluir logs de depuração detalhados. Exemplo:--log-file /tmp/firefox-mcp.log
