FSB
Extensão de código aberto para Chrome e servidor MCP que permite que Claude Code, Codex, Cursor ou VS Code controlem seu Chrome conectado, lendo o DOM ao vivo, não capturas de tela. Nenhuma chave de API necessária.
Documentação
FSB v0.9.92 Full Self Browsing
Automação de navegador com inteligência artificial por meio de linguagem natural. Diga o que fazer e veja-o navegar por você.
Inteligência puramente estrutural. Zero visão. Zero adivinhação.
O que há de novo · Início rápido · Servidor MCP · Arquitetura · Provedores · Desenvolvimento
Visão geral
FSB (Full Self Browsing) é uma extensão de Chrome de código aberto para automação de navegador com inteligência artificial. Descreva uma tarefa em inglês simples; o FSB lê o DOM ativo, cria um plano, executa ações no navegador, verifica os resultados e relata o progresso pelo popup, painel lateral ou MCP.
O FSB v0.9.92 é funcional e pronto para produção em automação supervisionada. A automação de navegador ainda pode se comportar de forma imprevisível em sites complexos ou sensíveis, portanto monitore as ações e teste primeiro em páginas não críticas.
Por que DOM primeiro
O Project Mariner, o Claude Computer Use e o OpenAI Operator dependem muito da compreensão visual da página. O FSB usa a estrutura da página diretamente.
| Métrica | Agentes baseados em visão | FSB |
|---|---|---|
| Compreensão da página | Capturas de tela | DOM, seletores, ARIA, formulários |
| Elementos ocultos | Frequentemente invisíveis | Disponíveis na estrutura |
| Latência típica por etapa | 1 a 3 segundos | 50 a 200 ms |
| Perfil de token/custo | Pesado em imagens | Pesado em texto/estrutura |
Início rápido TL;DR
O FSB brilha quando seu cliente de IA o aciona diretamente. Instale o servidor MCP para o cliente de sua escolha — um comando, sem edições manuais de configuração e sem necessidade de chave de API FSB (o modelo do seu cliente MCP cuida do raciocínio):
| Cliente | Instalação em um comando |
|---|---|
| Claude Code | npx -y fsb-mcp-server@latest install --claude-code |
| Claude Desktop | npx -y fsb-mcp-server@latest install --claude-desktop |
| Cursor | npx -y fsb-mcp-server@latest install --cursor |
| VS Code | npx -y fsb-mcp-server@latest install --vscode |
| Windsurf | npx -y fsb-mcp-server@latest install --windsurf |
| Codex | npx -y fsb-mcp-server@latest install --codex |
| Todos de uma vez | npx -y fsb-mcp-server@latest install --all |
Pré-visualize antes de escrever: acrescente --dry-run. Faça uma verificação de sanidade com npx -y fsb-mcp-server@latest doctor. Reinicie o cliente para que o novo servidor MCP apareça.
Depois instale o lado do navegador (a ponte MCP conversa com a extensão):
- Obtenha o FSB na Chrome Web Store.
- No seu cliente MCP, tente:
Search for cats on GoogleouRead this page and summarize it.
Quer executar o FSB de forma independente pelo popup/painel lateral da extensão? Abra as configurações, cole uma chave de API (xAI, Gemini, OpenAI, Anthropic, OpenRouter, LM Studio ou personalizada) e comece por aí — sem necessidade de MCP.
No OpenClaw? Instale o FSB diretamente do ClawHub. Essa é a rota de integração mais rápida. Se precisar do fallback manual, a habilidade FSB em skills/fsb/ ainda imprime o bloco de configuração stdio canônico do OpenClaw e executa o fluxo do doctor. O sinalizador de instalação --openclaw permanece manual porque o esquema de configuração MCP do OpenClaw é instável entre versões.
No Hermes? Use a mesma habilidade em skills/fsb/. Execute node skills/fsb/scripts/print-hermes-yaml.mjs para imprimir o bloco canônico ~/.hermes/config.yaml mcp_servers.fsb, ou execute node skills/fsb/scripts/install-host.mjs para detectar uma configuração local do Hermes e condicionar a instalação ao consentimento.
No Grok Bot? O wrapper do marketplace está em plugins/grok-bot/, com um servidor MCP npm fixado e uma habilidade FSB. Ele usa o Chrome no próprio computador do Bot; consulte as divulgações de configuração e privacidade dele. A listagem no marketplace está aguardando revisão do editor.
O que ele faz
- Executa tarefas de navegador em linguagem natural pelo popup ou painel lateral.
- Suporta xAI, Gemini, OpenAI, Anthropic, OpenRouter, LM Studio e endpoints personalizados compatíveis com OpenAI.
- Descobre listas de modelos ativos dos provedores e recorre aos padrões incluídos.
- Usa 57 definições compartilhadas (53 ferramentas de navegador mais 4 ferramentas de gatilho) e 69 ferramentas MCP registradas para clientes externos.
- Fornece snapshots de DOM, verificação de ações, espera inteligente, detecção de travamentos, feedback visual e registros de sessão.
- Pesquisa um catálogo de capacidades de 128 aplicativos e invoca capacidades de API de primeira parte verificadas, assinadas, auditadas e bloqueadas por denylist pela superfície de capacidade MCP.
- Envia arquivos locais reais para entradas de arquivo pela ferramenta supervisionada
upload_filecom proteções de caminhos sensíveis. - Mantém memória de longo prazo para sites, fluxos de trabalho, seletores e resultados de tarefas anteriores.
- Inclui fluxos seguros de cofre de credenciais e pagamentos para preenchimento automático supervisionado.
- Expõe um servidor MCP local para que Claude Code, Codex, Cursor, VS Code, Windsurf e outros clientes MCP possam acionar o navegador.
Os agentes em segundo plano foram descontinuados. Os dados existentes de chrome.storage.local['bgAgents'] são preservados para usuários que tinham agentes antigos, mas a automação agendada ou recorrente não é mais um recurso ativo do FSB.
Casos de uso comuns
- Verificações de QA e regressão: repita fluxos de página, clique em estados, preencha formulários e colete registros de ações.
- Pesquisa: navegue por páginas, extraia informações visíveis e resuma resultados sem depender de capturas de tela.
- Entrada de dados: percorra formulários estruturados com validação, menus suspensos, controles personalizados e entradas de tabela.
- Ecommerce: compare páginas de produto, inspecione preços, monitore disponibilidade manualmente e prepare carrinhos sob supervisão.
- Finanças e painéis: leia gráficos, tabelas e o estado atual da página enquanto um humano permanece no controle.
- Observadores de gatilho: monitore um elemento da página quanto a mudanças, cruzamento de limites ou disponibilidade enquanto o Chrome e a extensão permanecem abertos.
- Fluxos de trabalho de desenvolvedor: acione GitHub, rastreadores de problemas, sites de documentação, plataformas de codificação e ferramentas baseadas em navegador.
- Inspeção de acessibilidade e DOM: exponha estrutura, rótulos, seletores, formulários e controles ocultos para depuração.
O FSB é mais confiável quando a tarefa pode ser expressa como estrutura de página e ações do usuário. Ele não é intencionalmente um navegador furtivo, fazenda de raspagem ou operador de conta não supervisionado.
Detalhes de recursos
| Área | Comportamento atual |
|---|---|
| Análise de DOM | Captura dados visíveis e estruturais da página, referências de elementos, seletores, formulários, rótulos ARIA e deltas de DOM. |
| Execução de ações | Suporta cliques, digitação, teclas, rolagem, navegação, abas, intervalos de planilhas, ferramentas de coordenadas, JavaScript direto e envio de arquivos reais. |
| Catálogo de capacidades | Pesquisa o catálogo de 128 aplicativos e invoca capacidades de API de primeira parte T1/T1b verificadas, assinadas, auditadas e bloqueadas por denylist por meio de search_capabilities e invoke_capability. Correspondências de cauda de catálogo permanecem pendentes de aprendizado, pendentes de descoberta ou protegidas com falha fechada até serem comprovadas. Origens sensíveis são sinalizadas, enquanto origens na denylist permanecem bloqueadas. |
| Verificação | Verifica o estado pós-ação, o comportamento de carregamento, a estabilidade do DOM e a repetição de ações travadas. |
| Superfícies de interface | Chat no popup, painel lateral persistente, painel de opções/controle, registros, análises, memória, cofre e controles de sincronização. |
| Suporte a modelos | Provedores hospedados, roteamento OpenRouter, modelos locais LM Studio, endpoints personalizados e descoberta de modelos ativos. |
| Renderização de saída | Markdown, HTML sanitizado, diagramas Mermaid, gráficos Chart.js e mensagens de progresso de tarefas. |
| Observabilidade | Histórico de sessão, registros de ações, contabilidade de token/custo, buffer de anel de diagnóstico e sondas de status MCP. |
| Segurança | Chaves criptografadas, fluxos de desbloqueio de cofre, auxiliares de redação, DOMPurify, portões de assinatura/auditoria de capacidades, denylist de origens, denylist de caminhos de envio e mensagens de recuperação de abas restritas. |
| Observadores de gatilho | Chamadores MCP podem armar observações de um elemento com relatórios bloqueantes ou destacados, além de companheiros de status/lista/parada. |
| Pré-visualização ao vivo de DOM | Captura com suporte PhantomStream, renderizador, protocolo, espelhamento de mídia e compatibilidade de retransmissão com pareamento de propriedade do FSB, status de tarefas, sobreposições e controle remoto. |
O objetivo central do design é manter o navegador como fonte da verdade. O modelo recebe contexto estruturado da página, toma uma decisão de ferramenta e a extensão verifica o que mudou antes de avançar para a próxima etapa.
O que há de novo
Catálogo nativo de capacidades: execução de API de primeira parte. Além da automação de DOM, o FSB pode pesquisar um catálogo de capacidades que cobre 128 aplicativos e invocar capacidades de API verificadas com search_capabilities e invoke_capability. As capacidades verificadas passam por um roteador que verifica a origem, valida a assinatura da receita, verifica a denylist, serializa a ação e registra um registro de auditoria que nunca inclui segredos. Capacidades ainda não verificadas são claramente rotuladas em vez de apresentadas como prontas para uso. Toda origem é permitida por padrão, a menos que esteja na denylist, e origens na denylist permanecem bloqueadas. Origens sensíveis são sinalizadas na interface e na trilha de auditoria, e a leitura de dados por captura de rede em uma origem sensível ainda pede confirmação extra. O modelo de integração de API é inspirado no OpenTabs (veja Agradecimentos). A execução de capacidades é totalmente suportada e foi testada, incluindo testes ao vivo no navegador. A suíte de testes automatizados está verde.
upload_file: envio real de arquivos em entradas. Clientes MCP e o autopiloto FSB agora podem chamar upload_file(selector, file_path, tab_id?) para definir um caminho absoluto de disco local em um <input type="file"> real por meio de CDP DOM.setFileInputFiles, incluindo entradas ocultas atrás de zonas de arrastar e soltar estilizadas. Os envios passam por um único gargalo de fundo compartilhado com uma denylist de caminhos sensíveis e registro de auditoria que não persiste caminhos de disco. drop_file permanece para casos sintéticos de arrastar/soltar e zonas somente de arrastar.
Espelhamento de mídia PhantomStream 0.2.1. A pré-visualização ao vivo de DOM do painel agora consome o canal lateral de mídia publicado do PhantomStream no modo de referência, para que nós progressivos de <video> e <audio> possam espelhar junto com snapshots de DOM. A descoberta adaptativa de HLS/DASH permanece adiada porque exigiria uma nova permissão de webRequest; os esquemas de ferramentas MCP, pareamento, autenticação e comportamento de propriedade do painel permanecem inalterados.
Marco de engenharia 0.11.0 — Ferramenta de gatilho (monitoramento reativo de DOM). Chamadores MCP podem armar uma observação em um elemento da página com trigger e gerenciá-la com stop_trigger, get_trigger_status e list_triggers. As observações suportam modos live-observe e refresh-poll, condições de limite/delta/regex/compostas, relatórios bloqueantes ou destacados e um limite de concorrência configurável. Veja Observadores de gatilho para o contrato completo.
Páginas de vitrine e ecossistema. full-selfbrowsing.com adicionou páginas para Lattice (SDK de runtime de capacidades), PhantomStream (espelhamento de navegador nativo de DOM), Prometheus (a versão de navegador autônomo por trás do FSB) e um hub comunitário de Mapas de sites, além de uma página ao vivo de estatísticas com um globo anônimo de regiões ativas, uma página de postura legal e um visualizador interativo de grafo de conhecimento em Sobre.
O histórico completo está em CHANGELOG.md; o pacote MCP mantém seu próprio registro em mcp/CHANGELOG.md.
Estrutura do repositório
| Caminho | Finalidade |
|---|---|
extension/ | Pacote da extensão Chrome. Carregue este diretório como uma extensão MV3 não empacotada. |
mcp/ | Pacote npm fsb-mcp-server, a ponte MCP local para clientes de IA externos. |
skills/fsb/ | Skill OpenClaw + Hermes: doctor + impressoras stdio/YAML + instalação com consentimento para múltiplos hosts. |
showcase/ | Site de marketing e dashboard para full-selfbrowsing.com. Angular 20 com pré-renderização estática + relay Express. |
showcase/server/ | Backend de deploy Node/Express para pareamento, relay compatível com PhantomStream, autenticação e dados do dashboard. |
server-py/ | Protótipo legado de backend estilo Python/FastAPI mantido para referência. |
tests/ | Testes Node para módulos da extensão, contratos MCP, comportamento da ponte e cobertura de regressão. |
scripts/ | Scripts de manutenção e validação do repositório. |
Arquivos de deploy e validação de nível superior:
package.json- comandos raiz para validação, testes, empacotamento e auxiliares de demonstração.Dockerfile,fly.toml- deploy de produção para o servidor de demonstração no fly.io..github/workflows/ci.yml- valida a extensão, testes de fumaça MCP e build da demonstração..github/workflows/deploy.yml- faz deploy do site de produção em pushes demain.
Capturas de Tela
Entrada de Tarefa |
Execução de Tarefa |
Mais capturas de tela
Dashboard e Análises
Configuração da API
Gerenciador de Senhas
Memória e Explorador de Sites
Grafo de Conhecimento de Inteligência
Início Rápido
Pré-requisitos
- Chromium 116+ em um navegador desktop estável suportado: Chrome, Edge, Brave ou Chromium.
- Uma configuração de provedor de IA:
- Chave de API xAI: https://x.ai/api
- Chave de API Gemini: https://aistudio.google.com/app/apikey
- Chave de API OpenAI: https://platform.openai.com/api-keys
- Chave de API Anthropic: https://console.anthropic.com/account/keys
- Chave de API OpenRouter: https://openrouter.ai/keys
- Servidor local LM Studio rodando em
http://localhost:1234 - Um endpoint personalizado de completions de chat compatível com OpenAI
Instalar a Extensão
git clone https://github.com/fullselfbrowsing/FSB.git
cd FSB
- Abra
chrome://extensions/. - Ative o Modo desenvolvedor.
- Clique em Carregar sem empacotar.
- Selecione o diretório
extension/. - Clique no ícone da barra de ferramentas do FSB, abra as configurações, configure um provedor e teste a conexão com a API.
Comece com tarefas simples, como:
Scroll downSearch for cats on GoogleClick the first search resultRead this page and summarize it
Recarregue a extensão em chrome://extensions/ após alterações locais no código. Recarregue as abas abertas após a extensão ser recarregada para que os scripts de conteúdo sejam reinjetados.
Para um build não empacotado, registre o ID em chrome://extensions/. Um caminho de instalação ou perfil diferente pode produzir um ID diferente; se doctor relatar ORIGIN_PIN_MISMATCH, execute npx -y fsb-mcp-server@latest pair --reset e faça o pareamento da nova instalação. Um perfil de navegador se conecta à ponte local por vez. doctor e status mostram o ID da extensão anexada, versão, instância de instalação, tempo de conexão e contagem de janelas normais. O servidor MCP e a extensão têm versões independentes. O Chrome 137 com marca removida removeu o sinalizador --load-extension; use Carregar sem empacotar no Chrome, ou use Chrome for Testing ou Chromium quando um sinalizador de linha de comando for necessário.
Checklist da Primeira Execução
- Abra o painel de controle do FSB pela extensão.
- Selecione um provedor e um modelo.
- Insira a chave de API correspondente ou o endpoint local.
- Use Testar API para confirmar que o modelo consegue responder.
- Abra uma página web normal, não uma página interna do navegador.
- Tente primeiro uma tarefa somente leitura e depois uma tarefa simples de clique ou digitação.
- Mantenha a sobreposição visual ativada ao avaliar o comportamento.
Se um site usar renderização pesada no cliente, controles canvas personalizados ou shadow DOM incomum, comece pedindo ao FSB para ler a página e identificar os controles disponíveis. Isso dá ao modelo um primeiro snapshot melhor e facilita a depuração de falhas.
Solução Rápida de Problemas
| Problema | Verificação |
|---|---|
| A extensão não aparece | Confirme que o Chrome carregou extension/, não a raiz do repositório. |
| O teste de API falha | Confirme que o provedor, a chave, o endpoint e o modelo selecionados pertencem ao mesmo conjunto. |
| As leituras de página falham | Afaste-se de páginas internas do navegador, como chrome:// ou páginas de extensão. |
| Cliques erram os alvos | Atualize o snapshot do DOM, role o alvo até a área visível ou use ferramentas de coordenadas. |
| O texto digitado não persiste | Prefira type_text em vez de atribuição de valor JavaScript em entradas controladas. |
| As ferramentas MCP estão ausentes | Reinicie o cliente host e execute npx -y fsb-mcp-server@latest doctor. |
| As ferramentas MCP expiram | Verifique status --watch, a prontidão da aba ativa e se outra tarefa está na fila. |
A maioria das falhas é recuperável inspecionando a página atual, atualizando seletores ou reiniciando a ponte MCP local. Reinstalar a configuração MCP deve ser o último passo, não o primeiro.
Configuração de Desenvolvimento Local
Você não precisa de uma etapa de build para carregar a extensão no Chrome. Você só precisa das dependências npm ao executar testes, compilar o MCP ou compilar o site de demonstração.
npm install
npm --prefix mcp install
npm --prefix showcase/angular install
A extensão lê scripts empacotados diretamente de extension/. O pacote MCP é TypeScript e deve ser compilado antes dos testes de fumaça ou da publicação npm. A demonstração é um aplicativo Angular normal com saída de pré-renderização estática servida pelo backend Express de produção.
Servidor MCP
O FSB inclui fsb-mcp-server, um servidor MCP local que permite que clientes de IA externos controlem a mesma extensão do navegador. Ele expõe 69 ferramentas registradas em sessões visuais, observadores de gatilho, controle manual do navegador, captura Developer/UAT, busca/invocação de capacidades, inspeção de página somente leitura, autopilot, cofre e observabilidade.
A extensão se conecta à ponte MCP em:
ws://localhost:7225
O modo opcional Streamable HTTP expõe:
http://127.0.0.1:7226/mcp
O endpoint HTTP vincula-se apenas ao loopback e rejeita solicitações com um cabeçalho Origin ou um Host estrangeiro. Use o endpoint local impresso de um cliente MCP. Se uma aba parar de responder, as leituras de página retornam PAGE_UNRESPONSIVE; navigate e close_tab permanecem disponíveis. Inspecione o estado da página antes de repetir qualquer ação relatada como outcome: "unknown" e mayHaveExecuted: true.
Instalação com Um Comando
npx -y fsb-mcp-server@latest install --claude-desktop
npx -y fsb-mcp-server@latest install --claude-code
npx -y fsb-mcp-server@latest install --cursor
npx -y fsb-mcp-server@latest install --vscode
npx -y fsb-mcp-server@latest install --windsurf
npx -y fsb-mcp-server@latest install --codex
npx -y fsb-mcp-server@latest install --all
Pré-visualizar sem gravar:
npx -y fsb-mcp-server@latest install --all --dry-run
npx -y fsb-mcp-server@latest install --list
Exemplos Manuais
Claude Code:
claude mcp add --scope user fsb -- npx -y fsb-mcp-server@latest
Codex (~/.codex/config.toml):
[mcp_servers.fsb]
command = "npx"
args = ["-y", "fsb-mcp-server@latest"]
VS Code (mcp.json):
{
"servers": {
"fsb": {
"type": "stdio",
"command": "npx",
"args": ["-y", "fsb-mcp-server@latest"]
}
}
}
Diagnósticos:
npx -y fsb-mcp-server@latest doctor
npx -y fsb-mcp-server@latest status --watch
npx -y fsb-mcp-server@latest wait-for-extension
Consulte mcp/README.md para a referência completa de ferramentas e notas de configuração específicas do cliente.
OpenCode e OpenClaw são suportados por meio de caminhos de configuração manuais ou não suportados; após editar a configuração do host, atualize ou recarregue o cliente se as ferramentas FSB não aparecerem.
Orientação de Uso do MCP
As ferramentas manuais são o caminho padrão para a maioria dos clientes externos. Elas permitem que o chamador inspecione a página, escolha um seletor, aja e verifique. run_task é útil quando o usuário quer explicitamente que o FSB execute seu próprio loop de automação, mas o controle manual é mais fácil de auditar e recuperar.
Use Observadores de Gatilho quando um chamador quiser observar um seletor para uma futura mudança de valor em vez de fazer polling manualmente. Eles são locais à sessão aberta do navegador: Chrome e a extensão FSB devem permanecer em execução, os resultados são relatados de volta ao chamador MCP, e o FSB não fornece monitoramento no servidor ou entrega por push.
Padrão manual recomendado:
- Adicione
visual_reasoneclientem chamadas de ação quando quiser a sobreposição confiável. - Use
read_pageouget_dom_snapshotpara entender a página atual. - Use
execute_jspara leituras seguras do DOM e cliques simples acionados por DOM. - Use ferramentas nativas como
click,type_text,press_keyedragquando eventos reais do navegador importarem. - Verifique com
read_page,get_page_snapshotouget_dom_snapshot. - Defina
is_final:truena última ação para limpar a sobreposição imediatamente.
Use doctor e status --watch antes de alterar configurações do cliente. A maioria das falhas MCP são problemas de conexão, ativação da extensão, aba ativa ou prontidão do script de conteúdo, não problemas de instalação.
Arquitetura
graph TB
UI["Popup / Side Panel / Options"] --> BG["MV3 Background Worker"]
BG --> AI["Universal Provider"]
BG --> CS["Content Scripts"]
BG --> MEM["Memory + Analytics"]
BG --> MCP["MCP Bridge"]
AI --> APIs["xAI / Gemini / OpenAI / Anthropic / OpenRouter / Local"]
CS --> PAGE["Web Page DOM"]
MCP --> CLIENTS["Claude Code / Codex / Cursor / VS Code / Others"]
Principais Componentes de Runtime
- Worker em segundo plano (
extension/background.js): gerencia sessões, chamadas de modelo, execução de ferramentas, roteamento MCP e orquestração de armazenamento. - Scripts de conteúdo (
extension/content/): analisam o DOM, criam referências de elementos, executam ações, transmitem o estado do DOM pelo adaptador de captura PhantomStream, aguardam estado estável e renderizam feedback visual. - Camada de IA (
extension/ai/): mecanismo universal de solicitação compatível com OpenAI, configurações de provedor, descoberta de modelos, definições de ferramentas, transcrições e histórico de ações. - Memória (
extension/lib/memory/): armazena registros episódicos, semânticos e processuais e recupera contexto prévio relevante para tarefas futuras. - Visualização (
extension/lib/visualization/): visualizações de grafo D3/site para exploração de guias e memória. - Cofre (
extension/config/secure-config.jsmais fluxos de UI): criptografa chaves de API e dados de usuário salvos no armazenamento do Chrome. - Pacote MCP (
mcp/): servidor TypeScript que traduz chamadas MCP em mensagens da ponte da extensão.
Fluxo de Automação
- O usuário ou cliente MCP envia uma tarefa.
- O FSB captura a estrutura da página ativa.
- Guias de site e memória relevantes são recuperados.
- O modelo selecionado planeja a próxima chamada de ferramenta.
- Os scripts de conteúdo executam ações do navegador e aguardam mudança visível.
- O FSB verifica o resultado, registra análises e continua ou finaliza.
Estado e Fluxo de Dados
O FSB armazena configuração e dados de runtime no armazenamento do Chrome. Chaves de API e valores sensíveis salvos passam pela camada de configuração segura. Logs de sessão, análises e registros de memória são mantidos localmente, a menos que o usuário ative explicitamente a sincronização no servidor ou use o fluxo de pareamento do dashboard de demonstração.
Durante uma tarefa, o worker em segundo plano é dono do estado da sessão e conversa com três colaboradores principais:
- scripts de conteúdo para leituras de página e ações do navegador
- o provedor selecionado para planejamento e geração de respostas
- armazenamento local para configuração, análises, memória e logs
O servidor MCP não substitui o runtime da extensão. Ele é uma ponte local que traduz solicitações MCP nas mesmas rotas do worker em segundo plano usadas pela própria UI do FSB.
Superfície de Ações do Navegador
O registro canônico de ferramentas da extensão cobre navegação, busca, clique, digitação, eventos de teclado, rolagem, espera, abas, planilhas, interações por coordenadas, uploads reais de arquivos, auxiliares de mutação do DOM, inspeção somente leitura, consulta de guias de site, busca de memória e sinais de finalização de tarefa.
O servidor MCP expõe uma superfície pública curada em torno desse registro, além de ferramentas complementares registradas diretamente no servidor:
| Superfície | Contagem | Exemplos |
|---|---|---|
| Sessões visuais | 2 | start_visual_session, end_visual_session |
| Piloto automático e navegação por agente | 4 | run_task, stop_task, get_task_status, back |
| Observadores de gatilho | 4 | trigger, stop_trigger, get_trigger_status, list_triggers |
| Controle manual | 37 | execute_js, navigate, click, type_text, drag, upload_file |
| Inspeção somente leitura | 8 | read_page, get_dom_snapshot, get_site_guide, read_sheet |
| Desenvolvedor / UAT | 1 | capture_screenshot |
| Capacidades | 2 | search_capabilities, invoke_capability |
| Observabilidade e reprodução | 7 | list_sessions, get_session_replay, replay_session |
| Cofre | 4 | list_credentials, fill_credential, use_payment_method |
Ferramentas somente leitura ignoram a fila de mutação quando seguro. capture_screenshot é semanticamente somente leitura, mas permanece serializada porque consome o recurso exclusivo de depurador do Chromium. Ferramentas de mutação são serializadas para que dois clientes não cliquem, digitem, enviem, invoquem ou naveguem ao mesmo tempo. Ferramentas de capacidade permanecem fora do registro canônico de extensão por design; search_capabilities ignora a fila, enquanto invoke_capability serializa como outras ferramentas com efeitos colaterais. Os resultados de pesquisa incluem rótulos de prontidão para que os chamadores possam distinguir t1-ready execução direta de t1-guarded-fail-closed, learn-pending e discovery-pending resultados de catálogo.
capture_screenshot captura a página composta real do Chromium, não HTML reconstruído. O MCP retorna uma imagem PNG nativa mais um arquivo gerenciado privado em ~/.fsb/screenshots; arquivos correspondentes expiram após sete dias. O piloto automático não cria um arquivo: os bytes da captura de tela vivem apenas na memória do service worker até a próxima solicitação do modelo e são excluídos de transcrições, histórico, logs, métricas e persistência. Uma captura de tela pode conter dados sensíveis visíveis da página, portanto, compartilhe ou envie o caminho retornado somente quando o destino for confiável.
Tarefas MCP gravadas podem abranger várias abas enquanto permanecem como uma sessão de histórico lógica. O ciclo de vida da tarefa (complete_task, partial_task ou fail_task) fecha esse registro de histórico; is_final apenas limpa a sobreposição visual, com expiração por inatividade como fallback de gravação. get_session_replay expõe a estrutura de reprodução verificada e sem recibo; replay_session solicita uma aprovação de manifesto exato no painel lateral do FSB, após o qual o FSB abre e mapeia as abas gravadas automaticamente.
Provedores de IA
O FSB usa um caminho de provedor universal para modelos hospedados, roteados, locais e personalizados compatíveis com OpenAI.
| Provedor | Modelo padrão ou fallback | Notas |
|---|---|---|
| xAI | grok-4-1-fast | Provedor padrão, perfil de automação rápida. |
| Google Gemini | gemini-2.5-flash | Inclui opções de modelos gratuitos/baratos dependendo da disponibilidade do Google. |
| OpenAI | gpt-4o | Forte automação geral e saída estruturada. |
| Anthropic | claude-sonnet-4-6 | Forte raciocínio e fluxos de trabalho pesados em formulários. |
| OpenRouter | openai/gpt-4o | Chave única para modelos roteados; descoberta ao vivo suportada. |
| LM Studio | Lista de modelos locais ao vivo | Sem chave de API; lê /v1/models de um servidor LM Studio local. |
| Personalizado | Modelo fornecido pelo usuário | Qualquer endpoint de conclusões de chat compatível. |
A extensão inclui 30 entradas de modelos fallback e descoberta de modelos ao vivo para provedores hospedados suportados. Preços e disponibilidade de modelos mudam com frequência, portanto, use o painel do provedor como fonte de verdade para cobrança.
Notas de Configuração do Provedor
- xAI, Gemini, OpenAI, Anthropic e OpenRouter usam chaves de API salvas no armazenamento do Chrome.
- LM Studio requer que o servidor local esteja habilitado e acessível a partir do Chrome.
- Endpoints personalizados devem apontar para uma URL compatível com conclusões de chat.
- O modelo salvo é preservado mesmo quando não está na lista de fallback incluída, para que modelos recém-descobertos não sejam sobrescritos silenciosamente após uma reinicialização do service worker.
- Se a descoberta falhar, a página de opções volta para os modelos incluídos e mostra o status da descoberta inline.
A formatação de prompt específica do provedor vive na camada de IA, mas o loop de execução é intencionalmente compartilhado. Isso mantém o planejamento de ações, validação de ferramentas, armazenamento de transcrições, rastreamento de custos e tratamento de erros consistentes entre modelos.
Descoberta de Modelos e Fallbacks
A descoberta de modelos consulta endpoints de modelos do provedor quando disponíveis, filtra modelos não textuais, normaliza a lista e armazena em cache resultados bem-sucedidos. Se um provedor estiver offline, a chave estiver ausente ou a descoberta falhar, o FSB mantém a interface utilizável com modelos fallback incluídos.
A tabela de fallback atualmente inclui:
- 6 modelos xAI
- 5 modelos Gemini
- 4 modelos OpenAI
- 9 modelos Anthropic
- 6 predefinições OpenRouter
- modelos LM Studio somente ao vivo
Provedores personalizados são intencionalmente abertos. O nome do modelo e o endpoint vêm das configurações do usuário, e o provedor universal lida com o comportamento de solicitação/resposta compatível com OpenAI.
Inteligência de Site e Memória
O FSB inclui guias de site para 17 categorias, incluindo ecommerce, finanças, social, viagens, programação, e-mail, carreira, jogos, produtividade, mídia, design, notícias, utilitários, esportes, referência, música e jogos. Os guias fornecem seletores, padrões de navegação, dicas de fluxo de trabalho e peculiaridades conhecidas do site.
A memória de longo prazo registra:
- Episódica: o que aconteceu em uma sessão específica.
- Semântica: fatos aprendidos sobre um domínio ou interface.
- Procedural: fluxos de trabalho repetíveis e seletores que funcionaram.
As operações de memória são rastreadas separadamente dos custos normais de automação. O painel de opções expõe gráficos de uso, painéis de detalhes de memória, logs e controles de exportação.
Categorias de Guia
| Categoria | Exemplos |
|---|---|
| Ecommerce | Amazon, eBay, Walmart, Best Buy, Target |
| Finanças | Yahoo Finance, TradingView, Google Finance, Coinbase |
| Social | YouTube, Reddit, LinkedIn, Instagram, TikTok |
| Viagens | Booking, Kayak, Google Travel, Airbnb, companhias aéreas |
| Programação | GitHub, Stack Overflow, LeetCode, Codeforces |
| E-mail e produtividade | Gmail, Outlook, Google Workspace, Notion, Jira, Trello |
| Carreira | Workday, Greenhouse, Lever, portais de emprego de grandes empregadores |
| Mídia e design | Players de vídeo, gravadores de voz, Photopea, Miro, Excalidraw |
| Casos extremos | Controles deslizantes tipo CAPTCHA, upload de arquivos, opt-out de cookies, links de login ocultos |
Guias de site são auxiliares, não scripts codificados. O FSB ainda lê o DOM atual a cada turno e usa os guias como contexto para melhores seletores e menos erros repetidos.
Ciclo de Vida da Memória
Após uma tarefa, o FSB pode extrair memórias da transcrição da sessão e do histórico de ações. As memórias são pontuadas, marcadas, consolidadas e posteriormente recuperadas por domínio, tipo de tarefa, recência e relevância de palavras-chave. Isso permite que o FSB reutilize o que aprendeu sem colocar todas as sessões anteriores em cada prompt.
Memória e mapas de site são especialmente úteis para:
- fluxos de trabalho repetidos no mesmo domínio
- páginas com controles personalizados ou seletores instáveis
- identificar padrões bem-sucedidos de login, pesquisa, checkout ou preenchimento de formulários
- evitar seletores ruins conhecidos ou ações falhas repetidas
- visualizar a estrutura aprendida do site a partir do painel de opções
Segurança e Proteção
- Chaves de API são criptografadas com AES-GCM e armazenadas no armazenamento do Chrome.
- Fluxos de cofre de credenciais e pagamento evitam enviar segredos brutos pela ponte MCP.
- A saída de chat renderizada é sanitizada com DOMPurify.
- A automação é limitada à aba da sessão ativa quando possível.
- Logs podem ser revisados ou desabilitados para casos de uso sensíveis.
Use chaves de API separadas para desenvolvimento e produção, rotacione chaves regularmente, respeite os termos de serviço do site e supervisione a automação em qualquer coisa relacionada a contas, finanças, compras ou entrada de dados.
Limites Atuais
- O FSB não ignora restrições do navegador em páginas internas.
- O suporte à resolução de CAPTCHA é uma estrutura e integração de serviço opcional, não uma garantia.
- A extensão pode interagir com a página ativa, abas e ferramentas de coordenadas com suporte ao depurador porque essas permissões são declaradas no manifesto MV3.
upload_filerequer um caminho local absoluto, bloqueia padrões de caminho sensíveis conhecidos e registra metadados de auditoria sem persistir o caminho do disco.- Invocações de capacidade permitem todas as origens não negadas sob Auto e passam por gates de denylist, mutação, assinatura e auditoria. Apenas capacidades verificadas T1/T1b executam diretamente; capacidades protegidas ou de catálogo retornam respostas tipadas pendentes/fallback. Origens sensíveis são sinalizadas para revisão; descoberta de captura de rede em origens sensíveis ainda requer confirmação extra.
- Credenciais salvas e métodos de pagamento exigem configuração explícita do usuário e fluxos de desbloqueio.
- A automação deve ser tratada como um assistente rápido operando seu navegador, não como um trabalhador de produção não supervisionado.
Tratamento de Dados
Chamadas de provedor recebem o contexto de página/tarefa necessário para concluir a automação solicitada. Isso pode incluir texto visível da página, rótulos de formulário, seletores e instruções de tarefa fornecidas pelo usuário. Evite executar automação em páginas sensíveis, a menos que você esteja confortável em enviar esse contexto de tarefa ao provedor de modelo selecionado.
O FSB não requer uma conta FSB hospedada para uso local da extensão. O backend de demonstração e o servidor de pareamento do painel são separados da operação normal da extensão local.
Desenvolvimento
Instale as dependências raiz ao executar validação ou testes:
npm install
npm --prefix mcp install
npm --prefix showcase/angular install
Verificações comuns:
npm run validate:extension
npm test
npm run test:mcp-smoke
npm --prefix showcase/angular run build
O fluxo de trabalho de CI executa essas verificações em trabalhos separados:
- validação da extensão e testes Node
- build TypeScript do MCP e testes de fumaça
- build Angular do showcase
Outros comandos úteis:
npm run showcase:serve
npm run showcase:smoke
npm --prefix mcp run build
npm --prefix mcp run dev
Depuração:
- Inspecione o service worker em
chrome://extensions/. - Verifique o console do navegador na aba ativa para logs de script de conteúdo.
- Use o visualizador de logs da página de opções para histórico de sessão e ações.
- Para problemas de MCP, execute
npm run test:mcp-smoke, depoisnpx -y fsb-mcp-server@latest doctor, depoisnpx -y fsb-mcp-server@latest status --watch.
Diretrizes de Alteração
- Mantenha a documentação específica de comportamento próxima ao pacote que possui o comportamento.
- Atualize o README raiz apenas para configuração pública, arquitetura ou mudanças de recursos.
- Atualize
mcp/README.mdquando nomes de ferramentas, contagens, transportes, diagnósticos ou plataformas de instalador mudarem. - Atualize
extension/README.mdquando pontos de entrada do manifesto, carregamento da extensão, empacotamento ou validação mudarem. - Atualize
showcase/README.mdquando o comportamento de build Angular, deploy, crawler ou site mudar. - Prefira testes para qualquer contrato compartilhado entre a extensão e o servidor MCP; documentação desatualizada geralmente é sintoma de verificações de contrato ausentes.
Verificações de Sanidade de Lançamento
Antes de alterar uma versão de lançamento, escreva sua entrada de lançamento no changelog proprietário e execute npm run version:set:extension -- X.Y.Z ou npm run version:set:mcp -- X.Y.Z. As notas de lançamento permanecem escritas por humanos e os setters não reescrevem o histórico do changelog. Antes de cortar qualquer lançamento, execute npm run version:check e verifique:
- metadados de propriedade da extensão correspondem a
extension/manifest.json, enquanto metadados de propriedade do MCP correspondem amcp/package.json - tags
extension-vX.Y.Zemcp-vX.Y.Zcorrespondem aos seus artefatos com versão independente - badges de versão do README e seções "o que há de novo" correspondem aos metadados do pacote
- capturas de tela e logotipos resolvem a partir de caminhos rastreados
- contagens de ferramentas do README do MCP correspondem à superfície registrada em tempo de execução
- README do showcase corresponde à versão principal do Angular e ao caminho de saída do build
- nenhum comportamento de agente em segundo plano aposentado é anunciado como funcionalidade ativa
Propriedade da Documentação
O README raiz deve descrever o que um novo usuário precisa entender antes de instalar, testar ou escolher um caminho de integração. O comportamento detalhado do pacote pertence ao README do pacote que o possui. Essa divisão mantém a visão geral pública útil enquanto ainda dá aos mantenedores um lugar claro para atualizar superfícies de ferramentas, pontos de entrada da extensão ou instruções de deploy do showcase.
Agradecimentos
- OpenTabs inspirou o Catálogo de Capacidades Nativas do FSB (execução de API de primeira parte: transformar sessões de navegador autenticadas em capacidades de API reutilizáveis, assinadas e auditadas). Obrigado pela direção nessa abordagem.
Licença
Este projeto está licenciado sob a Licença MIT. Consulte LICENSE.
Suporte e Contribuição
- Relate bugs e solicitações de recursos em GitHub Issues.
- Inclua o prompt da tarefa, o site de destino, o provedor/modelo, os logs e as etapas de reprodução quando possível.
- Pull requests devem atualizar testes e documentação quando o comportamento, a configuração ou as interfaces públicas mudarem.
Feito por Lakshman Turlapati
FSB Full Self Browsing: automação com IA, acessível a todos.