Skip to main content
Glama
SnapAPI MCP Server

SnapAPI MCP Server

by Sleywill

snapapi-mcp

MCP-сервер (Model Context Protocol) для SnapAPI — делайте скриншоты, парсите веб-страницы, извлекайте контент, создавайте PDF, записывайте видео и анализируйте страницы напрямую из AI-инструментов, таких как Claude Desktop, Cursor, Windsurf, Cline и Zed.

Что это такое?

Этот пакет запускает локальный MCP-сервер, который подключает вашего AI-ассистента к API веб-захвата SnapAPI. После настройки ваш AI сможет:

  • Делать скриншоты любого URL (полная страница, мобильная версия, темная тема, выбор элемента, эмуляция устройств)

  • Парсить веб-страницы и получать чистый текст, HTML или списки ссылок с помощью настоящего браузера

  • Извлекать контент, оптимизированный для LLM (Markdown, статьи, метаданные, структурированные данные)

  • Создавать PDF из URL или HTML

  • Записывать видео сессий браузера с опциональными сценариями взаимодействия

  • Анализировать страницы с помощью AI (извлечение + анализ в одном вызове)

  • Проверять квоту использования и статистику аккаунта

Related MCP server: Local-MCP-server

Предварительные требования

  • Node.js 18 или новее

  • API-ключ SnapAPI — получите его на app.snapapi.pics

Быстрый старт

Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

После сохранения перезапустите Claude Desktop.

Cursor

Добавьте в ~/.cursor/mcp.json:

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

Windsurf

Добавьте в ~/.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)

Откройте настройки Cline → MCP Servers → Add Server:

  • Command: npx

  • Args: -y snapapi-mcp

  • Environment: SNAPAPI_API_KEY=sk_live_your_key_here

VS Code (нативная поддержка MCP)

Добавьте в .vscode/mcp.json в вашей рабочей области (или в пользовательские настройки):

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

Zed

Добавьте в ~/.config/zed/settings.json:

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

Автоматический установщик

Запустите прилагаемый вспомогательный скрипт:

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

# For Cursor
./install-mcp.sh cursor

# For Windsurf
./install-mcp.sh windsurf

Доступные инструменты

ping

Проверка доступности SnapAPI и валидности вашего API-ключа. Параметры не требуются.

Пример запроса: "Ping SnapAPI to check it's working"


screenshot

Сделать скриншот любого URL с широкими возможностями настройки.

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

*

URL для захвата

html

string

*

Исходный HTML для рендеринга (альтернатива url)

markdown

string

*

Markdown для рендеринга (альтернатива url)

format

string

нет

png, jpeg, webp или avif (по умолчанию: png)

quality

number

нет

1–100 для jpeg/webp (по умолчанию: 80)

width

number

нет

Ширина вьюпорта (по умолчанию: 1280)

height

number

нет

Высота вьюпорта (по умолчанию: 800)

fullPage

boolean

нет

Захват всей прокручиваемой страницы

selector

string

нет

CSS-селектор для захвата элемента

delay

number

нет

Задержка в мс после загрузки страницы перед захватом

waitUntil

string

нет

load, domcontentloaded или networkidle

darkMode

boolean

нет

Темная цветовая схема

blockAds

boolean

нет

Блокировка рекламных сетей

blockCookieBanners

boolean

нет

Блокировка всплывающих окон с cookie

css

string

нет

Пользовательский CSS для внедрения

javascript

string

нет

Пользовательский JS для выполнения

device

string

нет

Пресет устройства (например, iphone-15-pro) — используйте list_devices для просмотра всех

hideSelectors

string[]

нет

Элементы, которые нужно скрыть перед захватом

*Должен быть предоставлен хотя бы один из параметров: url, html или markdown.

Примеры запросов:


scrape

Парсинг контента веб-страницы с использованием настоящего браузера (работает с JavaScript-страницами).

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

да

URL для парсинга

type

string

нет

text (Markdown), html или links (по умолчанию: text)

pages

number

нет

Количество страниц для перехода, 1–10 (по умолчанию: 1)

waitMs

number

нет

Дополнительное время ожидания в мс после загрузки страницы

blockResources

boolean

нет

Блокировка изображений/медиа/шрифтов для ускорения

locale

string

нет

Локаль браузера (например, en-US)

premiumProxy

boolean

нет

Использование резидентского прокси для обхода блокировок

Примеры запросов:


extract

Извлечение чистого, структурированного контента, оптимизированного для LLM.

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

да

URL для извлечения

type

string

нет

markdown, text, html, article, links, images, metadata или structured (по умолчанию: markdown)

selector

string

нет

Ограничение извлечения CSS-элементом

waitFor

string

нет

Ожидание CSS-селектора перед извлечением

maxLength

number

нет

Максимальная длина символов

cleanOutput

boolean

нет

Удаление шума (по умолчанию: true)

blockAds

boolean

нет

Блокировка рекламных сетей

blockCookieBanners

boolean

нет

Блокировка всплывающих окон с cookie

fields

object

нет

Карта извлечения пользовательских полей

Примеры запросов:


pdf

Создание PDF из URL или HTML.

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

*

URL для конвертации в PDF

html

string

*

HTML для конвертации в PDF (альтернатива url)

pdfOptions.pageSize

string

нет

a4, a3, a5, letter, legal, tabloid (по умолчанию: a4)

pdfOptions.landscape

boolean

нет

Альбомная ориентация

pdfOptions.printBackground

boolean

нет

Включить фоновую графику

pdfOptions.scale

number

нет

Коэффициент масштабирования 0.1–2

pdfOptions.marginTop

string

нет

Верхнее поле, например 1cm

pdfOptions.marginBottom

string

нет

Нижнее поле

pdfOptions.marginLeft

string

нет

Левое поле

pdfOptions.marginRight

string

нет

Правое поле

delay

number

нет

Задержка в мс после загрузки страницы

waitUntil

string

нет

load, domcontentloaded или networkidle

*Должен быть предоставлен хотя бы один из параметров: url или html.

Примеры запросов:


analyze

Извлечение контента из URL и его анализ с помощью AI-модели в одном вызове.

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

да

URL для анализа

prompt

string

да

Инструкция по анализу для AI

extractType

string

нет

markdown, text, article или structured (по умолчанию: article)

maxLength

number

нет

Максимальное количество символов контента для передачи в AI (по умолчанию: 20000)

Примеры запросов:


video

Запись сессии браузера в виде видео (WebM).

Параметры:

Параметр

Тип

Обязателен

Описание

url

string

да

URL для записи

duration

number

нет

Длительность записи в секундах, 1–60 (по умолчанию: 5)

width

number

нет

Ширина вьюпорта (по умолчанию: 1280)

height

number

нет

Высота вьюпорта (по умолчанию: 800)

scenario

string

нет

JavaScript для выполнения во время записи (прокрутка, клик и т.д.)

delay

number

нет

Задержка в мс перед началом записи

waitUntil

string

нет

load, domcontentloaded или networkidle

darkMode

boolean

нет

Темная цветовая схема

blockAds

boolean

нет

Блокировка рекламных сетей

blockCookieBanners

boolean

нет

Блокировка всплывающих окон с cookie

device

string

нет

Пресет устройства — используйте list_devices для просмотра всех

Примеры запросов:


get_usage

Проверка квоты SnapAPI и ежемесячной статистики. Параметры не требуются.

Примеры запросов:

  • "How many SnapAPI requests do I have left this month?"

  • "Show me my SnapAPI usage"


list_devices

Список всех доступных пресетов устройств для эмуляции скриншотов и видео. Параметры не требуются.

Пример запроса: "What device presets are available for screenshots?"


Переменные окружения

Переменная

Обязательна

Описание

SNAPAPI_API_KEY

Да

Ваш API-ключ SnapAPI (sk_live_...)

SNAPAPI_BASE_URL

Нет

Базовый URL API (по умолчанию: https://api.snapapi.pics)


Разработка

# 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

Устранение неполадок

"SNAPAPI_API_KEY environment variable is required" Убедитесь, что блок env в вашей конфигурации MCP включает ваш API-ключ. Проверьте, что он начинается с sk_live_.

Инструменты не появляются в Claude Desktop Перезапустите Claude Desktop после сохранения конфигурации. Проверьте логи MCP по адресу:

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

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

npx выполняется слишком долго при первом запуске Используйте "args": ["-y", "snapapi-mcp"] — флаг -y автоматически подтверждает запрос на установку без взаимодействия.

screenshot / scrape возвращает ошибку

  • Проверьте валидность вашего API-ключа на app.snapapi.pics/dashboard

  • Проверьте оставшуюся квоту с помощью инструмента get_usage

  • Для страниц с тяжелым JavaScript попробуйте добавить "waitUntil": "networkidle" и значение "delay"

Инструмент analyze возвращает ошибку Эндпоинт анализа требует наличия кредитов Anthropic API на бэкенде SnapAPI. Используйте инструмент extract в качестве запасного варианта, чтобы получить контент страницы и проанализировать его самостоятельно.


Лицензия

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