webmcpify (Agent Skill)

Haga que cualquier aplicación web esté lista para agentes con WebMCP: inventario de acciones de usuario, apruebe un manifiesto de herramientas, integre herramientas, verifíquelas en Chrome y corrija fallos.

Documentación

webmcpify — la habilidad de agente WebMCP

webmcpify — make any web app agent-ready, verifiably. The WebMCP agent skill for existing web apps.

Latest release Checks MIT license WebMCP: document.modelContext

Sitio web · Documentación · Instalación · Demo · Registro de cambios

webmcpify es una habilidad de agente que hace que una aplicación web existente sea invocable por agentes de IA del navegador a través de WebMCP — document.modelContext, el estándar propuesto incubado en el W3C Web Machine Learning Community Group y en el origin trial de Chrome. Tu agente de codificación inventaría la aplicación, propone un manifiesto de herramientas para tu aprobación, integra las herramientas con un runtime mínimo incluido, y demuestra que cada una funciona en Chrome real. El código no relacionado permanece intacto — desde una página de aterrizaje estática hasta un SaaS multiinquilino.

npx skills add TueJon/webmcpify     # once
/webmcpify                          # in your app's repo, inside your coding agent

[!TIP] Nuevo en v0.6.0: reanudación consciente de evidencia — archivos de aplicación, contratos o navegadores cambiados invalidan la verificación que afectan — además de acceso al navegador con ámbito y comprobaciones independientes para cada mutación.

Cómo funciona

Pipeline: detect, inventory, you approve the tool manifest, integrate, verify in real Chrome, heal failures with capped retries, audit. Every phase reads and writes .webmcpify/manifest.json.

  • Un punto de control humano. Apruebas el manifiesto de herramientas: nombres, esquemas, ejemplos, razones de cobertura y una clase de solo lectura o mutante por herramienta. Después de eso, el agente solo regresa por lo que genuinamente no puede resolver — una aplicación que no arranca, o una herramienta que aún falla después de sus intentos de reparación limitados.
  • Bucles sobre estado persistente. Cada fase lee y escribe .webmcpify/manifest.json, por lo que una ejecución se reanuda entre sesiones, ventanas de contexto e incluso diferentes agentes. La evidencia registrada le dice qué comprobaciones siguen siendo válidas.
  • Prueba, no promesas. Cada herramienta se enumera y ejecuta a través del getTools() / executeTool() nativo de Chrome, afirmando sobre el resultado de la herramienta y el estado de la interfaz de usuario resultante.

Lo que tu agente añade a tu aplicación

Del fixture de prueba reproducible. Primero, la entrada del manifiesto que apruebas en la puerta (abreviado):

{
  "id": "set_release_filter",
  "mutating": "client",                        // browser state only — no server write
  "inputSchema": {
    "type": "object",
    "properties": { "category": { "type": "string", "enum": ["all", "feature", "fix"] } },
    "required": ["category"],
    "additionalProperties": false
  },
  "source": ["proof/demo/app.js:applyFilter"],  // the UI's existing code path
  "examples": { "valid": { "category": "fix" }, "invalid": { "category": "private" } },
  "expect": { "result": "2 release notes visible",
              "ui": "only the two synthetic fix notes remain visible" },
  "cleanup": "execute the same UI path with category=all"
}

Luego la integración: un registro que llama a la ruta de código que la interfaz de usuario ya usa, a través del runtime incluido.

import { createToolScope } from './webmcpify.js';  // vendored, MIT, ~290 lines
import { applyFilter } from './app.js';           // existing UI logic, unchanged

createToolScope('proof-release-notes', [{
  name: 'set_release_filter',
  description: 'Filters the visible synthetic release notes by category '
    + "using the page's existing filter path.",
  inputSchema: schema,                             // the approved schema above
  annotations: { readOnlyHint: false, untrustedContentHint: false, consequentialHint: false },
  execute: ({ category }) => {
    if (!schema.properties.category.enum.includes(category)) {
      return 'ERROR: category must be one of all, feature, or fix.';
    }
    return `${applyFilter(category)} release notes visible for ${category}.`;
  },
}]);  // feature-detected: a safe no-op in browsers without WebMCP

Verlo en acción

Watch the uncut 63-second runtime demo: approval click, native getTools and executeTool, UI change, invalid input, cleanup

Un fixture local preparado pasa un clic de aprobación real, registra una herramienta solo de cliente, luego ejercita el document.modelContext.getTools() / executeTool() nativo, un cambio visible en la interfaz de usuario, manejo de entrada inválida y limpieza. El registro del runtime y las afirmaciones del navegador son reales; las etiquetas de fase son avanzadas por un script para legibilidad, por lo que la grabación no ejecuta las fases de inventario, integración o auditoría de la habilidad. Reproduce las comprobaciones nativas con npm run proof:verify; el paquete proof/ contiene el fixture, manifiestos antes/después, un parche ilustrativo y sumas de verificación.

Instalación

DóndeCómo
Cualquier agente — Claude Code, Codex, Cursor, opencode, Copilot y más de 70npx skills add TueJon/webmcpify
Plugin de Claude Code/plugin marketplace add TueJon/webmcpify y luego /plugin install webmcpify@webmcpify
ManualCopia skills/webmcpify/ en el directorio de habilidades de tu agente, o dile a tu agente que siga SKILL.md

El directorio de habilidades es autónomo: pipeline, guías de fase, runtime incluible y la plantilla de verificación vienen incluidos dentro.

Uso

Abre tu agente en el repositorio objetivo y elige un alcance — o simplemente di "webmcpify esta aplicación".

ComandoQué sucedeCambia tu código
/webmcpifyPipeline completo, reanudando donde el manifiesto indiqueDespués de tu aprobación
/webmcpify inventoryInvestigar y proponer el manifiesto de herramientasNunca
/webmcpify integrateIntegrar el manifiesto aprobado en lotes pequeñosSí
/webmcpify workbenchEl agente lanza un inspector visual temporal de herramientasNo — solo ayuda de desarrollo
/webmcpify verifyVerificar y reparar lo integradoSolo para corregir una herramienta que falla
/webmcpify statusDónde estamos, qué sigueNunca (solo lectura)
/webmcpify full parityCenso de cada elemento interactivo en cada ruta autenticadaDespués de tu aprobación

Núcleo curado o paridad ruta por ruta

CuradoParidad
ObjetivoUn conjunto de herramientas utilizable para las acciones que importanCompletitud auditable
ResultadoMapa revisado de ruta → herramienta para acciones principalesCenso de elementos por ruta: cada interacción se asigna a una herramienta o una razón escrita
Lo mantiene utilizable porOlas de prioridad, una regla de superposición (no dos herramientas coinciden con la misma solicitud), cobertura de rol/inquilinoRegistro con ámbito de ruta; las brechas de capacidad del cliente se informan, nunca se adivinan

El agente te pide elegir antes del inventario — no hay un valor predeterminado silencioso — y un recuento de herramientas solo nunca se llama 100%.

Garantías

GarantíaCómo se aplica
🧩El código no relacionado permanece intactoCada fragmento de diff se rastrea a una entrada del manifiesto; una auditoría final verifica contra el commit de referencia registrado; los archivos ya sucios al inicio nunca se modifican ni revierten
🔒Solo lectura primeroLas mutaciones del servidor necesitan tu aprobación explícita por herramienta; la autenticación, el registro, la facturación, los pagos y las herramientas que devuelven credenciales permanecen excluidas; las eliminaciones irreversibles solo pueden abrir la interfaz de confirmación propia de la aplicación
🛡️Tu servidor sigue siendo el límite de confianzaLas herramientas solo llaman rutas de código que tu interfaz de usuario ya usa — sin nuevos endpoints, sin omisiones
📦Cero dependenciasUn runtime MIT pequeño se incluye y se detecta por características; la aplicación se comporta igual en navegadores sin WebMCP
🚦Sin resultados imperativos ambiguosEl runtime rechaza null / undefined desnudos accidentales; las herramientas que cambian de ruta devuelven un resultado estructurado antes de la navegación y la eliminación del ámbito de ruta
🧪Ejercitado, no asumidoCada herramienta se ejecuta en Chrome real contra el resultado y el estado de la interfaz de usuario; las mutaciones se confirman a través de una ruta de lectura independiente con un vecino sin cambios; los formularios declarativos reciben el clic de envío real
📝Comprobaciones de mutación a prueba de fallosUn helper de host sin dependencias registra despachos y limpiezas, resuelve resultados verificados atómicamente y serializa ejecutores a través de un archivo lateral de bloqueo de asesoramiento en Linux y macOS/FreeBSD
♻️Reanudación honestaArchivos, contratos, runtimes o navegadores cambiados invalidan la evidencia que afectan, las dependencias desconocidas significan una re-verificación completa y las mutaciones interrumpidas se reconcilian antes de cualquier reintento (re-verificación)
🔐Acceso con ámbitoUn contexto de prueba dedicado con orígenes, cuentas y fixtures aprobados; la guía oficial se lee directamente, nunca se ejecuta como un paquete no revisado
🧭Especificación sobre marcadorLos hallazgos del verificador se clasifican, no se persiguen; la capa de descubrimiento público (/.well-known/webmcp) es una aprobación separada
Construido para escalar a grandes bases de código
  • Inventario mapea la base de código en áreas (rutas, vistas, módulos) primero, luego lee en profundidad un área por iteración — un SaaS de 500 archivos se procesa área por área, nunca en un barrido que rompa el contexto. El fan-out de sub-agentes escribe archivos de fragmentos por área; un coordinador único los fusiona.
  • Integrar funciona en lotes de un área o como máximo cinco herramientas, cada una construida y verificada por tipos — confirmada por lote solo si optaste por ello.
  • Verificar / Reparar itera por herramienta con límites de intentos y escalada honesta; las herramientas mutantes obtienen pasos de limpieza entre reintentos.
  • Interrumpir en cualquier lugar. La próxima ejecución se reanuda desde el manifiesto; status permanece de solo lectura.
Estado de la plataforma y compatibilidad

WebMCP es un origin trial (Chrome 149 en adelante; el hito estable es una estimación, no un compromiso). La exposición en producción necesita un token de origin trial; el desarrollo local necesita chrome://flags/#enable-webmcp-testing. La API ya ha cambiado durante el trial (API de pruebas eliminada 2026-07; navigator → document) — webmcpify aísla ese cambio en un archivo incluido, y su verificación sondea si el navegador acepta entrada de objeto actual o la entrada de cadena JSON heredada de Chrome 150 sin reintentar herramientas reales. La integración lee las guías oficiales de Chrome y el borrador del CG directamente.

La superficie de cliente separada de ChatGPT, limitada por modelo y cuenta, se documenta como Site tools, con hechos de disponibilidad fechados y un orden de solución de problemas. Las adaptaciones de especificación por versión están en el registro de cambios.

Qué hay en este repositorio

RutaPropósito
skills/webmcpify/SKILL.mdEl pipeline que tu agente sigue
skills/webmcpify/references/Guías de fase: inventario, integración, Workbench, runtime, verificación, re-verificación, reparación, seguridad, descubrimiento, superficies de cliente
skills/webmcpify/templates/Runtime incluible (TS + JS), diario de mutaciones duradero, Workbench visual temporal, tipos ambientales, plantilla de verificación de Playwright, manifiesto de descubrimiento
proof/Prueba reproducible en Chrome nativo: fixture, manifiestos, grabación, sumas de verificación

Proyectos relacionados

  • webmcpify.at — el sitio web del proyecto, en sí mismo listo para agentes en las tres capas: herramientas imperativas a través del runtime incluido, un formulario de instalación declarativo y un manifiesto /.well-known/webmcp publicado
  • webmachinelearning/webmcp — el borrador de especificación (W3C WebML CG)
  • GoogleChromeLabs/webmcp-tools — las demos, tipos y CLI de evaluaciones de Google (webmcpify sigue estos patrones)
  • GoogleChrome/modern-web-guidance — guías oficiales de mejores prácticas (CLI opcional; se requiere aprobación de versión y ejecución exacta)
  • Puppeteer WebMCP — API experimental de automatización WebMCP de primera clase (Chrome 151+ según documentado 2026-08-29; arnés de verificación alternativo)
  • MCP-B / WebMCP-org — polyfill, extensión, transportes y herramientas de desarrollo (webmcpify incluye un runtime mínimo en lugar de añadir dependencias)

Licencia

MIT — © Jonas Tüchler