Skip to main content
Glama
SnapAPI MCP Server

SnapAPI MCP Server

by Sleywill

snapapi-mcp

MCP (Model Context Protocol) Server für SnapAPI — Erstellen Sie Screenshots, scrapen Sie Webseiten, extrahieren Sie Inhalte, generieren Sie PDFs, nehmen Sie Videos auf und analysieren Sie Seiten direkt aus KI-Tools wie Claude Desktop, Cursor, Windsurf, Cline und Zed.

Was ist das?

Dieses Paket führt einen lokalen MCP-Server aus, der Ihren KI-Assistenten mit der SnapAPI Web-Capture-API verbindet. Sobald die Konfiguration abgeschlossen ist, kann Ihre KI:

  • Screenshots erstellen von jeder URL (ganze Seite, mobil, Dark Mode, Elementauswahl, Geräteemulation)

  • Webseiten scrapen und sauberen Text, HTML oder Linklisten mithilfe eines echten Browsers abrufen

  • Inhalte extrahieren, die für die LLM-Verarbeitung optimiert sind (Markdown, Artikel, Metadaten, strukturierte Daten)

  • PDFs generieren aus URLs oder HTML

  • Videos aufnehmen von Browsersitzungen mit optionalen Interaktionsszenarien

  • Seiten analysieren mit KI (Extrahieren + Analysieren in einem Aufruf)

  • Ihre Nutzung und Kontostatistiken überprüfen

Related MCP server: Local-MCP-server

Voraussetzungen

  • Node.js 18 oder neuer

  • Ein SnapAPI-API-Schlüssel — erhältlich unter app.snapapi.pics

Schnellstart

Claude Desktop

Fügen Sie dies zu ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %APPDATA%\Claude\claude_desktop_config.json (Windows) hinzu:

{
  "mcpServers": {
    "snapapi": {
      "command": "npx",
      "args": ["-y", "snapapi-mcp"],
      "env": {
        "SNAPAPI_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Starten Sie Claude Desktop nach dem Speichern neu.

Cursor

Fügen Sie dies zu ~/.cursor/mcp.json hinzu:

{
  "mcpServers": {
    "snapapi": {
      "command": "npx",
      "args": ["-y", "snapapi-mcp"],
      "env": {
        "SNAPAPI_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Windsurf

Fügen Sie dies zu ~/.codeium/windsurf/mcp_config.json hinzu:

{
  "mcpServers": {
    "snapapi": {
      "command": "npx",
      "args": ["-y", "snapapi-mcp"],
      "env": {
        "SNAPAPI_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Cline (VS Code)

Öffnen Sie die Cline-Einstellungen → MCP Servers → Add Server:

  • Command: npx

  • Args: -y snapapi-mcp

  • Environment: SNAPAPI_API_KEY=sk_live_your_key_here

VS Code (native MCP-Unterstützung)

Fügen Sie dies zu .vscode/mcp.json in Ihrem Arbeitsbereich (oder Ihren Benutzereinstellungen) hinzu:

{
  "servers": {
    "snapapi": {
      "command": "npx",
      "args": ["-y", "snapapi-mcp"],
      "env": {
        "SNAPAPI_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Zed

Fügen Sie dies zu ~/.config/zed/settings.json hinzu:

{
  "context_servers": {
    "snapapi": {
      "command": {
        "path": "npx",
        "args": ["-y", "snapapi-mcp"],
        "env": {
          "SNAPAPI_API_KEY": "sk_live_your_key_here"
        }
      }
    }
  }
}

Automatisierter Installer

Führen Sie das enthaltene Hilfsskript aus:

# For Claude Desktop
./install-mcp.sh claude

# For Cursor
./install-mcp.sh cursor

# For Windsurf
./install-mcp.sh windsurf

Verfügbare Tools

ping

Überprüfen Sie, ob SnapAPI erreichbar ist und Ihr API-Schlüssel gültig ist. Keine Parameter erforderlich.

Beispiel-Prompt: "Ping SnapAPI, um zu prüfen, ob es funktioniert"


screenshot

Erstellen Sie einen Screenshot einer beliebigen URL mit umfangreichen Anpassungsmöglichkeiten.

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

*

URL für die Aufnahme

html

string

*

Rohes HTML zum Rendern (Alternative zu url)

markdown

string

*

Markdown zum Rendern (Alternative zu url)

format

string

nein

png, jpeg, webp oder avif (Standard: png)

quality

number

nein

1–100 für jpeg/webp (Standard: 80)

width

number

nein

Viewport-Breite (Standard: 1280)

height

number

nein

Viewport-Höhe (Standard: 800)

fullPage

boolean

nein

Ganze scrollbare Seite aufnehmen

selector

string

nein

CSS-Selektor für Elementaufnahme

delay

number

nein

Wartezeit in ms nach dem Laden der Seite vor der Aufnahme

waitUntil

string

nein

load, domcontentloaded oder networkidle

darkMode

boolean

nein

Dunkles Farbschema

blockAds

boolean

nein

Werbenetzwerke blockieren

blockCookieBanners

boolean

nein

Cookie-Popups blockieren

css

string

nein

Benutzerdefiniertes CSS zum Injizieren

javascript

string

nein

Benutzerdefiniertes JS zum Ausführen

device

string

nein

Geräte-Preset (z. B. iphone-15-pro) — verwenden Sie list_devices, um alle zu sehen

hideSelectors

string[]

nein

Elemente, die vor der Aufnahme ausgeblendet werden sollen

*Mindestens einer der Parameter url, html oder markdown muss angegeben werden.

Beispiel-Prompts:


scrape

Scrapen Sie Webseiteninhalte mithilfe eines echten Browsers (JavaScript-gerenderte Seiten funktionieren).

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

ja

URL zum Scrapen

type

string

nein

text (Markdown), html oder links (Standard: text)

pages

number

nein

Zu verfolgende Seiten, 1–10 (Standard: 1)

waitMs

number

nein

Zusätzliche Wartezeit in ms nach dem Laden der Seite

blockResources

boolean

nein

Bilder/Medien/Schriftarten blockieren, um den Vorgang zu beschleunigen

locale

string

nein

Browser-Gebietsschema (z. B. en-US)

premiumProxy

boolean

nein

Residential Proxy verwenden, um Blockaden zu umgehen

Beispiel-Prompts:


extract

Extrahieren Sie saubere, strukturierte Inhalte, die für LLMs optimiert sind.

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

ja

URL zum Extrahieren

type

string

nein

markdown, text, html, article, links, images, metadata oder structured (Standard: markdown)

selector

string

nein

Extraktion auf ein CSS-Element begrenzen

waitFor

string

nein

Auf CSS-Selektor warten vor dem Extrahieren

maxLength

number

nein

Maximale Zeichenlänge

cleanOutput

boolean

nein

Rauschen entfernen (Standard: true)

blockAds

boolean

nein

Werbenetzwerke blockieren

blockCookieBanners

boolean

nein

Cookie-Popups blockieren

fields

object

nein

Benutzerdefinierte Feld-Extraktionszuordnung

Beispiel-Prompts:


pdf

Generieren Sie ein PDF aus einer URL oder HTML.

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

*

URL zur PDF-Konvertierung

html

string

*

HTML zur PDF-Konvertierung (Alternative zu url)

pdfOptions.pageSize

string

nein

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

pdfOptions.landscape

boolean

nein

Querformat

pdfOptions.printBackground

boolean

nein

Hintergrundgrafiken einbeziehen

pdfOptions.scale

number

nein

Skalierungsfaktor 0.1–2

pdfOptions.marginTop

string

nein

Oberer Rand, z. B. 1cm

pdfOptions.marginBottom

string

nein

Unterer Rand

pdfOptions.marginLeft

string

nein

Linker Rand

pdfOptions.marginRight

string

nein

Rechter Rand

delay

number

nein

Wartezeit in ms nach dem Laden der Seite

waitUntil

string

nein

load, domcontentloaded oder networkidle

*Mindestens einer der Parameter url oder html muss angegeben werden.

Beispiel-Prompts:


analyze

Extrahieren Sie Inhalte von einer URL und analysieren Sie diese mit einem KI-Modell in einem einzigen Aufruf.

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

ja

URL zur Analyse

prompt

string

ja

Analyseanweisung für die KI

extractType

string

nein

markdown, text, article oder structured (Standard: article)

maxLength

number

nein

Maximale Zeichenanzahl des Inhalts für die KI (Standard: 20000)

Beispiel-Prompts:


video

Nehmen Sie eine Browsersitzung als Video (WebM) auf.

Parameter:

Parameter

Typ

Erforderlich

Beschreibung

url

string

ja

URL zur Aufnahme

duration

number

nein

Aufnahmedauer in Sekunden, 1–60 (Standard: 5)

width

number

nein

Viewport-Breite (Standard: 1280)

height

number

nein

Viewport-Höhe (Standard: 800)

scenario

string

nein

JavaScript, das während der Aufnahme ausgeführt werden soll (scrollen, klicken usw.)

delay

number

nein

Wartezeit in ms vor Beginn der Aufnahme

waitUntil

string

nein

load, domcontentloaded oder networkidle

darkMode

boolean

nein

Dunkles Farbschema

blockAds

boolean

nein

Werbenetzwerke blockieren

blockCookieBanners

boolean

nein

Cookie-Popups blockieren

device

string

nein

Geräte-Preset — verwenden Sie list_devices, um alle zu sehen

Beispiel-Prompts:


get_usage

Überprüfen Sie Ihr SnapAPI-Kontingent und Ihre monatlichen Statistiken. Keine Parameter erforderlich.

Beispiel-Prompts:

  • "Wie viele SnapAPI-Anfragen habe ich diesen Monat noch übrig?"

  • "Zeige mir meine SnapAPI-Nutzung"


list_devices

Listen Sie alle verfügbaren Geräte-Presets für Screenshot- und Videoemulation auf. Keine Parameter erforderlich.

Beispiel-Prompt: "Welche Geräte-Presets sind für Screenshots verfügbar?"


Umgebungsvariablen

Variable

Erforderlich

Beschreibung

SNAPAPI_API_KEY

Ja

Ihr SnapAPI-API-Schlüssel (sk_live_...)

SNAPAPI_BASE_URL

Nein

API-Basis-URL (Standard: https://api.snapapi.pics)


Entwicklung

# 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

Fehlerbehebung

"SNAPAPI_API_KEY environment variable is required" Stellen Sie sicher, dass der env-Block in Ihrer MCP-Konfiguration Ihren API-Schlüssel enthält. Prüfen Sie, ob er mit sk_live_ beginnt.

Tools erscheinen nicht in Claude Desktop Starten Sie Claude Desktop nach dem Speichern der Konfiguration neu. Überprüfen Sie die MCP-Protokolle unter:

  • macOS: ~/Library/Logs/Claude/mcp*.log

  • Windows: %APPDATA%\Claude\logs\mcp*.log

npx dauert beim ersten Ausführen zu lange Verwenden Sie "args": ["-y", "snapapi-mcp"] — das -y-Flag bestätigt die Installationsaufforderung automatisch ohne Interaktion.

screenshot / scrape gibt einen Fehler zurück

  • Überprüfen Sie, ob Ihr API-Schlüssel unter app.snapapi.pics/dashboard gültig ist

  • Überprüfen Sie Ihr verbleibendes Kontingent mit dem get_usage-Tool

  • Versuchen Sie bei JavaScript-lastigen Seiten, "waitUntil": "networkidle" und einen "delay"-Wert hinzuzufügen

analyze-Tool gibt einen Fehler zurück Der Analyse-Endpunkt erfordert Anthropic-API-Guthaben im SnapAPI-Backend. Verwenden Sie das extract-Tool als Fallback, um den Seiteninhalt abzurufen und ihn selbst zu analysieren.


Lizenz

MIT

Available Tools

9 tools
analyzeA

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

    A3.8/5.0

    Scored across 9 tools

    Disambiguation3/5

    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.

    Naming Consistency3/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      A 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 ca
      1
      2
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Screenshot 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.
      1
      MIT