AntiBrow

Forneça ao agente perfis de navegador persistentes e isolados: cada um mantém seus cookies, armazenamento e configuração de fingerprint entre execuções e responde ao seu próprio proxy dentro do mecanismo.

Documentação

Execute o SDK como um servidor MCP e um agente obtém um navegador real e com fingerprint, com 19 ferramentas. Adicione isso à configuração do seu cliente MCP. O SDK do protocolo MCP é uma dependência opcional de pares, por isso as duas flags -p estão lá - npx anti-detect-browser --mcp sozinho sai com MCP server mode needs @modelcontextprotocol/sdk. Nada precisa ser instalado permanentemente.

{
  "mcpServers": {
    "anti-detect-browser": {
      "command": "npx",
      "args": [
        "-y", "-p", "anti-detect-browser", "-p", "@modelcontextprotocol/sdk",
        "anti-detect-browser", "--mcp"
      ],
      "env": {
        "ANTI_DETECT_BROWSER_KEY": "your-api-key"
      }
    }
  }
}

Funciona com qualquer cliente MCP. O navegador roda na sua máquina, então não há horas de navegador para comprar.

As 16 ferramentas abaixo são as ferramentas de navegador, perfil, proxy e Live View. O servidor também expõe list_recipes, run_recipe e fanout_recipe - 19 no total - e essas três estão documentadas na página de receitas. Se o seu agente é Python e você prefere possuir o servidor, pip install "antibrow[mcp]" e o pacote inclui um exemplo funcional de servidor stdio cobrindo o mesmo ciclo de lançar, navegar, clicar, preencher, ler, capturar tela, avaliar e fechar - os perfis são os mesmos de qualquer forma. Veja o SDK Python.

O modelo de sessão

Esta é a parte que vale a pena entender antes de ler a lista de ferramentas. Chamadas de ferramentas MCP são discretas: o modelo chama uma ferramenta, obtém um resultado, pensa, chama outra. Muitas ferramentas de navegador iniciam um contexto novo por chamada, então um login feito em uma chamada se perde na próxima.

Aqui o processo do navegador permanece ativo. launch_browser retorna um sessionId, e cada ferramenta de página recebe esse id e reconecta ao mesmo navegador em execução. A aba que você deixou aberta é a aba que a próxima chamada encontra. Cookies, armazenamento e chaves de acesso são gravados no diretório do perfil, então até um reinício restaura a mesma identidade conectada com o mesmo fingerprint.

// 1. launch. \`profile\` is required; the profile is created if new.
launch_browser({ profile: "agent-01" })
//    -> { sessionId, profileDir, viewUrl }

// 2. every page tool takes that sessionId
navigate({ sessionId, url: "https://example.com" })
fill({ sessionId, selector: "#email", value: "me@example.com" })
click({ sessionId, selector: "button[type=submit]" })
get_content({ sessionId })

// 3. the browser stays up between tool calls, so a later turn
//    is still signed in. Close it when the task is done.
close_browser({ sessionId })

profile é obrigatório em launch_browser. Não há padrão. Escolha um nome estável por identidade e reutilize-o, porque o perfil é a identidade: reutilizar o nome é o que faz a execução 40 parecer a execução 1 para o site.

Ferramentas de navegador

Iniciar e parar um navegador, e encontrar os que já estão em execução.

launch_browser (profile, label?, color?, tags?, proxy?, proxyId?, headless?)

Inicie um navegador com um fingerprint falsificado. Cria o perfil se ele ainda não existir.

profilestringobrigatórioNome do perfil. Também é o nome do diretório no disco.
labelstringopcionalTexto do rótulo mostrado na janela do navegador.
colorstringopcionalCor do tema em hex, por exemplo #e74c3c.
tagsarrayopcionalTags armazenadas com o perfil.
proxystringopcionalSua própria URL de proxy: protocolo://usuário:senha@host:porta
proxyIdstringopcionalId do proxy gerenciado. Ativa-o e mede a cota mensal. Obtenha um de list_proxies ou claim_proxy.
headlessbooleanopcionalExecutar sem uma janela visível.

close_browser (sessionId )

Feche uma sessão de navegador.

sessionIdstringobrigatórioO id retornado por launch_browser.

list_sessions ( )

Liste todas as sessões de navegador atualmente em execução.

Ferramentas de página

Todas estas atuam em uma sessão aberta, então cada uma delas recebe um sessionId.

navigate (sessionId, url )

Navegue para uma URL.

sessionIdstringobrigatório
urlstringobrigatórioURL para navegar.

click (sessionId, selector )

Clique em um elemento.

sessionIdstringobrigatório
selectorstringobrigatórioSeletor CSS do elemento para clicar.

fill (sessionId, selector, value )

Preencha um campo de formulário com texto.

sessionIdstringobrigatório
selectorstringobrigatórioSeletor CSS do campo de entrada.
valuestringobrigatórioTexto para preencher.

get_content (sessionId, selector?)

Leia o conteúdo de texto da página, ou de um elemento.

sessionIdstringobrigatório
selectorstringopcionalRestringir a um elemento. Omita para a página inteira.

screenshot (sessionId )

Capture a tela da página atual.

sessionIdstringobrigatório

evaluate (sessionId, script )

Execute JavaScript no contexto da página e retorne o resultado.

sessionIdstringobrigatório
scriptstringobrigatórioJavaScript para executar.

Ferramentas de proxy

Proxies residenciais gerenciados vêm com planos pagos. Reivindicar um é gratuito; a cota é consumida apenas quando você inicia um perfil com ele.

list_proxies ( )

Liste os proxies gerenciados atribuídos a você, além da sua cota mensal: limit, usedThisMonth, remaining, holdCount e holdCap.

claim_proxy ( )

Reivindique um proxy gerenciado disponível e retorne-o, incluindo seu id. Reivindicar não consome cota mensal.

Ferramentas de Live View

Transmita uma sessão em execução para o seu painel. Live View é um recurso de plano pago.

start_live_view (sessionId, quality?)

Comece a transmitir a tela da sessão.

sessionIdstringobrigatório
qualitynumberopcionalQualidade JPEG, de 1 a 100. Padrão é 60.

stop_live_view (sessionId )

Pare a transmissão.

sessionIdstringobrigatório

Erros comuns

Parâmetro obrigatório "profile" ausente launch_browser não tem perfil padrão. Passe um, e use o mesmo nome toda vez para essa identidade.Sessão não encontrada O sessionId refere-se a um navegador que foi fechado. Chame list_sessions para ver o que está em execução, ou inicie novamente.Limite de concorrência atingido Seu plano limita quantos navegadores rodam ao mesmo tempo: 1 no Free, depois 5, 20 ou 100. Feche uma sessão ou aumente o limite. A contagem de perfis nunca é o limite.

Prefere escrever código a usar ferramentas MCP? Os mesmos perfis podem ser controlados pelo SDK com Playwright padrão.