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:
npxArgs:
-y snapapi-mcpEnvironment:
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 с широкими возможностями настройки.
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | * | URL для захвата |
| string | * | Исходный HTML для рендеринга (альтернатива url) |
| string | * | Markdown для рендеринга (альтернатива url) |
| string | нет |
|
| number | нет | 1–100 для jpeg/webp (по умолчанию: 80) |
| number | нет | Ширина вьюпорта (по умолчанию: 1280) |
| number | нет | Высота вьюпорта (по умолчанию: 800) |
| boolean | нет | Захват всей прокручиваемой страницы |
| string | нет | CSS-селектор для захвата элемента |
| number | нет | Задержка в мс после загрузки страницы перед захватом |
| string | нет |
|
| boolean | нет | Темная цветовая схема |
| boolean | нет | Блокировка рекламных сетей |
| boolean | нет | Блокировка всплывающих окон с cookie |
| string | нет | Пользовательский CSS для внедрения |
| string | нет | Пользовательский JS для выполнения |
| string | нет | Пресет устройства (например, |
| string[] | нет | Элементы, которые нужно скрыть перед захватом |
*Должен быть предоставлен хотя бы один из параметров: url, html или markdown.
Примеры запросов:
"Take a screenshot of https://example.com in dark mode"
"Screenshot https://github.com on an iPhone 15 Pro"
"Capture a full-page screenshot of https://news.ycombinator.com with ads blocked"
"Render this HTML as a screenshot:
<h1>Hello</h1>"
scrape
Парсинг контента веб-страницы с использованием настоящего браузера (работает с JavaScript-страницами).
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | да | URL для парсинга |
| string | нет |
|
| number | нет | Количество страниц для перехода, 1–10 (по умолчанию: 1) |
| number | нет | Дополнительное время ожидания в мс после загрузки страницы |
| boolean | нет | Блокировка изображений/медиа/шрифтов для ускорения |
| string | нет | Локаль браузера (например, |
| boolean | нет | Использование резидентского прокси для обхода блокировок |
Примеры запросов:
"Scrape the text content from https://example.com/blog"
"Get all links from https://news.ycombinator.com"
"Scrape https://example.com/pricing as HTML"
extract
Извлечение чистого, структурированного контента, оптимизированного для LLM.
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | да | URL для извлечения |
| string | нет |
|
| string | нет | Ограничение извлечения CSS-элементом |
| string | нет | Ожидание CSS-селектора перед извлечением |
| number | нет | Максимальная длина символов |
| boolean | нет | Удаление шума (по умолчанию: true) |
| boolean | нет | Блокировка рекламных сетей |
| boolean | нет | Блокировка всплывающих окон с cookie |
| object | нет | Карта извлечения пользовательских полей |
Примеры запросов:
"Extract the article content from https://example.com/post as markdown"
"Get the metadata (title, description, OG image) from https://example.com"
"Extract price and rating from https://example.com/product"
Создание PDF из URL или HTML.
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | * | URL для конвертации в PDF |
| string | * | HTML для конвертации в PDF (альтернатива url) |
| string | нет |
|
| boolean | нет | Альбомная ориентация |
| boolean | нет | Включить фоновую графику |
| number | нет | Коэффициент масштабирования 0.1–2 |
| string | нет | Верхнее поле, например |
| string | нет | Нижнее поле |
| string | нет | Левое поле |
| string | нет | Правое поле |
| number | нет | Задержка в мс после загрузки страницы |
| string | нет |
|
*Должен быть предоставлен хотя бы один из параметров: url или html.
Примеры запросов:
"Generate a PDF of https://example.com/report in landscape A4"
"Convert this HTML to a PDF with 2cm margins"
analyze
Извлечение контента из URL и его анализ с помощью AI-модели в одном вызове.
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | да | URL для анализа |
| string | да | Инструкция по анализу для AI |
| string | нет |
|
| number | нет | Максимальное количество символов контента для передачи в AI (по умолчанию: 20000) |
Примеры запросов:
"Analyze https://example.com/article — what are the main arguments?"
"Extract all product specs from https://example.com/product"
"What is the sentiment of this news article: https://example.com/news"
video
Запись сессии браузера в виде видео (WebM).
Параметры:
Параметр | Тип | Обязателен | Описание |
| string | да | URL для записи |
| number | нет | Длительность записи в секундах, 1–60 (по умолчанию: 5) |
| number | нет | Ширина вьюпорта (по умолчанию: 1280) |
| number | нет | Высота вьюпорта (по умолчанию: 800) |
| string | нет | JavaScript для выполнения во время записи (прокрутка, клик и т.д.) |
| number | нет | Задержка в мс перед началом записи |
| string | нет |
|
| boolean | нет | Темная цветовая схема |
| boolean | нет | Блокировка рекламных сетей |
| boolean | нет | Блокировка всплывающих окон с cookie |
| string | нет | Пресет устройства — используйте |
Примеры запросов:
"Record a 10-second video of https://example.com scrolling down"
"Record https://example.com on an iPhone 15 Pro"
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?"
Переменные окружения
Переменная | Обязательна | Описание |
| Да | Ваш API-ключ SnapAPI ( |
| Нет | Базовый URL API (по умолчанию: |
Разработка
# 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*.logWindows:
%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
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