Base: como os agentes usam um site hoje|INEMA.CLUB-PRO

Nesta aula você vai

  1. 1Ler: o que um fetch tira do seu HTML
  2. 2Operar a tela: o agente acha cada campo pelo nome
  3. 3Chamar ferramenta: MCP no servidor, WebMCP na página
  4. 4O kit do curso rodando na sua máquina

Objetivo: distinguir ler, operar a tela e chamar ferramenta e ver os três rodando contra a página de exemplo do kit.

01Um pedido, três caminhos até o seu site

Clique em cada bloco.

Clique em cada bloco do diagrama para ver o que ele faz.

Quem chama ferramenta ainda é minoria em out/2026; quem lê e quem opera a tela chegam todo dia.

02O mesmo pedido pelos três jeitos

Pedido: "agende uma revisão completa para a Ana no dia 25/10".

1. Ler

O agente baixa o HTML e descobre que existe um formulário com três rótulos. Ele sabe o que a página oferece, mas não agenda nada: ler não envia.

Se o formulário só aparece depois do JavaScript, um leitor sem navegador nem fica sabendo dele.

03Instalar o kit do curso

Uma vez só. Clona o repositório do curso em ~/projetos, instala o Playwright 1.63.0 (versão fixada, de 04/09/2026) e baixa o Chromium dele. Nenhum passo do curso chama modelo.

Terminal · instalar
[ -d ~/projetos/formacao-webmcp-base-v72 ] || git clone -q https://github.com/inematds/formacao-webmcp-base-v72 ~/projetos/formacao-webmcp-base-v72
cd ~/projetos/formacao-webmcp-base-v72/kit
npm ci --no-audit --no-fund && npx playwright install chromium
node -e "import('playwright').then(p => console.log('playwright pronto:', p.chromium.executablePath().split('/').slice(-3).join('/')))"
Exemplo do repositório
added 2 packages in 210ms
playwright pronto: chromium-1243/chrome-linux-arm64/chrome

Na primeira vez o npx playwright install chromium baixa o navegador (algumas centenas de MB). A última linha mostra a pasta do Chromium que o kit vai usar; no Mac e no Linux x86 o nome muda.

04Os três jeitos contra a página de exemplo

O kit sobe a página da Oficina Pedal Livre (fictícia) num servidor só seu, em 127.0.0.1, e roda os três jeitos. depois.html tem HTML semântico; antes.html é a mesma tela sem rótulos.

Terminal · depois e antes
cd ~/projetos/formacao-webmcp-base-v72/kit
for p in depois antes; do echo "## $p.html"; node tres-jeitos.mjs $p; echo "saída: $?"; done
Exemplo do repositório
## depois.html
1 · ler     2.2 KB de HTML · h1: Agendar revisão · <form>: 1 · <label>: 3
2 · operar  achou 3 campos e o botão pelo nome · tela diz: Pedido recebido (simulação): revisão completa em 2026-10-25, Ana
3 · chamar  document.modelContext: ausente neste Chromium 153.0.8010.12 → sem ferramentas declaradas, o agente fica no jeito 2
saída: 0
## antes.html
1 · ler     1.7 KB de HTML · h1: (sem <h1>) · <form>: 0 · <label>: 0
2 · operar  travou: não achou o campo "Seu nome" pelo nome em 2 s (o agente teria de adivinhar pela tela)
3 · chamar  document.modelContext: ausente neste Chromium 153.0.8010.12 → sem ferramentas declaradas, o agente fica no jeito 2
saída: 1

Mesma tela, resultado oposto. Em depois.html o agente agenda; em antes.html ele não acha nem o primeiro campo e o script sai com 1. O jeito 3 está ausente nas duas: a página de exemplo não tem token de origin trial.

05Os três jeitos num site real

O mesmo script contra o inema.club, que é do INEMA. No seu caso, use só o seu site: o script lê e lista, nunca clica nem executa ferramenta fora do kit.

Terminal · um site público
cd ~/projetos/formacao-webmcp-base-v72/kit
node tres-jeitos.mjs https://inema.club/; echo "saída: $?"
Modelo · o seu site
cd ~/projetos/formacao-webmcp-base-v72/kit
node tres-jeitos.mjs https://<seu-site>/<página com formulário>; echo "saída: $?"
Exemplo do repositório
1 · ler     104.2 KB de HTML · h1: INEMA.CLUB Portal INEMA · <form>: 1 · <label>: 1
2 · operar  146 controles na árvore · 0 sem nome (esses o agente teria de adivinhar pela tela)
3 · chamar  document.modelContext: presente neste Chromium 153.0.8010.12 · 8 ferramenta(s) registrada(s): buscar_conhecimento, buscar_cursos, comparar_cursos, consultar_atualizacoes, …
saída: 0

No site real o jeito 2 conta os controles da árvore e quantos não têm nome. O jeito 3 aparece: o inema.club publica um token de origin trial numa meta tag, e o Chromium 153 do kit (dentro da faixa 149–156 do trial) expõe document.modelContext. O script só chama getTools(), que lista; não executa nenhuma ferramenta.

06WebMCP em 30 segundos

Conceito em 30 s. Dois avisos de 19/10/2026: o "formulário que vira ferramenta" é a API declarativa, que ficou fora da spec e só existe no Chrome; e a segurança não fica só com o site: prompt injection não está resolvida, e o curso 4 trata disso.

WebMCP em 30 segundos · 29 sPágina do vídeo com roteiro →

07Prática

Kit instalado, os três jeitos na página de exemplo e no seu site.

E1 · Kit instalado

10 min

Rode o bloco "instalar". Se você já tem o repositório em ~/projetos, ele só instala as dependências.

Pronto quando: o bloco termina com a linha playwright pronto: seguida da pasta do Chromium (ex.: chromium-1243/…/chrome).

E2 · Mesma tela, resultado oposto

5 min

Rode o bloco "depois e antes" e compare a linha 2 das duas páginas.

Pronto quando: node tres-jeitos.mjs depois → 2 · operar achou 3 campos e o botão pelo nome e saída: 0; node tres-jeitos.mjs antes → travou e saída: 1.

E3 · O seu site pelos três jeitos

10 min

Rode o modelo com a página do seu site que tem o formulário mais importante (contato, agendamento, busca). Anote as três linhas: vão para o plano da aula 8.

Pronto quando: a saída tem as linhas 1 · ler, 2 · operar e 3 · chamar, e termina em saída: 0 (nenhum controle sem nome) ou saída: 1 com o número de controles sem nome anotado.

08Teste da aula

Pergunta 1 de 4

Um agente baixa o HTML da sua página de agendamento e responde que existe um formulário. Qual dos três jeitos ele usou?competência

09Em três frases

Três jeitosLer o HTML, operar a tela, chamar uma ferramenta declarada.
Nome é tudoPara operar a tela, o agente acha cada controle pelo papel e pelo nome.
Ferramenta é extraWebMCP só aparece com origin trial; o formulário continua sendo o caminho.

Para ir além

Próxima aula