Skip to main content
Glama
Sleywill

SnapAPI MCP Server

snapapi-mcp

SnapAPI 用のMCP (Model Context Protocol) サーバーです。Claude Desktop、Cursor、Windsurf、Cline、ZedなどのAIツールから直接、スクリーンショットの撮影、Webページのスクレイピング、コンテンツの抽出、PDF生成、動画録画、ページ分析を行うことができます。

これは何ですか?

このパッケージは、AIアシスタントをSnapAPI WebキャプチャAPIに接続するローカルMCPサーバーを実行します。設定が完了すると、AIは以下のことが可能になります:

  • スクリーンショットの撮影: あらゆるURL(フルページ、モバイル、ダークモード、要素指定、デバイスエミュレーション)

  • Webページのスクレイピング: 本物のブラウザを使用して、クリーンなテキスト、HTML、リンクリストを取得

  • コンテンツの抽出: LLMでの利用に最適化された形式(Markdown、記事、メタデータ、構造化データ)

  • PDF生成: URLまたはHTMLからPDFを作成

  • 動画録画: ブラウザセッションの録画(インタラクションシナリオの指定も可能)

  • ページ分析: AIによる分析(抽出と分析を1回の呼び出しで実行)

  • 利用状況の確認: クォータとアカウント統計の確認

前提条件

  • 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: 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

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 のいずれか1つが必須です。

プロンプト例:


scrape

本物のブラウザを使用してWebページの内容をスクレイピングします(JavaScriptでレンダリングされたページも動作します)。

パラメータ:

パラメータ

必須

説明

url

string

yes

スクレイピングするURL

type

string

no

text (Markdown), 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 のいずれか1つが必須です。

プロンプト例:


analyze

URLからコンテンツを抽出し、AIモデルで分析します(1回の呼び出しで実行)。

パラメータ:

パラメータ

必須

説明

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 ツールがエラーを返す 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