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 (извлечение + анализ в одном вызове)
Проверять квоту использования и статистику аккаунта
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:
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
Available Tools
9 toolsanalyzeA
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
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
SnapRender gives AI agents eyes on the web through a hosted MCP server. Send a public URL and get the page back as an image, a PDF or clean markdown, with no browser to run or maintain. Capture the viewport or the full page as PNG, JPEG, WebP or PDF, at desktop size or with a phone, tablet or laptop preset, in light or dark mode. Ads and cookie banners are removed by default, and you can hide elements or click one before the capture. extract_content reads the same page as markdown, text, article, links or metadata, so an agent can see a page and read it in one session. Made for monitoring and client work: batch up to 50 URLs in one job, check the cache for free before spending a capture, share signed links that render without an API key, and get webhooks when a batch finishes or a scheduled capture spots a change. Track competitors' pricing and landing pages, or send clients current screenshots of their sites. Connect with OAuth (Google, GitHub or email) or an API key. Works with Claude, ChatGPT, Cursor, VS Code and any MCP client. Free plan: 200 screenshots a month, no credit card. Paid plans from $9 a month for 2,000 up to $199 a month for 200,000. Home: https://snap-render.com Docs: https://snap-render.com/ai-agents
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Related MCP Servers
- FlicenseAqualityDmaintenanceA 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 ca12-
- FlicenseNot gradedqualityDmaintenanceEnables tool-calling LLMs to search the internet, capture website images, extract webpage text, and more via a local MCP server.16-
- FlicenseNot gradedqualityDmaintenanceScreenshot & Render API for AI Agents. MCP Server lets Claude, Cursor capture webpages and render HTML. Direct access, no VPN needed.-
- AlicenseNot gradedqualityDmaintenanceScreenshot 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.1MIT