Skip to main content
Glama
Sleywill

SnapAPI MCP Server

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 (извлечение + анализ в одном вызове)

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

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

  • 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

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