Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者提供的说明(英文原文)
Web page change tracking with structured diffs. markgrab + snapgrab integration.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"diffgrab": {
"command": "uvx",
"args": [
"diffgrab"
]
}
}
}在终端中运行这条命令
claude mcp add diffgrab -- uvx diffgrab粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"diffgrab": {
"command": "uvx",
"args": [
"diffgrab"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"diffgrab": {
"type": "stdio",
"command": "uvx",
"args": [
"diffgrab"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
发布者(ArkNill)不是仓库所有者(QuartzUnit);可能是其他人代为上架的
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 0 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.0)于8个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
한국어 문서 · llms.txt
Web page change tracking with structured diffs. markgrab + snapgrab integration, MCP native.
from diffgrab import DiffTracker
tracker = DiffTracker() await tracker.track("https://example.com") changes = await tracker.check() for c in changes: if c.changed: print(c.summary) # "3 lines added, 1 lines removed in sections: Introduction." print(c.unified_diff) # Standard unified diff output await tracker.close()
diffgrab track, check, diff, history, untrackflowchart TD
A["diffgrab track URL"] --> B["Fetch initial snapshot\n(markgrab + snapgrab)"] B --> C["Store baseline"] C --> D["diffgrab check"] D --> E["Fetch current page"] E --> F{"Content\nhash match?"} F -->|"changed"| G["Compute structured diff\n+ section analysis"] F -->|"unchanged"| H["No changes"] G --> I["📊 DiffResult\nadded / removed / modified"]
pip install diffgrab
Optional extras:
pip install 'diffgrab[cli]' # CLI with click + rich
pip install 'diffgrab[visual]' # Visual diff with snapgrab pip install 'diffgrab[mcp]' # MCP server with fastmcp pip install 'diffgrab[all]' # Everything
import asyncio
from diffgrab import DiffTracker
async def main(): tracker = DiffTracker()
await tracker.track("https://example.com", interval_hours=12)
changes = await tracker.check() for change in changes: if change.changed: print(change.summary) print(change.unified_diff)
result = await tracker.diff("https://example.com", before_id=1, after_id=2)
history = await tracker.history("https://example.com", count=20)
await tracker.untrack("https://example.com")
await tracker.close()
asyncio.run(main())
from diffgrab import track, check, diff, history, untrack
await track("https://example.com") changes = await check() result = await diff("https://example.com") snaps = await history("https://example.com") await untrack("https://example.com")
# Track a URL
diffgrab track https://example.com --interval 12
diffgrab check
diffgrab check https://example.com
diffgrab diff https://example.com diffgrab diff https://example.com --before 1 --after 3
diffgrab history https://example.com --count 20
diffgrab untrack https://example.com
Add to your Claude Code MCP config:
{
"mcpServers": { "diffgrab": { "command": "diffgrab-mcp", "args": [] } } }
Or with uvx:
{
"mcpServers": { "diffgrab": { "command": "uvx", "args": ["--from", "diffgrab[mcp]", "diffgrab-mcp"] } } }
MCP Tools:
| Tool | Description |
|---|---|
track_url | Register a URL for change tracking |
check_changes | Check tracked URLs for changes |
get_diff | Get structured diff between snapshots |
get_history | Browse snapshot history |
untrack_url | Stop tracking a URL |
Every diff operation returns a DiffResult:
@dataclass
class DiffResult: url: str # The tracked URL changed: bool # Whether content changed added_lines: int # Lines added removed_lines: int # Lines removed changed_sections: list[str] # Markdown headings with changes unified_diff: str # Standard unified diff summary: str # Human-readable summary before_snapshot_id: int | None # DB ID of older snapshot after_snapshot_id: int | None # DB ID of newer snapshot before_timestamp: str # When older snapshot was taken after_timestamp: str # When newer snapshot was taken
Snapshots are stored in SQLite at ~/.local/share/diffgrab/diffgrab.db (auto-created). Custom path:
tracker = DiffTracker(db_path="/path/to/custom.db")
| Package | Role | PyPI |
|---|---|---|
| markgrab | HTML/YouTube/PDF/DOCX to markdown | pip install markgrab |
| snapgrab | URL to screenshot + metadata | pip install snapgrab |
| docpick | OCR + LLM document extraction | pip install docpick |
| feedkit | RSS feed collection | pip install feedkit |
| diffgrab | Web page change tracking | pip install diffgrab |
| browsegrab | Browser agent for LLMs | Coming soon |
MIT
Part of the QuartzUnit ecosystem — composable Python libraries for data collection, extraction, search, and AI agent safety.