WebMCP en producción|INEMA.CLUB-PRO

Clase 7 · 16 min

Producción y gobernanza: quién aprueba una herramienta nueva, versión, apagado rápido

Una herramienta para agentes es una acción de tu sitio hecha por otro. Necesita dueño, fecha de aprobación, nivel de autonomía y una forma de salir del aire en minutos, sin romper el formulario. En esta clase el catálogo aprobado se vuelve un archivo que la página y el servidor leen, un script lo revisa y un estado lo apaga.

Comenzar la clase
Panel negro liso con una fila de interruptores, uno de ellos apagado con un seguro de seguridad rojo.

En esta clase vas a

  1. 1El catálogo aprobado (governanca.json)
  2. 2Niveles de autonomía de 0 a 3
  3. 3El script que compara código × catálogo
  4. 4Apagar una herramienta y mantener el formulario

Objetivo: poner cada herramienta en un catálogo con dueño, fecha y nivel de autonomía, y apagar una sin hacer deploy de código ni romper el formulario.

01La vida de una herramienta

Haz clic en cada etapa.

Haz clic en cada bloque del diagrama para ver qué hace.

02Niveles de autonomía

Del modelo de constitución de agentes de INEMA, aplicado a las herramientas del sitio.

1. 3

Ejecuta y registra. Para lo que solo lee: buscar, listar, ver.

En el kit: buscar_oficinas, listar_comentarios, minhas_reservas.

03El catálogo aprobado

La página lo lee con fetch (cache: no-store); el servidor lo lee del disco en cada solicitud. Sin el archivo, nada sale: falla cerrada.

Archivo · kit/pagina/governanca.json
{
  "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"] }
  ]
}

04Comparar código × catálogo

governanca.mjs lee las herramientas que el código conoce (página y servidor) y las compara con el catálogo.

Terminal · catálogo del kit y catálogo malo
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]}"
Ejemplo del repositorio
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

El catálogo malo pone reservar_vaga en el nivel 3 (lo haría solo), olvida minhas_reservas y no fecha la aprobación de listar_comentarios.

05Apagar rápido

En una copia de la página, el estado de reservar_vaga pasa a desligada. No cambia ningún código.

Terminal · apagar reservar_vaga
cd ~/projetos/formacao-webmcp-expert-v72/kit
node scripts/desligar.mjs reservar_vaga nativo; echo "saída: $?"
Ejemplo del repositorio
== 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

En producción, lo mismo vale al publicar el nuevo governanca.json: la página lo lee sin caché en la próxima carga, el servidor en la próxima llamada. Un agente con la página ya abierta sigue viendo la herramienta hasta que recargue.

06Práctica

Comprueba, apaga y escribe el catálogo de tu sitio. Cada ejercicio termina en un listo cuando.

E1 · Catálogo en orden

3 min

Ejecuta la comprobación del catálogo.

Listo cuando: node scripts/governanca.mjs; echo "saída: $?" → GOVERNANÇA: 0 problema(s) y saída: 0; el malo → GOVERNANÇA: 3 problema(s) y saída: 1.

E2 · Apagar sin deploy

5 min

Ejecuta el ensayo de apagar reservar_vaga.

Listo cuando: node scripts/desligar.mjs reservar_vaga nativo; echo "saída: $?" → depois: WebMCP 3 ferramentas · MCP 1 ferramentas, DESLIGAR: ok y saída: 0.

E3 · El catálogo de tu sitio

20 min

Escribe el governanca.json de las herramientas de tu sitio: responsable, fecha, nivel y superficies. Acuerda con el equipo quién puede cambiar el estado a desligada y en cuánto tiempo.

Listo cuando: En tu copia del kit con tus herramientas, node scripts/governanca.mjs; echo "saída: $?" → 0 problema(s) y saída: 0.

07Prueba de la clase

La explicación aparece después de la respuesta.

Pregunta 1 de 4

reservar_vaga tiene consecuencias. ¿En qué nivel puede quedar?

08En tres frases

CatálogoToda tool expuesta tiene dueño, fecha, nivel y superficies en un solo archivo.
NivelLo que tiene consecuencias se queda en el 1 (propone y espera) o en el 0 (no toca).
DesligarEl estado desligada saca la tool de las dos puertas sin deploy; el formulario se queda.

Para ir más allá

Clase anteriorPróxima clase