mcpField
S
Snapgrab

Snapgrab

本地服务
github.com/QuartzUnit浏览器自动化028 周前更新

关于 Snapgrab

Snapgrab 是用于网页截图和元数据提取的 Python 工具,适合开发者及 MCP 客户端。它支持多种视口、元素截取,并可针对 Claude Vision 调整图像。

主要功能

  1. 01PNG、JPEG 和 PDF 截图
  2. 02提取页面元数据
  3. 03针对 Claude Vision 调整图像
  4. 04桌面、平板和移动视口
  5. 05按 CSS 选择器截取元素
  6. 06浅色和深色模式

适用场景

  1. 01为 URL 生成全页截图
  2. 02获取页面标题和 Open Graph 信息
  3. 03比较桌面与移动视口
  4. 04向 Claude 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 生态系统 — 一组可组合的 Python 库,用于数据收集、提取、搜索和 AI Agent 安全。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。