pypi snapgrabstdioMITupdated 4mo ago
URL to screenshot with metadata. Claude Vision optimized.
Snapgrab で何ができる?
Snapgrab
URL to screenshot with metadata. Claude Vision optimized.
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
Features
- Screenshot capture — PNG, JPEG, PDF with full-page support
- Page metadata — title, description, Open Graph tags, favicon, HTTP status
- Claude Vision optimized — auto-resize to 1568px, token cost estimation
- Viewport presets — desktop (1920x1080), tablet (768x1024), mobile (375x812)
- MCP server included — 3 tools for Claude Code / MCP clients
- Element capture — screenshot specific CSS selectors
- Dark mode — force light/dark color scheme
Install
pip install snapgrab
First run will prompt to install Playwright browsers:
playwright install chromium
Usage
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 Server
pip install "snapgrab[mcp]"
snapgrab-mcp # starts stdio MCP server
Tools:
capture_screenshot— capture URL with metadata and vision token estimatecapture_comparison— compare desktop vs mobile (or any viewports)extract_page_metadata— metadata only, no screenshot
How It Works
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
Used in
- watchdeck — Web page monitoring with visual diffs and safety guards
License
Part of the QuartzUnit ecosystem — composable Python libraries for data collection, extraction, search, and AI agent safety.
インストール
Snapgrab をクライアントに追加します。お使いのものを選んでください。
claude mcp add snapgrab -- uvx snapgrabcodex mcp add snapgrab -- uvx snapgrabamp mcp add snapgrab -- uvx snapgrab{
"mcpServers": {
"snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"snapgrab","command":"uvx","args":["snapgrab"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"snapgrab": {
"command": "uvx",
"args": [
"snapgrab"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"snapgrab": {
"type": "local",
"command": "uvx",
"args": [
"snapgrab"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"snapgrab": {
"command": {
"path": "uvx",
"args": [
"snapgrab"
]
}
}
}
}Add to your Zed `settings.json`.
uvx snapgrabRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
スコア
39 / 100
情報不足
- ドキュメント20/25
- メンテナンス13/25
- 信頼性16/20
- 機能0/15
- 導入のしやすさ12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 139 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
バージョン履歴
| バージョン | 公開日 |
|---|---|
| 0.1.0最新 | 2026年3月17日 |