WebMCP Demo Store
Tienda de referencia WebMCP: el mismo catálogo de 150 productos expuesto a agentes de IA mediante llamadas a herramientas MCP en lugar de scraping del DOM: verificado por benchmarks con un 79% menos de bytes de acción, 42% menos de tokens de entrada y 8/8 tareas correctas.
Documentación
WebMCP Demo Store — servidor de un solo archivo, dos modos, un punto de referencia
La misma tienda, las mismas herramientas, dos modos de entrega:
- Modo WebMCP — la página expone su catálogo a través de llamadas a herramientas MCP (MCP sobre HTTP
/mcp, además dedocument.modelContextnativo de Chrome), de modo que un agente lee solo lo que la tarea necesita. - Modo simple — la misma tienda como un sitio web ordinario; el agente analiza páginas HTML completas, como todo agente debe hacer hoy.
Punto de referencia (catálogo de 150 productos, tareas idénticas): 79% menos bytes de acción, 42% menos tokens de entrada, 8/8 tareas correctas en ambos modos. El modo DOM gana en catálogos pequeños y luego colapsa; WebMCP gana con la edad. Informe de cruce: report.html → WebMCP_Comparison_Report.pdf.
Ejecútalo
python3 server.py # plain mode → http://localhost:9501
MCP=1 PORT=9502 python3 server.py # WebMCP mode → http://localhost:9502 + /mcp
Solo stdlib (http.server, json, uuid, threading) — sin pip install, sin dependencias.
Demos en vivo
- simple: https://demonomcp.converso.work
- WebMCP: https://demowithmcp.converso.work (descubrimiento
.well-known/mcp, endpoint/mcp) - paquete de lanzamiento (deck, whitepaper, informes): https://demowithmcp.converso.work/launch.html
Prueba de WebMCP nativo de Chrome (13 de octubre de 2026)
Chrome 154 + --enable-features=WebMCP expone document.modelContext en orígenes HTTPS (about:blank excluido).
- Registró el contrato de tienda de 5 herramientas mediante la API IMPERATIVA (
registerTool): search_products, add_to_cart, get_cart, checkout (respaldado por servidor; todas las búsquedas en la página). - Flujo de cliente estándar verificado: descubrimiento
getTools()→ llamadasexecuteTool()→ pedidos 1017/1018 realizados, selecciones T2/T4/T8 correctas (HP Pavilion 14, Razer DeathAdder, OnePlus 12R). - Peculiaridades de la compilación 154 encontradas y resueltas:
executeTool(tool, args)requiere argumentos como una cadena JSON (la forma de objeto lanza "Failed to parse input arguments"); los valores de retorno también son cadenas JSON — JSON.parse en ambos lados.- Las herramientas no se pueden volver a registrar bajo el mismo nombre (InvalidStateError) — recarga la página para restablecer.
- Nombre de bandera/característica:
--enable-features=WebMCPfunciona sin interfaz; elchrome://flags/#enable-webmcp-testingde los documentos es la ruta manual. Nota: la API esdocument.modelContext(movida desde navigator desde la compilación de julio de 2026).
- Conclusión: el contrato de herramientas de la demo es compatible con el WebMCP nativo de Chrome, no solo con nuestro shim JSON-RPC. Cuando Chrome envíe el agente cliente (Gemini-in-Chrome), la tienda ya estará lista para agentes.
Estructura del repositorio
| ruta | qué |
|---|---|
server.py | todo: tienda + carrito + pedidos + transporte MCP (MCP=1) + servicio estático/informes |
catalog.json / catalog_10.json | catálogos de demostración de 150 productos / 10 productos |
compare.py, compare_llm.py, browser_llm.py | arneses de punto de referencia (agente de modo DOM, contabilidad de tokens LLM, flujo nativo del navegador) |
make_report.py | regenera los informes HTML/PDF desde results.json / agg_150_vs_30.json |
whitepaper.html, report*.html, *.pdf, chart_*.png | artefactos de estrategia + evidencia (deck de lanzamiento incluido) |
weekly_recap.py | contadores + resumen de URL en vivo (usado por el cron de operaciones) |
Licencia
MIT.