Obter AX Code · GrátisDocumentação

Esta página é uma tradução da documentação em inglês. Comandos, identificadores e exemplos permanecem iguais. Runtime 7.24.4 · SDK 2.6.7. Original em inglês

Ponte de navegador WebMCP

Status: Experimental Escopo: público, estado atual Última revisão: 2026-10-10 Responsável: mantenedores do AX Code

A ponte WebMCP permite que o agente abra páginas em uma janela isolada do Chrome, leia essas páginas e, opcionalmente, aja sobre elas. É experimental, fica desativada por padrão e exige o Chrome 150 ou mais recente.

WebMCP é um padrão web proposto. Uma página pode registrar ferramentas estruturadas — um nome, uma descrição e um esquema de entrada — para que um agente chame essas ações diretamente. O AX Code consome as ferramentas que uma página registra e também pode ler a página e agir sobre ela.

O Codex e o ChatGPT Work documentam a versão do navegador integrado desse mesmo padrão como ferramentas do site. Essa página mostra como o aplicativo de desktop deles ativa o WebMCP, como um visitante inspeciona as ferramentas que um site oferece e como o autor de um site registra uma ferramenta. Os passos abaixo são os do AX Code.

Ativar com o Chrome

  1. Instale o Google Chrome 150 ou mais recente. O Chromium na mesma versão principal também funciona. O AX Code abre a própria janela do Chrome em um perfil novo e não interfere em uma janela do Chrome que já esteja aberta.
  2. Inicie a interface de terminal com ax-code.
  3. Clique no chip WebMCP no rodapé da barra lateral, no mesmo chip no rodapé do prompt de Início, ou execute /webmcp. O clique ou o comando é o consentimento. Nenhum navegador é iniciado antes disso. O AX Code primeiro verifica, sem iniciar um navegador, se há um Chrome 150 ou mais recente nos locais habituais e avisa você se não houver; a verificação é apenas um aviso e nunca impede a tentativa. A escolha fica salva na configuração do usuário, então a ponte volta ativada na próxima inicialização, sem outro clique.
  4. O AX Code abre essa janela isolada com o recurso WebMCP ativado (--enable-features=WebMCP). A janela não guarda logins até que você entre nela manualmente.
  5. Peça ao agente para abrir uma página. No padrão do produto, a navegação é irrestrita. Uma lista de origens configurada ou administrada a restringe.
  6. Clique no chip de novo para desativar a ponte. Isso encerra as concessões temporárias da sessão; as aprovações salvas permanecem até que você as revogue nas configurações de MCP.

O chip mostra [act] enquanto a camada de interação está ativa. O padrão do produto inclui essa camada. Para desativá-la, defina interact como false no perfil webmcp da entrada. Uma entrada salva antes conserva as camadas que já tinha.

ax-code mcp webmcp imprime um trecho de configuração. Não instala um pacote, não conecta um servidor e não grava um arquivo. Acrescente --interact para imprimir uma entrada com a camada de interação ativa, ou --executable-path /absolute/path/to/chrome para nomear um binário específico do Chrome 150 ou mais recente. Quando esse caminho está definido, o AX Code verifica a versão principal do binário antes de iniciar.

Ferramentas em uma janela do Chrome aberta por você

A janela isolada acima já tem o WebMCP ativado. Para testar ferramentas de página no perfil do Chrome que você usa ao desenvolver um site, siga o guia de WebMCP do Chrome:

  1. Abra chrome://flags/#enable-webmcp-testing.
  2. Defina o sinalizador como Ativado.
  3. Reinicie o Chrome.

Esse sinalizador vale para o perfil do Chrome que você abriu. A ponte do AX Code continua partindo do chip.

Dica no prompt

Enquanto a ponte está desativada, um prompt que cita uma URL ou um servidor local (por exemplo localhost:3000) mostra um aviso de uma linha apontando para o chip e para /webmcp. Ele aparece no máximo uma vez por sessão e três vezes no total, e nunca altera o que é enviado ao agente.

O que o agente pode fazer

Camada Ferramentas Aprovação
Páginas listar, abrir, navegar e fechar páginas; executar ferramentas que uma página registra pelo WebMCP cada chamada, salvo se um escopo compatível tiver sido salvo
Leitura instantâneo da página, captura de tela, console e metadados da requisição uma concessão por origem por sessão, ou uma aprovação de leitura salva
Interação clicar, passar o mouse, esperar, preencher, preencher formulário, pressionar tecla e responder a diálogos veja abaixo

O conteúdo da página não é confiável: uma página pode tentar conduzir o agente. A saída é identificada pela origem e limitada em tamanho.

Salvar uma aprovação

Prompts elegíveis oferecem Adicionar à lista de permissão do WebMCP com fundo vermelho. Selecione essa opção, revise o escopo e escolha Adicionar e permitir. As aprovações salvas valem para este projeto nesta máquina e permanecem após reconexões do navegador e reinícios do AX Code.

  • A listagem de páginas aprova list_pages para o navegador do AX Code, inclusive títulos e URLs de todas as origens abertas. Ela não aprova o conteúdo da página.
  • A navegação aprova abrir ou ir até uma origem exata.
  • A leitura aprova instantâneos, capturas de tela, console e metadados de rede em uma origem exata. Outras origens e portas precisam da própria aprovação.
  • Fechar aprova encerrar qualquer página que esteja nessa origem exata, inclusive páginas com trabalho não salvo. É uma escolha separada: aprovações de navegação e de leitura não a concedem. A origem de destino é verificada de novo antes do fechamento.

Depois da primeira aprovação de leitura, o AX Code continua essa leitura na mesma chamada, após verificar a página outra vez. Uma mudança na página ou na ponte interrompe a chamada e exige uma leitura nova. Uma operação de navegador que falhou não é repetida.

As restrições de navegação e a política do administrador continuam valendo. Salvar uma aprovação não edita allowedOrigins. Digitação, cliques de consequência, diálogos e ferramentas registradas pela página mantêm as aprovações existentes. Permitir uma vez continua temporário; a contagem regressiva nunca grava uma aprovação persistente.

Selecione o link lista de permissão do WebMCP ao lado do chip WebMCP (rodapé da barra lateral da sessão e rodapé do prompt de Início), execute /webmcp-allowlist ou abra /mcp, selecione a ponte e pressione Ctrl+G. Clique duas vezes em uma entrada (ou pressione Enter duas vezes) para revogá-la; a primeira ativação marca a linha e uma segunda, em poucos segundos, confirma, de modo que um único clique nunca revoga. A linha de limpar revoga, do mesmo modo, todas as aprovações salvas dessa ponte neste projeto. Listas longas rolam. Pressione Escape ou clique fora do painel para fechá-lo.

A caixa de busca também adiciona aprovações. Digite uma origem https:// exata (ou http://localhost) e selecione a linha de navegação, leitura ou fechamento para salvá-la; uma linha de listagem de páginas é oferecida até ser salva. A ponte precisa estar conectada: uma aprovação explícita se vincula à identidade da ponte em execução e é conferida em cada chamada, exatamente como uma aprovação salva a partir de um prompt. Assim, listas de origens administradas, o interruptor da camada de leitura e a política do administrador continuam valendo. Desligar o chip WebMCP desconecta o navegador e conserva as escolhas salvas.

O armazenamento local é ~/.local/share/ax-code/webmcp-approvals.json por padrão (valem as substituições do diretório de dados XDG). As aprovações ficam vinculadas à identidade da ponte; mudar a forma de iniciar ou o perfil do navegador exige uma aprovação nova.

Um erro de navegação pode ocorrer depois que uma página abre ou muda. Quando disponível, o erro informa uma categoria reconhecida de tempo esgotado, de rede ou de página ausente, sem repetir o texto bruto de erro da ponte. Inspecione list_pages antes de decidir se deve navegar de novo. Erros de navegação não removem aprovações salvas.

Camada de interação

Passar o mouse e cliques comuns ocorrem sob uma concessão por origem, válida para 20 ações; depois disso, o mesmo prompt reaparece.

  • Digitação, teclas, diálogos, links, cliques duplos e cliques cujo nome parece uma ação de consequência (enviar, pagar, excluir, autorizar, …) perguntam todas as vezes, mostrando o alvo e o valor completo.
  • Campos cujo nome parece uma credencial são rotulados e mascarados. Valores com formato de chave de API ou de chave privada são recusados: digite as credenciais você mesmo.
  • As ações exigem um instantâneo recente da mesma página; uma página que se moveu ou um elemento desconhecido é recusado. Três recusas no mesmo turno interrompem novas ações.

As verificações baseadas no nome são heurísticas, não uma garantia. O prompt é o controle: leia-o.

Trabalhar com uma página existente

Peça ao AX Code para inspecionar as capacidades da página, desenvolver as ferramentas nativas ou diagnosticar um comportamento específico. A ferramenta browser_workflow agrupa essas tarefas sem exigir que você inicie um servidor de teste para observações comuns. Ative a ponte primeiro e identifique a página pretendida; nenhuma dessas ações abre uma página, faz login, altera o perfil do navegador ou agenda trabalho futuro.

Por exemplo: «Inspecione as ferramentas do meu aplicativo local e mostre a quais funções do aplicativo elas correspondem» ou «Capture esta página antes de eu reproduzir os resultados em branco; depois compare os erros e indique arquivos-fonte candidatos».

Inspecionar ferramentas nativas e o código-fonte

Chame status com server, pageId e o origin exato para ver as ferramentas realmente admitidas e a disponibilidade nativa ou de instantâneo. Uma listagem vazia não prova que frames inacessíveis não tenham ferramentas. Conectores já existentes podem servir melhor a tarefas que não precisam do contexto da página.

{
  "action": "inventory",
  "server": "webmcp",
  "pageId": 1,
  "origin": "http://localhost:3000",
  "sourceFiles": ["src/tools.ts", "public/search.html"]
}

Guarde o inventoryId devolvido. Passe-o como baselineId em uma chamada posterior de inventário para ver ferramentas adicionadas ou removidas e campos de esquema alterados. Os arquivos passam por verificação explícita de permissão, ficam contidos no repositório e são limitados. Registros imperativos estáticos e atributos de formulário HTML entre aspas produzem candidatos de código-fonte; nomes calculados, definições duplicadas e templates não suportados permanecem sem resolução ou ambíguos. Um nome e um esquema correspondentes reforçam um candidato, mas não provam que o navegador carregou essa revisão do código-fonte.

Gerar uma integração de aplicativo

Use author para obter código de integração que possa ser revisado:

{
  "action": "author",
  "name": "find_products",
  "description": "Find products matching a query in the current catalog.",
  "module": "./src/catalog.js",
  "exportName": "findProducts",
  "schema": {
    "type": "object",
    "properties": { "query": { "type": "string" } },
    "required": ["query"]
  },
  "format": "imperative",
  "effect": "read"
}

A função nomeada precisa ser uma exportação direta. O registro gerado recebe um AbortSignal para a limpeza do componente ou da rota. Defina acceptsSignal: true somente quando a função do aplicativo aceitar um segundo argumento {signal} e o respeitar. format: "declarative" devolve um formulário e um vínculo de módulo para envio humano; conecte o evento webmcp-result à interface do aplicativo. Campos primitivos são suportados; restrições de esquema não suportadas são rejeitadas, em vez de descartadas em silêncio. Revise a validação do aplicativo, a autorização e os efeitos reais antes de aplicar qualquer um dos modelos. Edições de campo podem disparar o salvamento automático mesmo quando o formulário exige envio humano.

Verificar a execução e a seleção de modelo em separado

Os passos já existentes de contract verificam entradas fixas e resultados esperados. Acrescente {"action":"tool_presence","name":"admin_reset","present":false} depois de uma mudança de rota ou de função para conferir se uma operação indisponível deixou de estar registrada. present: true também pode fixar descriptorHash. São pontos de controle do ciclo de vida, não um rastreio de eventos. As regressões exportadas incluem as mesmas verificações.

Use uma avaliação de seleção separada para descobrir se um modelo escolhe a ferramenta e os argumentos corretos:

{
  "action": "selection_eval",
  "inventoryId": "<returned inventory UUID>",
  "cases": [
    { "task": "Find AX products", "expected": { "name": "find_products", "arguments": { "query": "AX" } } },
    { "task": "Delete every product", "expected": { "name": null, "arguments": {} } }
  ],
  "repeats": 2
}

O modelo de API selecionado recebe apenas a tarefa e o catálogo capturado, sem ferramentas de execução e sem respostas esperadas. As chamadas são aprovadas e limitadas a 12 casos, três repetições e um prazo de avaliação de dois minutos. O relatório registra a identidade do modelo, um hash da suíte, contagens separadas de escolha e de argumento exatos, a correção conjunta e os resultados desconhecidos. As falhas permanecem no denominador. Modelos de CLI não estão disponíveis para esta avaliação, porque podem executar as próprias ferramentas. As pontuações de seleção não provam que a ferramenta esteja correta nem qualificam a Arena.

Diagnosticar antes e depois de uma ação

Chame observe com o mesmo alvo de página, sourceFiles opcional e assertions explícito, usando o esquema existente de papel/nome e de contagem/valor/marcado/desativado. Execute a ação pedida uma vez, por uma ferramenta aprovada ou manualmente. Em seguida, chame {"action":"diagnose","observationId":"<returned UUID>"}. O resultado compara os desfechos das asserções, os hashes de instantâneo, os deltas limitados de console e de metadados de requisição, as mudanças no inventário semântico e os candidatos de código-fonte. A correlação é evidência para investigar, não uma causa raiz comprovada. Sem asserções, o status é observed, e não pass.

As linhas de base ficam apenas na sessão atual do runtime, expiram após 30 minutos e se limitam a 16 por sessão. Mudanças de conexão ou de localização da página invalidam o reuso. A ponte fixada não identifica uma recarga da mesma URL, então essas comparações permanecem consultivas. Só são retidos hashes de localizações de página e de instantâneos; o texto de diagnóstico limitado e os descritores de ferramenta são evidência não confiável.

Para um problema reproduzível em localhost, promote recebe o ID da observação e um manifest normal e explícito, com o comando do servidor de teste local e os passos. Ele congela um novo cenário controlado. Resultados de observação nunca são copiados para a aceitação: execute um controle que falha antes de editar e qualifique as execuções corrigidas pelo fluxo de trabalho existente.

Repetir uma tarefa diária de observação

Uma receita sob demanda verifica uma página existente, sem navegação e sem agendamento:

{
  "action": "recipe",
  "server": "webmcp",
  "pageId": 1,
  "definition": {
    "version": 1,
    "name": "Preview health",
    "origin": "http://localhost:3000",
    "assertions": [{ "locator": { "role": "status", "name": "Ready" }, "property": "count", "equals": 1 }]
  }
}

O padrão é somente instantâneo. Itens queries opcionais contêm uma ferramenta exata name, descriptorHash, o objeto input, resultPath e equals. Eles invocam ferramentas reais do aplicativo sob a aprovação já existente por chamada; indicações de somente leitura não certificam efeitos. O resultado distingue a observação de instantâneo das chamadas ao aplicativo com efeitos não verificados e torna a verificar os instantâneos depois das consultas. Salve definições revisadas, não conteúdos capturados nem credenciais. As definições não carregam permissão e nunca se tornam recibos da Arena. Um resultado positivo significa apenas que as observações declaradas coincidiram; dados ausentes não satisfazem uma verificação.

Registrar uma ferramenta manualmente

Peça ao agente para acrescentar uma ferramenta que reutilize a lógica que a página já tem, ou registre uma a partir do JavaScript da página. O guia do Chrome cobre a API imperativa e a API declarativa de formulário. Uma ferramenta mínima somente leitura tem esta forma:

if (typeof document.modelContext?.registerTool === "function") {
  await document.modelContext.registerTool({
    name: "read_heading",
    description: "Read the main heading of the current page.",
    inputSchema: {
      type: "object",
      properties: {},
      additionalProperties: false,
    },
    annotations: { readOnlyHint: true },
    execute: async () => ({
      heading: document.querySelector("h1")?.textContent ?? "",
    }),
  })
}

Um agente compatível pode então descobrir read_heading nessa página. A página ferramentas do site da OpenAI percorre a mesma ideia pelo lado do Codex e do ChatGPT Work, inclusive como o navegador integrado deles lista as ferramentas que um site fornece.

Limites

Não há scripts, uploads, downloads, cookies, corpos de requisição, coordenadas nem arraste. Administradores podem desativar a ponte ou qualquer uma das camadas com o requisito administrado webmcp (allow, allowRead, allowInteract, allowedOrigins); a configuração do projeto e a do usuário não podem afrouxar essa exigência.

Servidores adicionados com ax-code mcp add seguem outro caminho de confiança. Veja Integrações MCP.

Depurar uma página em localhost em cinco passos

Para uma página que renderiza errado, um controle que não faz nada ou uma requisição que falha:

  1. Navegue até a página e tire um instantâneo — a árvore de acessibilidade é a linha de base estrutural. A navegação e as leituras usam as aprovações existentes.
  2. Execute uma vez a ação que falha, sob as aprovações de interação existentes.
  3. Leia o delta: erros de console e metadados de rede (método, URL, status e tipo — os corpos da requisição e da resposta ficam fora do escopo) em torno da ação. Para estado assíncrono, espere; nunca repita a ação que disparou o efeito.
  4. Veredito: PASS, FAIL ou BLOCKED, com a capacidade ausente nomeada. O reconhecimento de uma ferramenta não é prova de sucesso do aplicativo.
  5. Se a falha em localhost puder ser expressa como uma asserção estruturada, congele-a como um cenário browser_workflow (abaixo), registre o controle que falha e execute o mesmo hash duas vezes depois da correção.

Anexar evidência a um relatório de defeito

Para uma falha em localhost investigada por um cenário congelado, um pacote de evidência torna o relatório revisável: o nome e o hash do cenário, o resultado da asserção que falhou (sem o conteúdo capturado da página), os IDs de recibo de browser_workflow inspect, os hashes de instantâneo, os deltas limitados de erro de console e de metadados de rede, os links de código-fonte com os rótulos explicit/local_map/unresolved e a origem. Inclua apenas saída limitada e redigida pelo runtime — nunca corpos de requisição ou de resposta, cabeçalhos, cookies, armazenamento, conteúdo da página ou valores com formato de credencial. IDs de recibo e dados de recibo copiados são apenas referências; o estado autoritativo do recibo continua sob controle do runtime.

Reproduzir e verificar uma alteração de desenvolvimento

A ferramenta browser_workflow congela os passos de aceitação antes de você editar um aplicativo web, executa-os pela ponte WebMCP conectada e registra asserções estruturadas. Ative a ponte primeiro. O primeiro ambiente suportado é um servidor HTTP descartável em 127.0.0.1; cada execução aloca uma porta diferente e um diretório temporário de dados, além de um contexto de navegador isolado e novo. Perfis persistentes de navegador são recusados. A ponte upstream retém contextos vazios até a desconexão; depois de 32 execuções na mesma conexão, reconecte a ponte antes de continuar. O fluxo de trabalho nunca reutiliza os cookies nem o armazenamento desses contextos.

Peça ao agente para congelar um cenário com action: "freeze". Por exemplo, um test/browser-server.mjs pertencente ao projeto que aceita um argumento de porta pode usar:

{
  "action": "freeze",
  "manifest": {
    "version": 1,
    "name": "Search returns a matching result",
    "server": "node test/browser-server.mjs {port}",
    "path": "/",
    "setup": [],
    "reset": [],
    "cleanup": [],
    "steps": [
      { "action": "fill", "locator": { "role": "textbox", "name": "Search" }, "value": "example" },
      {
        "action": "assert",
        "assertion": {
          "locator": { "role": "status", "name": "One result" },
          "property": "count",
          "equals": 1
        }
      }
    ]
  }
}

Guarde o hash devolvido. Execute com {"action":"run","hash":"<hash>","server":"webmcp"} (use o nome da ponte conectada). Reproduza a falha, faça a alteração e execute o mesmo hash duas vezes. Cada execução inicia o servidor declarado, abre a própria página, verifica os passos, fecha a página e para o servidor. Os comandos de ciclo de vida rodam na raiz do repositório, pelas permissões normais do shell. {port} se expande para a porta alocada; {data} se expande para um diretório temporário entre aspas. Os comandos de preparação, reinício e limpeza precisam terminar em 15 segundos; a prontidão tem um prazo de 15 segundos e a execução no navegador tem um prazo de 120 segundos. As ações do navegador mantêm as permissões e os orçamentos de interação existentes.

Os passos suportados são clique, passar o mouse, preenchimento, asserção estruturada e verificações de contrato de ferramenta de página. Os localizadores usam um papel exato e um nome acessível. Ações com zero ou várias correspondências param como unknown; não há UID adivinhado nem alternativa de CSS ou de script. As asserções comparam contagem, valor e estado marcado ou desativado. Uma propriedade de estado ausente é desconhecida. Para renderização assíncrona, acrescente timeoutMs (0-10000, padrão 0) a um passo assert. O executor consulta instantâneos estruturados novos até a asserção coincidir ou o prazo expirar; ele nunca repete o clique ou o preenchimento anterior. O tempo limite fica congelado com o cenário e é preservado no teste exportado. Os cenários se limitam a 32 passos e 32 KiB.

inspect devolve o manifesto congelado e os recibos do runtime. Os recibos vinculam o cenário à revisão e ao conteúdo do repositório, aos desfechos das operações, aos hashes de instantâneo e aos metadados limitados de console e de rede. Código-fonte alterado, operações negadas, evidência ausente, tempos esgotados e limpeza incompleta não podem ser aprovados. Esses resultados validam as asserções declaradas; não provam todo o comportamento do aplicativo. O estado congelado e os recibos autoritativos ficam na sessão atual do runtime. Depois de reiniciar, congele e qualifique de novo; recibos JSON copiados não são aceitos como autoridade do runtime.

Exportar um teste de regressão

{"action":"export","hash":"<hash>"} devolve um módulo autônomo do Node.js que usa playwright-core. Salve o código devolvido como um teste do projeto e execute-o com AX_TEST_WEBMCP_CHROME apontando para o Chrome. Ele inicia o mesmo fixture e usa contextos novos de navegador, localizadores estáveis de papel e nome e as asserções congeladas. Execute de fato o teste exportado antes de considerá-lo validado. Os testes exportados são um artefato independente de regressão; a saída deles não é um recibo da Arena. Os passos de contrato de ferramenta de página usam o protocolo WebMCP nativo do Chrome, com hashes exatos de descritor e a saída esperada, sem avaliar scripts arbitrários da página. O Chrome precisa suportar esse protocolo experimental para exportações de contrato.

Desenvolver um contrato de ferramenta de página e investigar falhas

Com uma página aberta, {"action":"contracts","server":"webmcp","pageId":1} devolve os descritores registrados e os hashes exatos desses descritores. Congele um passo contract contendo name, descriptorHash, input, resultPath e equals. Mudanças de hash reprovam a verificação. Defina expectError: true para entradas negativas: somente um erro confirmado de execução da ferramenta de página o satisfaz; chamadas canceladas, recusa de permissão e conclusão ausente ficam como desconhecidas. Acrescente asserções depois das mutações para verificar tanto o estado resultante da página quanto o valor de retorno.

A ação template recebe name, um module relativo do aplicativo, um exportName explícito e schema. Ela verifica se a exportação local existe e devolve um esqueleto de registro. Revise-o em relação à validação de entrada, à autorização e à lógica de negócio do aplicativo antes de ativá-lo; a ferramenta não consegue estabelecer essas garantias a partir do nome de uma função exportada.

Uma lista opcional sources nomeia arquivos locais do repositório com line de base 1 e column de base 0, e, opcionalmente, um arquivo local map. Execuções com falha devolvem diagnósticos limitados e links de código-fonte rotulados como explicit, local_map ou unresolved. O mapeamento é consultivo e nunca prova uma causa raiz nem uma asserção bem-sucedida. Mapas remotos, caminhos fora do repositório e arquivos acima de 1 MiB não são lidos. A evidência de rede do navegador continua sendo apenas metadados.

Exigir evidência do navegador na Arena implement

Forneça browserScenario: "<hash>" com mode: "implement". Congele o cenário e registre uma asserção real que falha na base limpa atual antes de iniciar a Arena. Cada candidato recebe esse contrato congelado na worktree Git isolada e precisa executá-lo duas vezes com sucesso pela ponte isolada conectada. A ativação do navegador e as permissões continuam supervisionadas. A falta de acesso à ponte, conteúdo desatualizado, resultados desconhecidos ou recibos ausentes impedem a promoção, mesmo que as verificações do repositório sejam aprovadas. A verificação normal de código e as verificações de mutação ainda são executadas, e nenhum candidato é mesclado automaticamente.

Escolher a evidência com eficiência

As ferramentas WebMCP nativas descrevem operações do aplicativo; o MCP do Chrome DevTools fornece inspeção e automação do navegador. Prefira a ferramenta registrada de uma página para uma operação explícita do aplicativo e, em seguida, verifique o resultado e o estado resultante da página. Use instantâneos de acessibilidade para texto e para localizadores estáveis de elementos. Para layout, canvas ou conteúdo apenas de imagem, tire uma captura de tela: recorte até um uid de instantâneo recente ou use JPEG com qualidade reduzida para permanecer dentro dos limites embutidos. Interpretar pixels exige um modelo com capacidade de visão. Nem o WebMCP nem a lista documentada de ferramentas do MCP do DevTools oferece uma ferramenta dedicada de OCR; o texto inferido de uma imagem é consultivo e não pode satisfazer uma asserção estruturada de aceitação.

Restrinja as leituras de console com types e pageSize; restrinja os metadados de rede com resourceTypes e pageSize. Os recibos do fluxo de trabalho guardam linhas de base anteriores à ação e deltas limitados, para que erros introduzidos pela reprodução fiquem mais fáceis de encontrar. Corpos de rede e avaliação arbitrária permanecem fora da superfície concedida pela ponte. Rastreamentos de desempenho, emulação, Lighthouse, screencasts, memória e ferramentas de extensão no MCP do DevTools upstream são capacidades separadas e não são expostas por este perfil.

Veja o guia de depuração do WebMCP do Chrome e a referência de ferramentas do MCP do DevTools upstream. O branch main upstream pode diferir da ponte fixada do AX Code; somente os esquemas locais de ferramenta descrevem os argumentos suportados.