Skip to main content
Glama
Sleywill

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

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: npx

  • Args: -y snapapi-mcp

  • Environment: 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 windsurf

Herramientas 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

url

string

*

URL a capturar

html

string

*

HTML sin procesar para renderizar (alternativa a url)

markdown

string

*

Markdown para renderizar (alternativa a url)

format

string

no

png, jpeg, webp o avif (predeterminado: png)

quality

number

no

1–100 para jpeg/webp (predeterminado: 80)

width

number

no

Ancho del viewport (predeterminado: 1280)

height

number

no

Alto del viewport (predeterminado: 800)

fullPage

boolean

no

Capturar página completa desplazable

selector

string

no

Selector CSS para captura de elementos

delay

number

no

Espera en ms tras la carga de la página antes de capturar

waitUntil

string

no

load, domcontentloaded o networkidle

darkMode

boolean

no

Esquema de color oscuro

blockAds

boolean

no

Bloquear redes de anuncios

blockCookieBanners

boolean

no

Bloquear ventanas emergentes de cookies

css

string

no

CSS personalizado para inyectar

javascript

string

no

JS personalizado para ejecutar

device

string

no

Preajuste de dispositivo (ej. iphone-15-pro) — usa list_devices para ver todos

hideSelectors

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:


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

url

string

URL a extraer

type

string

no

text (Markdown), html o links (predeterminado: text)

pages

number

no

Páginas a seguir, 1–10 (predeterminado: 1)

waitMs

number

no

Tiempo de espera adicional en ms tras la carga de la página

blockResources

boolean

no

Bloquear imágenes/medios/fuentes para acelerar

locale

string

no

Configuración regional del navegador (ej. en-US)

premiumProxy

boolean

no

Usar proxy residencial para evitar bloqueos

Ejemplos de prompts:


extract

Extrae contenido limpio y estructurado optimizado para LLMs.

Parámetros:

Parámetro

Tipo

Requerido

Descripción

url

string

URL desde la que extraer

type

string

no

markdown, text, html, article, links, images, metadata o structured (predeterminado: markdown)

selector

string

no

Limitar la extracción a un elemento CSS

waitFor

string

no

Esperar por un selector CSS antes de extraer

maxLength

number

no

Longitud máxima de caracteres

cleanOutput

boolean

no

Eliminar ruido (predeterminado: true)

blockAds

boolean

no

Bloquear redes de anuncios

blockCookieBanners

boolean

no

Bloquear ventanas emergentes de cookies

fields

object

no

Mapa de extracción de campos personalizados

Ejemplos de prompts:


pdf

Genera un PDF a partir de una URL o HTML.

Parámetros:

Parámetro

Tipo

Requerido

Descripción

url

string

*

URL a convertir a PDF

html

string

*

HTML a convertir a PDF (alternativa a url)

pdfOptions.pageSize

string

no

a4, a3, a5, letter, legal, tabloid (predeterminado: a4)

pdfOptions.landscape

boolean

no

Orientación horizontal

pdfOptions.printBackground

boolean

no

Incluir gráficos de fondo

pdfOptions.scale

number

no

Factor de escala 0.1–2

pdfOptions.marginTop

string

no

Margen superior, ej. 1cm

pdfOptions.marginBottom

string

no

Margen inferior

pdfOptions.marginLeft

string

no

Margen izquierdo

pdfOptions.marginRight

string

no

Margen derecho

delay

number

no

Espera en ms tras la carga de la página

waitUntil

string

no

load, domcontentloaded o networkidle

*Se debe proporcionar al menos uno de los siguientes: url o html.

Ejemplos de prompts:


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

url

string

URL a analizar

prompt

string

Instrucción de análisis para la IA

extractType

string

no

markdown, text, article o structured (predeterminado: article)

maxLength

number

no

Máximo de caracteres de contenido a pasar a la IA (predeterminado: 20000)

Ejemplos de prompts:


video

Graba una sesión de navegador como vídeo (WebM).

Parámetros:

Parámetro

Tipo

Requerido

Descripción

url

string

URL a grabar

duration

number

no

Duración de la grabación en segundos, 1–60 (predeterminado: 5)

width

number

no

Ancho del viewport (predeterminado: 1280)

height

number

no

Alto del viewport (predeterminado: 800)

scenario

string

no

JavaScript a ejecutar durante la grabación (scroll, click, etc.)

delay

number

no

Espera en ms antes de comenzar la grabación

waitUntil

string

no

load, domcontentloaded o networkidle

darkMode

boolean

no

Esquema de color oscuro

blockAds

boolean

no

Bloquear redes de anuncios

blockCookieBanners

boolean

no

Bloquear ventanas emergentes de cookies

device

string

no

Preajuste de dispositivo — usa list_devices para ver todos

Ejemplos de prompts:


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

SNAPAPI_API_KEY

Tu clave de API de SnapAPI (sk_live_...)

SNAPAPI_BASE_URL

No

URL base de la API (predeterminado: https://api.snapapi.pics)


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.js

Solució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*.log

  • Windows: %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_usage

  • Para 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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sleywill/snapapi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server