SnapAPI MCP Server
snapapi-mcp
Servidor MCP (Model Context Protocol) para SnapAPI: toma capturas de pantalla, extrae contenido de páginas web, genera PDFs, graba vídeos y analiza páginas directamente desde herramientas de IA como Claude Desktop, Cursor, Windsurf, Cline y Zed.
¿Qué es esto?
Este paquete ejecuta un servidor MCP local que conecta tu asistente de IA con la API de captura web de SnapAPI. Una vez configurado, tu IA puede:
Tomar capturas de pantalla de cualquier URL (página completa, móvil, modo oscuro, selección de elementos, emulación de dispositivos)
Extraer contenido de páginas web y obtener texto limpio, HTML o listas de enlaces usando un navegador real
Extraer contenido optimizado para el consumo de LLM (Markdown, artículos, metadatos, datos estructurados)
Generar PDFs a partir de URLs o HTML
Grabar vídeos de sesiones de navegador con escenarios de interacción opcionales
Analizar páginas con IA (extraer + analizar en una sola llamada)
Comprobar tu cuota de uso y estadísticas de cuenta
Related MCP server: Local-MCP-server
Requisitos previos
Node.js 18 o superior
Una clave de API de SnapAPI: obtén una en app.snapapi.pics
Inicio rápido
Claude Desktop
Añádelo a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"snapapi": {
"command": "npx",
"args": ["-y", "snapapi-mcp"],
"env": {
"SNAPAPI_API_KEY": "sk_live_your_key_here"
}
}
}
}Reinicia Claude Desktop después de guardar.
Cursor
Añádelo a ~/.cursor/mcp.json:
{
"mcpServers": {
"snapapi": {
"command": "npx",
"args": ["-y", "snapapi-mcp"],
"env": {
"SNAPAPI_API_KEY": "sk_live_your_key_here"
}
}
}
}Windsurf
Añádelo a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"snapapi": {
"command": "npx",
"args": ["-y", "snapapi-mcp"],
"env": {
"SNAPAPI_API_KEY": "sk_live_your_key_here"
}
}
}
}Cline (VS Code)
Abre la configuración de Cline → MCP Servers → Add Server:
Command:
npxArgs:
-y snapapi-mcpEnvironment:
SNAPAPI_API_KEY=sk_live_tu_clave_aqui
VS Code (soporte nativo para MCP)
Añádelo a .vscode/mcp.json en tu espacio de trabajo (o en tu configuración de usuario):
{
"servers": {
"snapapi": {
"command": "npx",
"args": ["-y", "snapapi-mcp"],
"env": {
"SNAPAPI_API_KEY": "sk_live_your_key_here"
}
}
}
}Zed
Añádelo a ~/.config/zed/settings.json:
{
"context_servers": {
"snapapi": {
"command": {
"path": "npx",
"args": ["-y", "snapapi-mcp"],
"env": {
"SNAPAPI_API_KEY": "sk_live_your_key_here"
}
}
}
}
}Instalador automatizado
Ejecuta el script de ayuda incluido:
# For Claude Desktop
./install-mcp.sh claude
# For Cursor
./install-mcp.sh cursor
# For Windsurf
./install-mcp.sh windsurfHerramientas disponibles
ping
Verifica que SnapAPI sea accesible y que tu clave de API sea válida. No requiere parámetros.
Ejemplo de prompt: "Ping SnapAPI para comprobar que funciona"
screenshot
Toma una captura de pantalla de cualquier URL con una amplia personalización.
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | * | URL a capturar |
| string | * | HTML sin procesar para renderizar (alternativa a url) |
| string | * | Markdown para renderizar (alternativa a url) |
| string | no |
|
| number | no | 1–100 para jpeg/webp (predeterminado: 80) |
| number | no | Ancho del viewport (predeterminado: 1280) |
| number | no | Alto del viewport (predeterminado: 800) |
| boolean | no | Capturar página completa desplazable |
| string | no | Selector CSS para captura de elementos |
| number | no | Espera en ms tras la carga de la página antes de capturar |
| string | no |
|
| boolean | no | Esquema de color oscuro |
| boolean | no | Bloquear redes de anuncios |
| boolean | no | Bloquear ventanas emergentes de cookies |
| string | no | CSS personalizado para inyectar |
| string | no | JS personalizado para ejecutar |
| string | no | Preajuste de dispositivo (ej. |
| string[] | no | Elementos a ocultar antes de la captura |
*Se debe proporcionar al menos uno de los siguientes: url, html o markdown.
Ejemplos de prompts:
"Toma una captura de pantalla de https://example.com en modo oscuro"
"Captura https://github.com en un iPhone 15 Pro"
"Captura una captura de pantalla de página completa de https://news.ycombinator.com con anuncios bloqueados"
"Renderiza este HTML como una captura de pantalla:
<h1>Hola</h1>"
scrape
Extrae contenido de páginas web usando un navegador real (las páginas renderizadas con JavaScript funcionan).
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | sí | URL a extraer |
| string | no |
|
| number | no | Páginas a seguir, 1–10 (predeterminado: 1) |
| number | no | Tiempo de espera adicional en ms tras la carga de la página |
| boolean | no | Bloquear imágenes/medios/fuentes para acelerar |
| string | no | Configuración regional del navegador (ej. |
| boolean | no | Usar proxy residencial para evitar bloqueos |
Ejemplos de prompts:
"Extrae el contenido de texto de https://example.com/blog"
"Obtén todos los enlaces de https://news.ycombinator.com"
"Extrae https://example.com/pricing como HTML"
extract
Extrae contenido limpio y estructurado optimizado para LLMs.
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | sí | URL desde la que extraer |
| string | no |
|
| string | no | Limitar la extracción a un elemento CSS |
| string | no | Esperar por un selector CSS antes de extraer |
| number | no | Longitud máxima de caracteres |
| boolean | no | Eliminar ruido (predeterminado: true) |
| boolean | no | Bloquear redes de anuncios |
| boolean | no | Bloquear ventanas emergentes de cookies |
| object | no | Mapa de extracción de campos personalizados |
Ejemplos de prompts:
"Extrae el contenido del artículo de https://example.com/post como markdown"
"Obtén los metadatos (título, descripción, imagen OG) de https://example.com"
"Extrae el precio y la calificación de https://example.com/product"
Genera un PDF a partir de una URL o HTML.
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | * | URL a convertir a PDF |
| string | * | HTML a convertir a PDF (alternativa a url) |
| string | no |
|
| boolean | no | Orientación horizontal |
| boolean | no | Incluir gráficos de fondo |
| number | no | Factor de escala 0.1–2 |
| string | no | Margen superior, ej. |
| string | no | Margen inferior |
| string | no | Margen izquierdo |
| string | no | Margen derecho |
| number | no | Espera en ms tras la carga de la página |
| string | no |
|
*Se debe proporcionar al menos uno de los siguientes: url o html.
Ejemplos de prompts:
"Genera un PDF de https://example.com/report en A4 horizontal"
"Convierte este HTML a un PDF con márgenes de 2cm"
analyze
Extrae contenido de una URL y analízalo con un modelo de IA en una sola llamada.
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | sí | URL a analizar |
| string | sí | Instrucción de análisis para la IA |
| string | no |
|
| number | no | Máximo de caracteres de contenido a pasar a la IA (predeterminado: 20000) |
Ejemplos de prompts:
"Analiza https://example.com/article — ¿cuáles son los argumentos principales?"
"Extrae todas las especificaciones de producto de https://example.com/product"
"¿Cuál es el sentimiento de este artículo de noticias: https://example.com/news"
video
Graba una sesión de navegador como vídeo (WebM).
Parámetros:
Parámetro | Tipo | Requerido | Descripción |
| string | sí | URL a grabar |
| number | no | Duración de la grabación en segundos, 1–60 (predeterminado: 5) |
| number | no | Ancho del viewport (predeterminado: 1280) |
| number | no | Alto del viewport (predeterminado: 800) |
| string | no | JavaScript a ejecutar durante la grabación (scroll, click, etc.) |
| number | no | Espera en ms antes de comenzar la grabación |
| string | no |
|
| boolean | no | Esquema de color oscuro |
| boolean | no | Bloquear redes de anuncios |
| boolean | no | Bloquear ventanas emergentes de cookies |
| string | no | Preajuste de dispositivo — usa |
Ejemplos de prompts:
"Graba un vídeo de 10 segundos de https://example.com desplazándose hacia abajo"
"Graba https://example.com en un iPhone 15 Pro"
get_usage
Comprueba tu cuota de SnapAPI y estadísticas mensuales. No requiere parámetros.
Ejemplos de prompts:
"¿Cuántas solicitudes de SnapAPI me quedan este mes?"
"Muéstrame mi uso de SnapAPI"
list_devices
Enumera todos los preajustes de dispositivos disponibles para la emulación de capturas de pantalla y vídeo. No requiere parámetros.
Ejemplo de prompt: "¿Qué preajustes de dispositivos están disponibles para capturas de pantalla?"
Variables de entorno
Variable | Requerido | Descripción |
| Sí | Tu clave de API de SnapAPI ( |
| No | URL base de la API (predeterminado: |
Desarrollo
# Clone the repo
git clone https://github.com/Sleywill/snapapi-mcp.git
cd snapapi-mcp
# Install dependencies
npm install
# Build
npm run build
# Run locally (reads MCP protocol from stdin)
SNAPAPI_API_KEY=sk_live_your_key node dist/index.jsSolución de problemas
"SNAPAPI_API_KEY environment variable is required"
Asegúrate de que el bloque env en tu configuración de MCP incluya tu clave de API. Comprueba que comienza con sk_live_.
Las herramientas no aparecen en Claude Desktop Reinicia Claude Desktop después de guardar la configuración. Comprueba los registros de MCP en:
macOS:
~/Library/Logs/Claude/mcp*.logWindows:
%APPDATA%\Claude\logs\mcp*.log
npx tarda demasiado en la primera ejecución
Usa "args": ["-y", "snapapi-mcp"] — el flag -y confirma automáticamente el aviso de instalación sin interacción.
screenshot / scrape devuelve un error
Verifica que tu clave de API sea válida en app.snapapi.pics/dashboard
Comprueba tu cuota restante con la herramienta
get_usagePara páginas con mucho JavaScript, intenta añadir
"waitUntil": "networkidle"y un valor de"delay"
La herramienta analyze devuelve un error
El endpoint de análisis requiere créditos de la API de Anthropic en el backend de SnapAPI. Usa la herramienta extract como alternativa para obtener el contenido de la página y analizarlo tú mismo.
Licencia
MIT
Available Tools
9 toolsanalyzeA
Extract content from a URL and analyze it with an AI model. Returns AI-generated insights, summaries, sentiment, or custom analysis based on your prompt. Combines web extraction with LLM analysis in one call.
Inputs: url (required), prompt (required), extractType, maxLength.
extractA
Extract clean, structured content from a URL. Returns Markdown, plain text, article data (via Mozilla Readability), OG metadata, links, images, or custom structured fields. Optimized for feeding web content to LLMs without HTML noise.
Inputs: url (required), type, selector, waitFor, +6 more.
get_usageA
Check your SnapAPI account usage, quota, and plan details for the current billing period. Shows requests used vs. limit, remaining quota, and monthly statistics.
Inputs: no named parameters.
list_devicesA
List all available device presets for screenshot and video emulation. Each preset sets the correct viewport, device scale factor, and mobile flag (phones, tablets, desktops). Pass the device id to the screenshot or video tool.
Inputs: no named parameters.
pdfB
Generate a PDF from a URL or HTML content. Supports page sizes, margins, landscape orientation, background graphics, and custom scaling.
Inputs: url, html, pdfOptions, width, +3 more.
pingA
Check that the SnapAPI service is reachable and the API key is valid. Returns the API status and current server time. Use this to verify your configuration before making other calls.
Inputs: no named parameters.
scrapeA
Scrape a URL using a real browser and return page content as plain text (Markdown), raw HTML, or a list of links. Works on JavaScript-rendered pages.
Inputs: url (required), type, pages, waitMs, +3 more.
screenshotA
Take a screenshot of a URL or render HTML/Markdown and return the image. Supports full-page capture, device emulation, dark mode, element selection, custom CSS/JS injection, ad/cookie-banner blocking, and more.
Inputs: url, html, markdown, format, +14 more.
videoA
Record a browser session as a video (WebM). Optionally runs a JavaScript scenario (clicks, scrolls, form fills) before and during recording. Returns a URL to download the recorded video.
Inputs: url (required), width, height, duration, +7 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools are clearly distinct by output type (image, PDF, video, usage, devices), but scrape and extract overlap significantly—both return Markdown, plain text, and links from a URL. Descriptions help differentiate raw scraping from structured extraction, but an agent could still be uncertain which to choose.
Names are all lowercase and readable, but conventions are mixed: some are verb+object (get_usage, list_devices), some are bare verbs (scrape, extract, analyze, ping), and some are noun-like action commands (pdf, video, screenshot). There is no consistent verb_noun pattern, though the naming is still predictable enough to navigate.
Nine tools is a well-scoped set for a browser automation and web content API. Each tool covers a distinct core capability or supporting function, with no obvious bloat or redundancy that would make the surface feel heavy.
The tool surface covers the advertised SnapAPI capabilities thoroughly: scraping, structured extraction, screenshots, PDFs, video recording, AI analysis, device presets, usage checks, and connectivity verification. There are no obvious dead ends or missing core operations for this stateless, action-oriented API.
Maintenance
Related MCP Connectors
SnapRender gives AI agents eyes on the web through a hosted MCP server. Send a public URL and get the page back as an image, a PDF or clean markdown, with no browser to run or maintain. Capture the viewport or the full page as PNG, JPEG, WebP or PDF, at desktop size or with a phone, tablet or laptop preset, in light or dark mode. Ads and cookie banners are removed by default, and you can hide elements or click one before the capture. extract_content reads the same page as markdown, text, article, links or metadata, so an agent can see a page and read it in one session. Made for monitoring and client work: batch up to 50 URLs in one job, check the cache for free before spending a capture, share signed links that render without an API key, and get webhooks when a batch finishes or a scheduled capture spots a change. Track competitors' pricing and landing pages, or send clients current screenshots of their sites. Connect with OAuth (Google, GitHub or email) or an API key. Works with Claude, ChatGPT, Cursor, VS Code and any MCP client. Free plan: 200 screenshots a month, no credit card. Paid plans from $9 a month for 2,000 up to $199 a month for 200,000. Home: https://snap-render.com Docs: https://snap-render.com/ai-agents
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Related MCP Servers
- FlicenseAqualityDmaintenanceA lightweight Model Context Protocol (MCP) server that enables your LLM to capture screenshots of any specified URL and return only the access URL for the captured image. This tool simplifies the process of generating and sharing webpage snapshots, making it perfect for integrating visual capture ca12-
- FlicenseNot gradedqualityDmaintenanceEnables tool-calling LLMs to search the internet, capture website images, extract webpage text, and more via a local MCP server.16-
- FlicenseNot gradedqualityDmaintenanceScreenshot & Render API for AI Agents. MCP Server lets Claude, Cursor capture webpages and render HTML. Direct access, no VPN needed.-
- AlicenseNot gradedqualityDmaintenanceScreenshot and HTML Rendering MCP Server for AI Agents. Capture screenshots, render HTML to images, and generate PDFs via simple API calls. Compatible with Claude, Cursor, and any MCP client.1MIT