Snapgrab について
Snapgrabは、Webページのスクリーンショットとメタデータを取得するPythonツールです。開発者やMCPクライアント向けに、ビューポートや要素の指定、Claude Vision向けの画像調整を提供します。
主な機能
- 01PNG、JPEG、PDFのスクリーンショット
- 02ページメタデータの抽出
- 03Claude Vision向けの画像調整
- 04デスクトップ・タブレット・モバイル表示
- 05CSSセレクターによる要素撮影
- 06ライト・ダークモード
活用シーン
- 01URLの全ページを撮影
- 02ページタイトルやOpen Graph情報の取得
- 03デスクトップとモバイル表示の比較
- 04Claude Vision向け画像の用意
MCP 対応
Snapgrabには、撮影、ビューポート比較、メタデータ抽出を行うMCPサーバーが含まれます。MCPクライアントから `snapgrab-mcp` を使い、stdioで起動できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Snapgrab
URL からメタデータ付きのスクリーンショットを取得します。Claude Vision に最適化されています。
from snapgrab import capture
result = await capture("https://example.com")
print(result.path) # /tmp/snapgrab/example_com_desktop_20260317_120000.png
print(result.metadata.title) # "Example Domain"
print(result.vision_tokens) # ~2764
特長
- スクリーンショットの取得 — PNG、JPEG、PDFに対応し、ページ全体をキャプチャできます
- ページのメタデータ — タイトル、説明、Open Graph タグ、ファビコン、HTTP ステータス
- Claude Vision に最適化 — 1568px に自動リサイズし、トークンコストを推定します
- ビューポートのプリセット — デスクトップ(1920x1080)、タブレット(768x1024)、モバイル(375x812)
- MCP サーバーを同梱 — Claude Code / MCP クライアント向けの3つのツール
- 要素のキャプチャ — 特定の CSS セレクターのスクリーンショットを撮影します
- ダークモード — ライト/ダークのカラースキームを強制します
インストール
pip install snapgrab
初回実行時に、Playwright ブラウザーのインストールを求められます。
playwright install chromium
使い方
Python API
import asyncio
from snapgrab import capture
async def main():
# Basic screenshot
result = await capture("https://example.com")
# Mobile viewport, full page
result = await capture("https://example.com", viewport="mobile", full_page=True)
# Dark mode, JPEG format
result = await capture("https://example.com", dark_mode=True, format="jpeg")
# Specific element
result = await capture("https://example.com", selector="#main-content")
# Custom viewport
result = await capture("https://example.com", viewport=(1440, 900))
asyncio.run(main())
CLI
snapgrab https://example.com # basic PNG
snapgrab https://example.com -v mobile -f # mobile, full page
snapgrab https://example.com --format jpeg -q 90 # JPEG quality 90
snapgrab https://example.com -s "#hero" --dark-mode # element + dark mode
snapgrab https://example.com -j # JSON output
snapgrab meta https://example.com # metadata only
MCP サーバー
pip install "snapgrab[mcp]"
snapgrab-mcp # starts stdio MCP server
ツール:
capture_screenshot— URL をメタデータとビジョントークンの推定値とともにキャプチャしますcapture_comparison— デスクトップとモバイル(または任意のビューポート)を比較しますextract_page_metadata— スクリーンショットを撮らずにメタデータのみを抽出します
仕組み
flowchart LR
A["🔗 URL"] --> B["Playwright\nlaunch browser"]
B --> C["📸 Screenshot\nfull page / viewport"]
C --> D["Resize for\nClaude Vision"]
D --> E["✅ Image +\nMetadata"]
CaptureResult
result.path # saved file path
result.format # "png", "jpeg", "pdf"
result.width # viewport width
result.height # page height (full_page) or viewport height
result.file_size # bytes
result.vision_tokens # estimated Claude Vision token cost
result.vision_path # path to Vision-optimized image (≤1568px)
result.processing_time_ms
result.metadata.title
result.metadata.description
result.metadata.og_title
result.metadata.og_image
result.metadata.favicon_url
result.metadata.status_code
result.metadata.url # final URL after redirects
使用例
- watchdeck — ビジュアル差分と安全ガードを備えたウェブページ監視
ライセンス
QuartzUnit エコシステムの一部です — データ収集、抽出、検索、AI エージェントの安全性に対応する、組み合わせ可能な Python ライブラリ群です。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。