mcpField
S
Snapgrab

Snapgrab

ローカル
github.com/QuartzUnitブラウザ自動化028 週間前に更新

Snapgrab について

Snapgrabは、Webページのスクリーンショットとメタデータを取得するPythonツールです。開発者やMCPクライアント向けに、ビューポートや要素の指定、Claude Vision向けの画像調整を提供します。

主な機能

  1. 01PNG、JPEG、PDFのスクリーンショット
  2. 02ページメタデータの抽出
  3. 03Claude Vision向けの画像調整
  4. 04デスクトップ・タブレット・モバイル表示
  5. 05CSSセレクターによる要素撮影
  6. 06ライト・ダークモード

活用シーン

  1. 01URLの全ページを撮影
  2. 02ページタイトルやOpen Graph情報の取得
  3. 03デスクトップとモバイル表示の比較
  4. 04Claude Vision向け画像の用意

MCP 対応

Snapgrabには、撮影、ビューポート比較、メタデータ抽出を行うMCPサーバーが含まれます。MCPクライアントから `snapgrab-mcp` を使い、stdioで起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"arknill-snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}
起動コマンドuvx snapgrab

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisnapgrab0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Snapgrab

PyPI Python License Tests

한국어 문서 · llms.txt

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 — ビジュアル差分と安全ガードを備えたウェブページ監視

ライセンス

MIT


QuartzUnit エコシステムの一部です — データ収集、抽出、検索、AI エージェントの安全性に対応する、組み合わせ可能な Python ライブラリ群です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。