Por qué existe snapmcp
Los agentes de IA son excelentes con texto y ciegos ante lo visual. Pídele a uno que revise un layout, lea una gráfica o confirme que un comando imprimió lo que esperabas, y tendrá que adivinar. Esa brecha aparece todo el tiempo en el trabajo real: revisar una interfaz, verificar la salida de un CLI o validar un documento renderizado.
snapmcp cierra esa brecha. Es un servidor de Model Context Protocol que le entrega una cámara al agente. En lugar de describir cómo se ve una pantalla, el agente llama a una herramienta y recibe una imagen real sobre la que puede razonar.
Qué hace
El servidor expone 13 herramientas, cada una enfocada en un tipo de captura visual. El agente elige la herramienta que corresponde a la tarea, pasa unos argumentos y recibe una imagen (o un conjunto) por el canal estándar de MCP. Sin código de pegamento ni integración distinta por host — si el host habla MCP, funciona.
Las trece herramientas
| Herramienta | Captura | Uso típico |
|---|---|---|
terminal | Salida de shell | Mostrar lo que produjo un comando |
code | Archivos fuente | Renderizar código con resaltado |
browser | Páginas web | Screenshot de página completa de una URL |
markdown | Markdown renderizado | Previsualizar documentación |
diff | Antes/después | Visualizar un cambio |
html | Markup crudo | Inspeccionar la estructura de una página |
pdf | Páginas PDF | Verificar un documento página por página |
file | Cualquier archivo | Leer y mostrar un archivo |
batch | Tipos mixtos | Capturar varias cosas a la vez |
sequence | Frames multi-paso | Grabar un proceso como serie |
gif | Frames animados | Compilar frames en un GIF |
document | Capturas mixtas | Armar un documento multi-captura |
hint | Configuración | Devolver tips de configuración |
Cómo funciona
Cada herramienta es un handler pequeño e independiente que maneja una instancia compartida de Playwright/Chromium. Las herramientas se registran con el SDK de MCP, así que el host las descubre automáticamente y la superficie es fácil de extender — agregar un tipo de captura es agregar un handler, no recablear el servidor.
snapmcp/
├── src/
│ ├── tools/ # un handler por herramienta de captura
│ ├── server.ts # punto de entrada del servidor MCP
│ └── types.ts # tipos compartidos
├── tests/ # suite de pruebas completa
├── docker/ # Dockerfile multi-arch (amd64 + arm64)
└── package.json # runtime Bun
Seguridad por defecto
Una herramienta que renderiza entrada arbitraria es un riesgo si es descuidada. snapmcp incluye protección SSRF (bloquea IPs privadas, localhost y DNS-rebinding), prevención de path-traversal y validación estricta de entrada — apuntarla a contenido no significa apuntarla a tu red interna.
Instalación y uso
Se distribuye de dos formas, para encajar tanto en local como en contenedores:
# vía npm (corre sobre Bun, cero configuración)
npx snapmcp
# vía Docker (multi-arch: amd64 + arm64)
docker pull ghcr.io/reeinharddd/snapmcp
Calidad
El proyecto está hecho para ser confiable, no solo para funcionar. Cada herramienta está cubierta por la suite de pruebas y CI corre la matriz completa en Linux, macOS y Windows en cada cambio. Los releases publican a npm y a GitHub Container Registry desde el mismo pipeline.
Qué sigue
MCP sigue siendo joven y la superficie evoluciona rápido. Los siguientes pasos son backends de captura más amplios (más allá de un solo motor de navegador) y herramientas de composición más ricas, para que un agente arme un reporte visual completo en una sola llamada.