Skip to main content
Glama
Sleywill

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를 통한 페이지 분석 (한 번의 호출로 추출 및 분석)

  • 사용량 할당량 및 계정 통계 확인

사전 요구 사항

빠른 시작

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

*

렌더링할 마크다운 (url 대신 사용)

format

string

no

png, jpeg, webp 또는 avif (기본값: png)

quality

number

no

jpeg/webp 품질 1–100 (기본값: 80)

width

number

no

뷰포트 너비 (기본값: 1280)

height

number

no

뷰포트 높이 (기본값: 800)

fullPage

boolean

no

스크롤 가능한 전체 페이지 캡처

selector

string

no

요소 캡처를 위한 CSS 선택자

delay

number

no

페이지 로드 후 캡처 전 대기 시간(ms)

waitUntil

string

no

load, domcontentloaded 또는 networkidle

darkMode

boolean

no

다크 컬러 스킴

blockAds

boolean

no

광고 네트워크 차단

blockCookieBanners

boolean

no

쿠키 팝업 차단

css

string

no

주입할 사용자 정의 CSS

javascript

string

no

실행할 사용자 정의 JS

device

string

no

기기 프리셋 (예: iphone-15-pro) — list_devices로 전체 목록 확인

hideSelectors

string[]

no

캡처 전 숨길 요소

*url, html, markdown 중 하나 이상이 제공되어야 합니다.

예시 프롬프트:


scrape

실제 브라우저를 사용하여 웹 페이지 콘텐츠를 스크래핑합니다 (JavaScript 렌더링 페이지 작동).

매개변수:

매개변수

타입

필수

설명

url

string

yes

스크래핑할 URL

type

string

no

text (마크다운), html 또는 links (기본값: text)

pages

number

no

따라갈 페이지 수, 1–10 (기본값: 1)

waitMs

number

no

페이지 로드 후 추가 대기 시간(ms)

blockResources

boolean

no

속도 향상을 위해 이미지/미디어/폰트 차단

locale

string

no

브라우저 로케일 (예: en-US)

premiumProxy

boolean

no

차단을 우회하기 위해 주거용 프록시 사용

예시 프롬프트:


extract

LLM에 최적화된 깔끔하고 구조화된 콘텐츠를 추출합니다.

매개변수:

매개변수

타입

필수

설명

url

string

yes

추출할 URL

type

string

no

markdown, text, html, article, links, images, metadata 또는 structured (기본값: markdown)

selector

string

no

CSS 요소로 추출 범위 지정

waitFor

string

no

추출 전 CSS 선택자 대기

maxLength

number

no

최대 문자 길이

cleanOutput

boolean

no

노이즈 제거 (기본값: true)

blockAds

boolean

no

광고 네트워크 차단

blockCookieBanners

boolean

no

쿠키 팝업 차단

fields

object

no

사용자 정의 필드 추출 맵

예시 프롬프트:


pdf

URL 또는 HTML에서 PDF를 생성합니다.

매개변수:

매개변수

타입

필수

설명

url

string

*

PDF로 변환할 URL

html

string

*

PDF로 변환할 HTML (url 대신 사용)

pdfOptions.pageSize

string

no

a4, a3, a5, letter, legal, tabloid (기본값: a4)

pdfOptions.landscape

boolean

no

가로 방향

pdfOptions.printBackground

boolean

no

배경 그래픽 포함

pdfOptions.scale

number

no

배율 0.1–2

pdfOptions.marginTop

string

no

상단 여백, 예: 1cm

pdfOptions.marginBottom

string

no

하단 여백

pdfOptions.marginLeft

string

no

왼쪽 여백

pdfOptions.marginRight

string

no

오른쪽 여백

delay

number

no

페이지 로드 후 대기 시간(ms)

waitUntil

string

no

load, domcontentloaded 또는 networkidle

*url 또는 html 중 하나 이상이 제공되어야 합니다.

예시 프롬프트:


analyze

한 번의 호출로 URL에서 콘텐츠를 추출하고 AI 모델로 분석합니다.

매개변수:

매개변수

타입

필수

설명

url

string

yes

분석할 URL

prompt

string

yes

AI를 위한 분석 지침

extractType

string

no

markdown, text, article 또는 structured (기본값: article)

maxLength

number

no

AI에 전달할 최대 문자 수 (기본값: 20000)

예시 프롬프트:


video

브라우저 세션을 비디오(WebM)로 녹화합니다.

매개변수:

매개변수

타입

필수

설명

url

string

yes

녹화할 URL

duration

number

no

녹화 시간(초), 1–60 (기본값: 5)

width

number

no

뷰포트 너비 (기본값: 1280)

height

number

no

뷰포트 높이 (기본값: 800)

scenario

string

no

녹화 중 실행할 JavaScript (스크롤, 클릭 등)

delay

number

no

녹화 시작 전 대기 시간(ms)

waitUntil

string

no

load, domcontentloaded 또는 networkidle

darkMode

boolean

no

다크 컬러 스킴

blockAds

boolean

no

광고 네트워크 차단

blockCookieBanners

boolean

no

쿠키 팝업 차단

device

string

no

기기 프리셋 — 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

Yes

SnapAPI API 키 (sk_live_...)

SNAPAPI_BASE_URL

No

API 기본 URL (기본값: 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" MCP 설정의 env 블록에 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 오류 반환

  • app.snapapi.pics/dashboard에서 API 키가 유효한지 확인하세요.

  • get_usage 도구로 남은 할당량을 확인하세요.

  • JavaScript가 많은 페이지의 경우 "waitUntil": "networkidle""delay" 값을 추가해 보세요.

analyze 도구 오류 반환 분석 엔드포인트는 SnapAPI 백엔드에서 Anthropic API 크레딧을 요구합니다. 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