Obtener AX Code · GratisDocumentación

Esta página es una traducción de la documentación en inglés. Los comandos, identificadores y ejemplos no cambian. Runtime 7.24.4 · SDK 2.6.7. Original en inglés

Puente de navegador WebMCP

Estado: Experimental Alcance: público, estado actual Última revisión: 2026-10-10 Responsable: mantenedores de AX Code

El puente WebMCP permite que el agente abra páginas en una ventana aislada de Chrome, las lea y, de forma opcional, actúe sobre ellas. Es experimental, está desactivado de forma predeterminada y necesita Chrome 150 o posterior.

WebMCP es un estándar web propuesto. Una página puede registrar herramientas estructuradas — un nombre, una descripción y un esquema de entrada — para que un agente pueda invocar esas acciones directamente. AX Code consume las herramientas que registra una página y también puede leer la página y actuar sobre ella.

Codex y ChatGPT Work documentan la versión de su navegador integrado del mismo estándar como herramientas del sitio. Esa página muestra cómo su aplicación de escritorio activa WebMCP, cómo un visitante inspecciona las herramientas que ofrece un sitio y cómo el autor de un sitio registra una herramienta. Los pasos siguientes son los de AX Code.

Actívalo con Chrome

  1. Instala Google Chrome 150 o posterior. Chromium con la misma versión mayor también funciona. AX Code abre su propia ventana de Chrome con un perfil nuevo y no toca una ventana de Chrome que ya esté abierta.
  2. Inicia la interfaz de terminal con ax-code.
  3. Haz clic en la pastilla WebMCP del pie de la barra lateral, o en la misma pastilla del pie del prompt de Inicio, o ejecuta /webmcp. El clic o el comando es el consentimiento. No se inicia ningún navegador antes. AX Code comprueba primero, sin iniciar un navegador, si hay un Chrome 150 o posterior instalado en las ubicaciones habituales y avisa si no lo hay; la comprobación es un aviso y nunca bloquea el intento. Tu elección se guarda en la configuración de usuario, así que el puente vuelve a activarse en el siguiente inicio sin otro clic.
  4. AX Code abre esa ventana aislada con la función WebMCP activada (--enable-features=WebMCP). La ventana no tiene sesiones iniciadas hasta que inicies sesión allí a mano.
  5. Pide al agente que abra una página. Con el valor predeterminado del producto, la navegación no tiene restricciones. Una lista de orígenes configurada o administrada la acota.
  6. Vuelve a hacer clic en la pastilla para apagar el puente. Eso termina las concesiones temporales de la sesión; las aprobaciones guardadas permanecen hasta que las revoques en los ajustes de MCP.

La pastilla muestra [act] mientras el nivel de interacción está activo. El valor predeterminado del producto incluye ese nivel. Para desactivarlo, establece interact en false en el perfil webmcp de la entrada. Una entrada guardada antes conserva los niveles que tenía.

ax-code mcp webmcp imprime un fragmento de configuración. No instala un paquete, no conecta un servidor ni escribe un archivo. Añade --interact para imprimir una entrada con el nivel de interacción activo, o --executable-path /absolute/path/to/chrome para nombrar un binario concreto de Chrome 150+. Cuando esa ruta está definida, AX Code comprueba la versión mayor del binario antes de iniciarlo.

Herramientas en una ventana de Chrome que abriste tú

La ventana aislada anterior ya tiene WebMCP activado. Para probar las herramientas de página en el perfil de Chrome que usas al construir un sitio, sigue la guía de WebMCP de Chrome:

  1. Abre chrome://flags/#enable-webmcp-testing.
  2. Establece la marca en Habilitado.
  3. Reinicia Chrome.

Esa marca se aplica al perfil de Chrome que abriste. El puente de AX Code sigue arrancando desde la pastilla.

Indicación en el prompt

Mientras el puente está apagado, un prompt que nombra una URL o un servidor local (por ejemplo localhost:3000) muestra un aviso de una línea hacia la pastilla y /webmcp. Aparece como máximo una vez por sesión y tres veces en total, y nunca cambia lo que se envía al agente.

Qué puede hacer el agente

Nivel Herramientas Aprobación
Páginas listar, abrir, navegar y cerrar páginas; ejecutar herramientas que una página registra mediante WebMCP cada llamada, salvo que se haya guardado un ámbito admitido
Lectura instantánea de la página, captura de pantalla, consola, metadatos de la solicitud una concesión por origen y sesión, o una aprobación de lectura guardada
Interacción clic, pasar el cursor, esperar, rellenar, rellenar formulario, pulsar tecla, responder diálogos véase más abajo

El contenido de la página no es de confianza: una página puede intentar dirigir al agente. La salida se etiqueta con su origen y tiene un límite de tamaño.

Guardar una aprobación

Los prompts aptos ofrecen Añadir a la lista de permitidos de WebMCP con fondo rojo. Selecciónalo, revisa el ámbito y luego elige Añadir y permitir. Las aprobaciones guardadas se aplican a este proyecto en esta máquina y sobreviven a las reconexiones del navegador y a los reinicios de AX Code.

  • El listado de páginas aprueba list_pages para el navegador de AX Code, incluidos títulos y URL de todos los orígenes abiertos. No aprueba el contenido de la página.
  • La navegación aprueba abrir o navegar a un origen exacto.
  • La lectura aprueba instantáneas, capturas de pantalla, consola y metadatos de red en un origen exacto. Otros orígenes y puertos necesitan su propia aprobación.
  • El cierre aprueba cerrar cualquier página que esté ahora en un origen exacto, incluidas las páginas con trabajo sin guardar. Es una elección aparte: las aprobaciones de navegación y lectura no lo conceden. El origen de destino se comprueba de nuevo antes de cerrar.

Tras la primera aprobación de lectura, AX Code continúa esa lectura en la misma llamada después de volver a comprobar la página. Un cambio de página o de puente detiene la llamada y exige una lectura nueva. No reproduce una operación de navegador fallida.

Las restricciones de navegación y la política del administrador siguen aplicándose. Guardar una aprobación no edita allowedOrigins. La escritura, los clics con consecuencias, los diálogos y las herramientas registradas por la página conservan sus aprobaciones existentes. Permitir una vez sigue siendo temporal; la cuenta atrás nunca guarda una aprobación persistente.

Selecciona el enlace lista de permitidos de WebMCP junto a la pastilla WebMCP (pie de la barra lateral de la sesión y pie del prompt de Inicio), ejecuta /webmcp-allowlist o abre /mcp, selecciona el puente y pulsa Ctrl+G. Haz doble clic en una entrada (o pulsa Intro dos veces) para revocarla; la primera activación marca la fila y una segunda en unos segundos confirma, así que un solo clic nunca revoca. La fila de borrado revoca todas las aprobaciones guardadas de ese puente en este proyecto del mismo modo. Las listas largas se desplazan. Pulsa Escape o haz clic fuera del panel para cerrarlo.

El cuadro de búsqueda también añade aprobaciones. Escribe un origen https:// exacto (o http://localhost) y luego selecciona la fila de navegación, lectura o cierre para guardarla; se ofrece una fila de listado de páginas hasta que se guarda. El puente debe estar conectado: una aprobación explícita se vincula a la identidad del puente en ejecución y se comprueba en cada llamada exactamente como una guardada desde un prompt, así que las listas de orígenes administradas, el interruptor del nivel de lectura y la política del administrador siguen aplicándose. Apagar la pastilla WebMCP desconecta el navegador y conserva las elecciones guardadas.

El almacén local es ~/.local/share/ax-code/webmcp-approvals.json de forma predeterminada (se aplican las sustituciones del directorio de datos XDG). Las aprobaciones se vinculan a la identidad del puente; cambiar su lanzamiento o el perfil del navegador exige una aprobación nueva.

Un error de navegación puede ocurrir después de que una página se abra o cambie. El error informa de una categoría reconocida de tiempo de espera, red o página ausente cuando está disponible, sin repetir el texto de error bruto del puente. Inspecciona list_pages antes de decidir si navegar de nuevo. Los errores de navegación no eliminan las aprobaciones guardadas.

Nivel de interacción

Pasar el cursor y los clics ordinarios se ejecutan bajo una concesión por origen, válida para 20 acciones, y luego vuelve el mismo prompt.

  • La escritura, las pulsaciones de tecla, los diálogos, los enlaces, los doble clics y los clics cuyo nombre suena consecuente (enviar, pagar, eliminar, autorizar, …) preguntan cada vez, mostrando el destino y el valor completo.
  • Los campos cuyo nombre parece una credencial se etiquetan y se enmascaran. Los valores con forma de claves de API o claves privadas se rechazan: escribe las credenciales tú mismo.
  • Las acciones necesitan una instantánea reciente de la misma página; una página movida o un elemento desconocido se rechaza. Tres rechazos en un turno detienen más acciones.

Las comprobaciones basadas en el nombre son heurísticas, no una garantía. El prompt es el control, así que léelo.

Trabajar con una página existente

Pide a AX Code que inspeccione las capacidades de la página, desarrolle sus herramientas nativas o diagnostique un comportamiento concreto. La herramienta browser_workflow agrupa estas tareas sin exigirte iniciar un servidor de pruebas para observaciones ordinarias. Activa primero el puente e identifica la página prevista; ninguna de estas acciones abre una página, inicia sesión, cambia el perfil del navegador ni programa trabajo futuro.

Por ejemplo: «Inspecciona las herramientas de mi aplicación local y muestra a qué funciones de la aplicación corresponden», o «Captura esta página antes de que yo reproduzca los resultados en blanco; luego compara los errores y señálame archivos fuente candidatos».

Inspeccionar herramientas nativas y su código fuente

Llama a status con server, pageId y el origin exacto para ver las herramientas admitidas reales y la disponibilidad nativa o de instantánea. Un listado vacío no establece que los marcos inaccesibles no tengan herramientas. Los conectores existentes pueden encajar mejor en tareas que no necesitan el contexto de la página.

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

Conserva el inventoryId devuelto. Pásalo como baselineId en una llamada de inventario posterior para ver herramientas añadidas o eliminadas y campos de esquema cambiados. Los archivos se comprueban de forma explícita en permisos, están contenidos en el repositorio y acotados. Los registros imperativos estáticos y los atributos de formulario HTML entre comillas producen candidatos de código fuente; los nombres calculados, las definiciones duplicadas y las plantillas no admitidas quedan sin resolver o son ambiguos. Un nombre y un esquema coincidentes corroboran un candidato, pero no prueban que el navegador cargara esa revisión del código fuente.

Generar una integración de aplicación

Usa author para devolver código de integración revisable:

{
  "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"
}

La función nombrada debe ser una exportación directa. El registro generado toma un AbortSignal para la limpieza del componente o de la ruta. Establece acceptsSignal: true solo cuando la función de la aplicación acepta un segundo argumento {signal} y lo respeta. format: "declarative" devuelve un formulario más un enlace de módulo para el envío humano; conecta su evento webmcp-result a la interfaz de la aplicación. Se admiten campos primitivos; las restricciones de esquema no admitidas se rechazan en lugar de descartarse en silencio. Revisa la validación de la aplicación, la autorización y los efectos reales antes de aplicar cualquiera de las plantillas. Las ediciones de campos pueden disparar el autoguardado incluso cuando un formulario exige envío humano.

Comprobar la ejecución y la selección de modelo por separado

Los pasos existentes de contract verifican entradas fijas y resultados esperados. Añade {"action":"tool_presence","name":"admin_reset","present":false} después de un cambio de ruta o de rol para comprobar que una operación no disponible se dio de baja. present: true también puede fijar descriptorHash. Son puntos de control del ciclo de vida, no un rastro de eventos. Las regresiones exportadas incluyen las mismas comprobaciones.

Usa una evaluación de selección aparte para descubrir si un modelo elige la herramienta y los argumentos correctos:

{
  "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
}

El modelo de API seleccionado recibe solo la tarea y el catálogo capturado, sin herramientas de ejecución ni respuestas esperadas. Las llamadas se aprueban y se acotan a 12 casos, tres repeticiones y un plazo de evaluación de dos minutos. El informe registra la identidad del modelo, un hash de la suite, recuentos separados de elección y argumentos exactos, la corrección conjunta y los resultados desconocidos. Los fallos permanecen en el denominador. Los modelos de CLI no están disponibles para esta evaluación porque pueden ejecutar sus propias herramientas. Las puntuaciones de selección no prueban la corrección de la herramienta ni cualifican Arena.

Diagnosticar antes y después de una acción

Llama a observe con el mismo destino de página, sourceFiles opcional y assertions explícito usando el esquema existente de rol/nombre y count/value/checked/disabled. Realiza la acción solicitada una vez mediante una herramienta aprobada o a mano. Luego llama a {"action":"diagnose","observationId":"<returned UUID>"}. El resultado compara los desenlaces de las aserciones, los hashes de instantánea, los deltas acotados de consola y de metadatos de solicitud, los cambios del inventario semántico y los candidatos de código fuente. La correlación es evidencia para investigar, no una causa raíz demostrada. Sin aserciones el estado es observed, no pass.

Las líneas base se conservan solo en la sesión actual del entorno de ejecución, caducan a los 30 minutos y se limitan a 16 por sesión. Los cambios de conexión o de ubicación de la página invalidan la reutilización. El puente fijado no puede identificar una recarga de la misma URL, así que estas comparaciones siguen siendo orientativas. Solo se conservan hashes de ubicaciones de página e instantáneas; el texto de diagnóstico acotado y los descriptores de herramientas son evidencia no confiable.

Para un problema reproducible en localhost, promote toma el ID de observación y un manifest normal explícito que contiene el comando del servidor de pruebas local y los pasos. Congela un escenario controlado nuevo. Los resultados de observación nunca se copian en la aceptación: ejecuta un control que falle antes de editar y cualifica las ejecuciones corregidas mediante el flujo existente.

Repetir una tarea de observación diaria

Una receta bajo demanda comprueba una página existente sin navegación ni programación:

{
  "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 }]
  }
}

El valor predeterminado es solo instantánea. Los queries opcionales contienen un name de herramienta exacto, descriptorHash, un objeto input, resultPath y equals. Invocan herramientas reales de la aplicación bajo la aprobación existente por llamada; las pistas de solo lectura no certifican efectos. El resultado distingue de forma explícita la observación de instantánea de las llamadas a la aplicación con efectos no verificados, y vuelve a comprobar las instantáneas después de las consultas. Guarda definiciones revisadas, no contenidos capturados ni credenciales. Las definiciones no llevan permiso y nunca se convierten en recibos de Arena. Un acierto significa solo que las observaciones declaradas coincidieron; los datos ausentes no pueden satisfacer una comprobación.

Registrar una herramienta a mano

Pide al agente que añada una herramienta que reutilice lógica que tu página ya tiene, o registra una desde el JavaScript de la página. La guía de Chrome cubre la API imperativa y la API de formulario declarativa. Una herramienta mínima de solo lectura tiene este aspecto:

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 ?? "",
    }),
  })
}

Un agente compatible puede entonces descubrir read_heading en esa página. La página herramientas del sitio de OpenAI recorre la misma idea desde el lado de Codex y ChatGPT Work, incluido cómo su navegador integrado lista las herramientas que proporciona un sitio.

Límites

Sin scripts, subidas, descargas, cookies, cuerpos de solicitud, coordenadas ni arrastre. Los administradores pueden desactivar el puente o cualquiera de los dos niveles con el requisito administrado webmcp (allow, allowRead, allowInteract, allowedOrigins); la configuración del proyecto y del usuario no puede relajarlo.

Los servidores que añades con ax-code mcp add son una vía de confianza distinta. Consulta Integraciones MCP.

Depurar una página de localhost en cinco pasos

Para una página que se renderiza mal, un control que no hace nada o una solicitud que falla:

  1. Navega a la página y toma una instantánea: el árbol de accesibilidad es la línea base estructural. La navegación y las lecturas usan las aprobaciones existentes.
  2. Realiza la acción que falla una vez, bajo las aprobaciones de interacción existentes.
  3. Lee el delta: errores de consola y metadatos de red (método, URL, estado, tipo; los cuerpos de solicitud y respuesta quedan fuera de alcance) alrededor de la acción. Para el estado asíncrono, espera; nunca repitas la acción que lo dispara.
  4. Veredicto: PASS, FAIL o BLOCKED, con la capacidad ausente nombrada. Un acuse de herramienta no es prueba de éxito de la aplicación.
  5. Si el fallo de localhost puede expresarse como una aserción estructurada, congélalo como un escenario browser_workflow (más abajo), registra el control que falla y ejecuta el mismo hash dos veces después de la corrección.

Adjuntar evidencia a un informe de error

Para un fallo de localhost investigado mediante un escenario congelado, un paquete de evidencia hace que el informe sea revisable: el nombre y el hash del escenario, el resultado de la aserción que falla (sin contenido de página capturado), los ID de recibo de browser_workflow inspect, los hashes de instantánea, los deltas acotados de error de consola y de metadatos de red, los enlaces de código fuente con sus etiquetas explicit/local_map/unresolved y el origen. Incluye solo salida acotada y redactada por el entorno de ejecución: nunca cuerpos de solicitud o respuesta, cabeceras, cookies, almacenamiento, contenido de página ni valores con forma de credencial. Los ID de recibo y los datos de recibo copiados son solo referencias; el estado autoritativo del recibo sigue siendo propiedad del entorno de ejecución.

Reproducir y verificar un cambio de desarrollo

La herramienta browser_workflow congela los pasos de aceptación antes de que edites una aplicación web, los ejecuta a través del puente WebMCP conectado y registra aserciones estructuradas. Activa primero el puente. El primer entorno admitido es un servidor HTTP desechable en 127.0.0.1; cada ejecución asigna un puerto distinto y un directorio de datos temporal, más un contexto de navegador aislado nuevo. Los perfiles persistentes del navegador se rechazan. El puente de origen conserva los contextos vacíos hasta la desconexión; después de 32 ejecuciones en una conexión, reconecta el puente antes de continuar. El flujo nunca reutiliza sus cookies ni su almacenamiento.

Pide al agente que congele un escenario con action: "freeze". Por ejemplo, un test/browser-server.mjs propiedad del proyecto que acepta un argumento de puerto puede 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
        }
      }
    ]
  }
}

Conserva el hash devuelto. Ejecuta con {"action":"run","hash":"<hash>","server":"webmcp"} (usa el nombre de tu puente conectado). Reproduce el fallo, haz el cambio y ejecuta el mismo hash dos veces. Cada ejecución inicia el servidor declarado, abre su propia página, comprueba los pasos, cierra la página y detiene su servidor. Los comandos de ciclo de vida se ejecutan en la raíz del repositorio mediante los permisos normales del shell. {port} se expande al puerto asignado; {data} se expande a un directorio temporal entre comillas. Los comandos de preparación, reinicio y limpieza deben terminar en 15 segundos; la disponibilidad tiene un plazo de 15 segundos y la ejecución del navegador tiene un plazo de 120 segundos. Las acciones del navegador conservan sus permisos y presupuestos de interacción existentes.

Los pasos admitidos son clic, pasar el cursor, rellenar, aserción estructurada y comprobaciones de contrato de herramienta de página. Los localizadores usan un rol exacto y un nombre accesible. Las acciones con cero o varias coincidencias se detienen como unknown; no hay un UID adivinado ni un respaldo de CSS o script. Las aserciones comparan recuento, valor o estado checked o disabled. Una propiedad de estado ausente es desconocida. Para el renderizado asíncrono, añade timeoutMs (0-10000, predeterminado 0) a un paso assert. El ejecutor sondea instantáneas estructuradas nuevas hasta que la aserción coincide o vence el plazo; nunca repite el clic o el relleno precedente. El tiempo de espera se congela con el escenario y se conserva en su prueba exportada. Los escenarios se acotan a 32 pasos y 32 KiB.

inspect devuelve el manifiesto congelado y los recibos del entorno de ejecución. Los recibos vinculan el escenario a la revisión o el contenido del repositorio, los desenlaces de las operaciones, los hashes de instantánea y los metadatos acotados de consola y red. El código fuente cambiado, las operaciones denegadas, la evidencia ausente, los tiempos de espera y la limpieza incompleta no pueden aprobar. Estos resultados validan las aserciones declaradas; no prueban cada comportamiento de la aplicación. El estado congelado y los recibos autoritativos viven en la sesión actual del entorno de ejecución. Tras reiniciar, congela y cualifica de nuevo; los recibos JSON copiados no se aceptan como autoridad del entorno de ejecución.

Exportar una prueba de regresión

{"action":"export","hash":"<hash>"} devuelve un módulo autónomo de Node que usa playwright-core. Guarda el código devuelto como prueba del proyecto y ejecútalo con AX_TEST_WEBMCP_CHROME apuntando a Chrome. Inicia el mismo fixture y usa contextos de navegador nuevos, localizadores estables de rol y nombre, y las aserciones congeladas. Ejecuta de verdad la prueba exportada antes de llamarla validada. Las pruebas exportadas son un artefacto de regresión independiente; su salida no es un recibo de Arena. Los pasos de contrato de herramienta de página usan el protocolo WebMCP nativo de Chrome con hashes exactos de descriptor y salida esperada, sin evaluar scripts arbitrarios de la página. Chrome debe admitir ese protocolo experimental para las exportaciones de contrato.

Desarrollar un contrato de herramienta de página e investigar fallos

Con una página abierta, {"action":"contracts","server":"webmcp","pageId":1} devuelve sus descriptores registrados y los hashes exactos de descriptor. Congela un paso contract que contenga name, descriptorHash, input, resultPath y equals. Los cambios de hash hacen fallar la comprobación. Establece expectError: true para entradas negativas: solo un error confirmado de ejecución de la herramienta de página lo satisface; las llamadas canceladas, el rechazo de permiso y la finalización ausente son desconocidos. Añade aserciones después de las mutaciones para comprobar también el estado resultante de la página, además del valor de retorno.

La acción template toma name, una module relativa de la aplicación, un exportName explícito y schema. Verifica que la exportación local existe y devuelve un esqueleto de registro. Revísalo frente a la validación de entrada de la aplicación, la autorización y la lógica de negocio antes de activarlo; la herramienta no puede establecer esas garantías a partir del nombre de una función exportada.

Una lista opcional sources nombra archivos locales del repositorio con line de base uno y column de base cero, y de forma opcional un archivo local map. Las ejecuciones fallidas devuelven diagnósticos acotados y enlaces de código fuente etiquetados explicit, local_map o unresolved. La correspondencia es orientativa, nunca prueba de una causa raíz ni de una aserción que aprueba. Los mapas remotos, las rutas fuera del repositorio y los archivos de más de 1 MiB no se leen. La evidencia de red del navegador sigue siendo solo metadatos.

Exigir evidencia de navegador en implement Arena

Proporciona browserScenario: "<hash>" con mode: "implement". Congela el escenario y registra una aserción que falle de verdad sobre la base limpia actual antes de iniciar Arena. Cada candidata recibe ese contrato congelado en su worktree aislado y debe ejecutarlo dos veces con éxito a través de su puente aislado conectado. La activación del navegador y los permisos siguen supervisados. El acceso ausente al puente, el contenido obsoleto, los resultados desconocidos o los recibos ausentes impiden la promoción, aunque las comprobaciones del repositorio aprueben. La verificación normal del código y las comprobaciones de mutación siguen ejecutándose, y ninguna candidata se fusiona automáticamente.

Elegir la evidencia con eficiencia

Las herramientas WebMCP nativas describen operaciones de la aplicación; Chrome DevTools MCP aporta inspección y automatización del navegador. Prefiere la herramienta registrada de una página para una operación explícita de la aplicación y luego verifica su resultado y el estado resultante de la página. Usa instantáneas de accesibilidad para el texto y localizadores estables de elementos. Para contenido de diseño, lienzo o solo imagen, toma una captura de pantalla: recorta a un uid de instantánea reciente o usa JPEG con calidad reducida para permanecer dentro de los límites en línea. Interpretar píxeles exige un modelo con capacidad de visión. Ni WebMCP ni la lista documentada de herramientas de DevTools MCP proporcionan una herramienta OCR dedicada; el texto de imagen inferido es orientativo y no puede satisfacer una aserción de aceptación estructurada.

Acota las lecturas de consola con types y pageSize; acota los metadatos de red con resourceTypes y pageSize. Los recibos del flujo conservan líneas base previas a la acción y deltas acotados para que los errores introducidos por la reproducción sean más fáciles de encontrar. Los cuerpos de red y la evaluación arbitraria quedan fuera de la superficie concedida al puente. Las trazas de rendimiento, la emulación, Lighthouse, las grabaciones de pantalla, la memoria y las herramientas de extensión del DevTools MCP de origen son capacidades aparte y no las expone este perfil.

Consulta la guía de depuración de WebMCP de Chrome y la referencia de herramientas de DevTools MCP de origen. La rama principal de origen puede diferir del puente fijado de AX Code; solo los esquemas locales de herramientas describen los argumentos admitidos.