关于 Snapgrab
Snapgrab 是用于网页截图和元数据提取的 Python 工具,适合开发者及 MCP 客户端。它支持多种视口、元素截取,并可针对 Claude Vision 调整图像。
主要功能
- 01PNG、JPEG 和 PDF 截图
- 02提取页面元数据
- 03针对 Claude Vision 调整图像
- 04桌面、平板和移动视口
- 05按 CSS 选择器截取元素
- 06浅色和深色模式
适用场景
- 01为 URL 生成全页截图
- 02获取页面标题和 Open Graph 信息
- 03比较桌面与移动视口
- 04向 Claude 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 生态系统 — 一组可组合的 Python 库,用于数据收集、提取、搜索和 AI Agent 安全。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。