Widgetry
2026 · SaaS en producción
ChatGPT, Claude, VS Code o Goose ya pintan interfaces dentro de la conversación: un tablero, unas cifras o un gráfico en vez de un párrafo. Es el estándar MCP Apps, y hacerlo a mano pide escribir un servidor MCP, empaquetar una vista HTML, hablar un protocolo por postMessage, fijar una CSP y desplegarlo. Widgetry te ahorra todo eso: eliges una plantilla, la adaptas, la ves tal como la va a enseñar el chat y te la llevas a tu propio servidor MCP.
La primera versión servía los widgets desde un servidor MCP de Widgetry, y el mismo día le di la vuelta. Un widget encerrado en mi servicio sirve de poco: tiene que vivir en el servidor de cada uno, junto a sus tools y sus datos. Así que la salida principal es llevárselo, y el endpoint de Widgetry se quedó para probar sin servidor propio. Y luego, la otra mitad: que los widgets te los haga tu agente, por ese mismo endpoint, con los mismos permisos que tendrías tú en la web.
Por debajo es TanStack Start sobre Postgres, con una capa de servicios donde viven todas las reglas, para que la web, la API y el MCP apliquen las mismas sin repetirlas. Corre en Cloud Run, en su propio esquema de la base del agregador del micropodcast. La portada es pública; para todo lo demás hay que entrar con Google.
Por partes
Tipo y diseño, por separado
Un widget es una plantilla Liquid con su CSS y el esquema de los datos que pinta, y si el marcado no llega, un script opcional con librerías de un catálogo cerrado y de versión fijada: three.js, GSAP, d3 y Chart.js. Hay trece tipos, del tablero al globo 3D, y veinte diseños de serie: el de la casa, cinco clásicos y catorce inspirados en marcas conocidas, de las que solo toman colores, radios y carácter tipográfico, nunca logotipos. Tipo y diseño son ejes separados: la plantilla solo lee unos tokens que cada diseño fija, así que cualquier tipo funciona con cualquier diseño. Y un diseñador para crear los tuyos partiendo de uno de serie.
Ver lo que verá el chat
El editor deja tocar los datos, el marcado, los estilos, el script y el esquema, valida los datos contra ese esquema y guarda solo. La vista previa no imita a un chat: es un host MCP Apps de verdad, que habla el mismo protocolo, en claro y en oscuro. Hasta bloquea las mismas imágenes. Cada widget declara de qué orígenes puede cargarlas y eso va a la CSP del recurso y a la del propio documento, porque antes una foto se veía en el editor y llegaba rota a Claude.
Llevártelo a tu servidor
Un widget sale de dos formas. La que va por defecto es enlazarlo: tu servidor MCP lee el widget publicado desde su URL con una clave de solo lectura y una caché de un minuto, así que lo que publicas le llega sin desplegar nada. La otra es descargar el documento HTML y el manifiesto, con la tool y su CSP, para quien no quiera depender de Widgetry. Los dos snippets que registran el widget están probados con el SDK oficial de TypeScript en un servidor aparte, y si cambia el SDK se vuelven a probar.
Un agente hace lo mismo que tú
Un solo endpoint MCP, y la credencial decide la organización y las tools. Son quince: ocho de lectura para cualquiera (plantillas, widgets, diseños, la exportación) y siete de escritura para quien puede escribir, que crea, edita, publica y borra widgets y diseños como una persona en la web. Los chats como claude.ai entran con OAuth y tu cuenta; los agentes de código y los scripts, con una clave de API. Detrás hay login de Google, organizaciones con propietarios, editores y lectores, e invitaciones. Miembros, invitaciones y claves se quedan en la web a propósito: una clave creada por un agente acabaría escrita en una conversación.