SnapAPI MCP Server
snapapi-mcp
SnapAPI를 위한 MCP(Model Context Protocol) 서버입니다. Claude Desktop, Cursor, Windsurf, Cline, Zed와 같은 AI 도구에서 직접 웹 페이지 스크린샷 촬영, 스크래핑, 콘텐츠 추출, PDF 생성, 비디오 녹화 및 페이지 분석을 수행할 수 있습니다.
이것은 무엇인가요?
이 패키지는 AI 어시스턴트를 SnapAPI 웹 캡처 API에 연결하는 로컬 MCP 서버를 실행합니다. 설정이 완료되면 AI는 다음을 수행할 수 있습니다:
모든 URL의 스크린샷 촬영 (전체 페이지, 모바일, 다크 모드, 요소 선택, 기기 에뮬레이션)
실제 브라우저를 사용하여 웹 페이지 스크래핑 및 깔끔한 텍스트, HTML 또는 링크 목록 가져오기
LLM 사용에 최적화된 콘텐츠 추출 (마크다운, 기사, 메타데이터, 구조화된 데이터)
URL 또는 HTML에서 PDF 생성
선택적 상호작용 시나리오와 함께 브라우저 세션 비디오 녹화
AI를 통한 페이지 분석 (한 번의 호출로 추출 및 분석)
사용량 할당량 및 계정 통계 확인
Related MCP server: Local-MCP-server
사전 요구 사항
Node.js 18 이상
SnapAPI API 키 — 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 | * | 렌더링할 마크다운 (url 대신 사용) |
| string | no |
|
| number | no | jpeg/webp 품질 1–100 (기본값: 80) |
| number | no | 뷰포트 너비 (기본값: 1280) |
| number | no | 뷰포트 높이 (기본값: 800) |
| boolean | no | 스크롤 가능한 전체 페이지 캡처 |
| string | no | 요소 캡처를 위한 CSS 선택자 |
| number | no | 페이지 로드 후 캡처 전 대기 시간(ms) |
| string | no |
|
| boolean | no | 다크 컬러 스킴 |
| boolean | no | 광고 네트워크 차단 |
| boolean | no | 쿠키 팝업 차단 |
| string | no | 주입할 사용자 정의 CSS |
| string | no | 실행할 사용자 정의 JS |
| string | no | 기기 프리셋 (예: |
| string[] | no | 캡처 전 숨길 요소 |
*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 | yes | 스크래핑할 URL |
| string | no |
|
| number | no | 따라갈 페이지 수, 1–10 (기본값: 1) |
| number | no | 페이지 로드 후 추가 대기 시간(ms) |
| boolean | no | 속도 향상을 위해 이미지/미디어/폰트 차단 |
| string | no | 브라우저 로케일 (예: |
| boolean | no | 차단을 우회하기 위해 주거용 프록시 사용 |
예시 프롬프트:
"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 | yes | 추출할 URL |
| string | no |
|
| string | no | CSS 요소로 추출 범위 지정 |
| string | no | 추출 전 CSS 선택자 대기 |
| number | no | 최대 문자 길이 |
| boolean | no | 노이즈 제거 (기본값: true) |
| boolean | no | 광고 네트워크 차단 |
| boolean | no | 쿠키 팝업 차단 |
| object | no | 사용자 정의 필드 추출 맵 |
예시 프롬프트:
"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"
URL 또는 HTML에서 PDF를 생성합니다.
매개변수:
매개변수 | 타입 | 필수 | 설명 |
| string | * | PDF로 변환할 URL |
| string | * | PDF로 변환할 HTML (url 대신 사용) |
| string | no |
|
| boolean | no | 가로 방향 |
| boolean | no | 배경 그래픽 포함 |
| number | no | 배율 0.1–2 |
| string | no | 상단 여백, 예: |
| string | no | 하단 여백 |
| string | no | 왼쪽 여백 |
| string | no | 오른쪽 여백 |
| number | no | 페이지 로드 후 대기 시간(ms) |
| string | no |
|
*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 | yes | 분석할 URL |
| string | yes | AI를 위한 분석 지침 |
| string | no |
|
| number | no | 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 | yes | 녹화할 URL |
| number | no | 녹화 시간(초), 1–60 (기본값: 5) |
| number | no | 뷰포트 너비 (기본값: 1280) |
| number | no | 뷰포트 높이 (기본값: 800) |
| string | no | 녹화 중 실행할 JavaScript (스크롤, 클릭 등) |
| number | no | 녹화 시작 전 대기 시간(ms) |
| string | no |
|
| boolean | no | 다크 컬러 스킴 |
| boolean | no | 광고 네트워크 차단 |
| boolean | no | 쿠키 팝업 차단 |
| string | no | 기기 프리셋 — |
예시 프롬프트:
"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?"
환경 변수
변수 | 필수 | 설명 |
| Yes | SnapAPI API 키 ( |
| No | API 기본 URL (기본값: |
개발
# 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"
MCP 설정의 env 블록에 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 오류 반환
app.snapapi.pics/dashboard에서 API 키가 유효한지 확인하세요.
get_usage도구로 남은 할당량을 확인하세요.JavaScript가 많은 페이지의 경우
"waitUntil": "networkidle"및"delay"값을 추가해 보세요.
analyze 도구 오류 반환
분석 엔드포인트는 SnapAPI 백엔드에서 Anthropic API 크레딧을 요구합니다. 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