E1 · Catálogo em ordem
3 minRode a conferência do catálogo.
Pronto quando: node scripts/governanca.mjs; echo "saída: $?" → GOVERNANÇA: 0 problema(s) e saída: 0; o ruim → GOVERNANÇA: 3 problema(s) e saída: 1.
Aula 7 · 16 min
Ferramenta para agente é ação do seu site feita por outro. Precisa de dono, data de aprovação, nível de autonomia e um jeito de sair do ar em minutos, sem quebrar o formulário. Nesta aula o catálogo aprovado vira um arquivo que a página e o servidor leem, um script confere e um estado desliga.
Começar a aula
Objetivo: pôr cada ferramenta num catálogo com dono, data e nível de autonomia, e desligar uma sem deploy de código nem quebrar o formulário.
Clique em cada etapa.
Do modelo de constituição de agentes do INEMA, aplicado às ferramentas do site.
Executa e registra. Para o que só lê: buscar, listar, ver.
No kit: buscar_oficinas, listar_comentarios, minhas_reservas.
Executa e notifica o responsável.
Para efeito pequeno e reversível, com aviso a quem cuida.
Prepara e espera a pessoa aprovar: o Confirmar da página, o MRTR do MCP.
No kit: reservar_vaga. Toda ação com consequência fica aqui ou abaixo.
Encaminha para uma pessoa. Não pode estar ativa.
Ex.: cancelar a matrícula de alguém, estornar pagamento.
consequência e nível acima de 1 = problema; nível 0 ativo = problema
A página lê com fetch (cache: no-store); o servidor lê do disco a cada requisição. Sem o arquivo, nada sai: falha fechada.
{
"versao_catalogo": "2026-10-19.1",
"spec_webmcp": "2026-10-16",
"protocolo_mcp": "2026-07-28",
"niveis": {
"3": "faz sozinho e registra",
"2": "faz e avisa o responsável",
"1": "propõe e espera a pessoa aprovar",
"0": "não toca: encaminha para uma pessoa"
},
"ferramentas": [
{ "nome": "buscar_oficinas", "dono": "time do site", "nivel": 3, "aprovada_em": "2026-10-19", "estado": "ativa", "superficies": ["webmcp", "mcp"] },
{ "nome": "listar_comentarios", "dono": "time do site", "nivel": 3, "aprovada_em": "2026-10-19", "estado": "ativa", "superficies": ["webmcp"] },
{ "nome": "minhas_reservas", "dono": "time do site", "nivel": 3, "aprovada_em": "2026-10-19", "estado": "ativa", "superficies": ["webmcp"] },
{ "nome": "reservar_vaga", "dono": "time do site", "nivel": 1, "aprovada_em": "2026-10-19", "estado": "ativa", "superficies": ["webmcp", "mcp"] }
]
}governanca.mjs lê as ferramentas que o código conhece (página e servidor) e compara com o catálogo.
cd ~/projetos/formacao-webmcp-expert-v72/kit
node scripts/governanca.mjs; echo "saída: $?"
node scripts/governanca.mjs governanca/ruim.json | grep -E "PROBLEMA|GOVERN"; echo "saída: ${PIPESTATUS[0]}"catálogo 2026-10-19.1 · 4 ferramentas (4 ativas) · código: 4 na página, 2 no servidor GOVERNANÇA: 0 problema(s) saída: 0 PROBLEMA reservar_vaga: tem consequência e está no nível 3 (máximo 1: propõe e espera a pessoa) PROBLEMA minhas_reservas: está no código (webmcp) mas não no catálogo aprovado PROBLEMA listar_comentarios: sem data de aprovação (AAAA-MM-DD) GOVERNANÇA: 3 problema(s) saída: 1
O catálogo ruim põe reservar_vaga no nível 3 (faria sozinho), esquece minhas_reservas e não data a aprovação de listar_comentarios.
Numa cópia da página, o estado de reservar_vaga vira desligada. Nenhum código muda.
cd ~/projetos/formacao-webmcp-expert-v72/kit node scripts/desligar.mjs reservar_vaga nativo; echo "saída: $?"
== Chromium 156.0.8078.4 (Playwright) · modo: nativo antes: WebMCP 4 ferramentas · MCP 2 ferramentas desligada: reservar_vaga (estado "desligada" no governanca.json, nenhum código mudou) depois: WebMCP 3 ferramentas · MCP 1 ferramentas formulário: a pessoa reservou of-301 normalmente DESLIGAR: ok · reservar_vaga fora do WebMCP e do MCP, formulário funcionando saída: 0
Em produção, o mesmo vale ao publicar o governanca.json novo: a página lê sem cache na próxima carga, o servidor na próxima chamada. Agente com a página já aberta ainda vê a ferramenta até recarregar.
Conferir, desligar e escrever o catálogo do seu site. Cada exercício termina num pronto quando.
Rode a conferência do catálogo.
Pronto quando: node scripts/governanca.mjs; echo "saída: $?" → GOVERNANÇA: 0 problema(s) e saída: 0; o ruim → GOVERNANÇA: 3 problema(s) e saída: 1.
Rode o ensaio de desligar reservar_vaga.
Pronto quando: node scripts/desligar.mjs reservar_vaga nativo; echo "saída: $?" → depois: WebMCP 3 ferramentas · MCP 1 ferramentas, DESLIGAR: ok e saída: 0.
Escreva o governanca.json das ferramentas do seu site: dono, data, nível e superfícies. Combine com o time quem pode mudar o estado para desligada e em quanto tempo.
Pronto quando: Na sua cópia do kit com as suas ferramentas, node scripts/governanca.mjs; echo "saída: $?" → 0 problema(s) e saída: 0.
A explicação aparece depois da resposta.
Pergunta 1 de 4
reservar_vaga tem consequência. Em que nível ela pode ficar?
Pergunta 2 de 4
O governanca.json não carregou (erro de rede). O que a página do kit faz?
Pergunta 3 de 4
Você desligou reservar_vaga no catálogo. Um agente com a página aberta há 10 minutos:
Pergunta 4 de 4
governanca.mjs acusou "está no código mas não no catálogo aprovado". O que isso evita?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.