Token导航 LogoToken导航

MCP Server · 浏览器工具

browsegrab (Quartz Unit)

browsegrab 是一个为本地 LLMs 设计的轻量级浏览器自动化库,结合了 Playwright 的可访问性树和 MarkGrab 的 HTML 到 Markdown 转换功能,显著减少了每一步的 token 使用量。

stdio官方级别未说明来源级核验工具 8
浏览器自动化Token认证网页抓取

快速开始

作者 / 组织
QuartzUnit
提供方
QuartzUnit

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

browsegrab (Quartz Unit) 属于浏览器工具类 MCP Server,公开资料标注 8 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

浏览器工具

传输方式

stdio

认证方式

访问 Token

部署方式

仅本地运行

安装与配置

安装命令

pip install browsegrab

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 8 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Browsegrab

韩语文档 · llms.txt
用于本地LLM的令牌高效浏览器代理——Playwright+可访问性树+MarkGrab,MCP原生。

Browsegrab 是一个为本地LLM(8B-35B参数)设计的轻量级浏览器自动化库。它将Playwright的可访问性树与 MarkGrab的HTML到markdown的转换实现 每一步减少5-8倍的令牌 与浏览器使用等替代方案相比。

特性

  • 代币高效:约500-1500个令牌/步(而浏览器使用为4000-10000个)
  • 本地LLM优先:针对vLLM、Ollama和OpenAI兼容端点进行了优化
  • MCP本地:内置MCP服务器,带有8个浏览器自动化工具
  • MarkGrab集成:HTML→ 用于内容提取的干净标记
  • 可访问性树+引用系统:稳定元素引用(e1, e2, ...)没有视觉模型
  • 成功模式缓存:重复工作流程中无LLM调用
  • 5级JSON解析器:本地LLM输出的稳健操作解析
  • 最小依赖性:只有 playwright + httpx 在核心

安装

pip install browsegrab
playwright install chromium

具有可选功能:

pip install browsegrab[mcp]      # MCP server support
pip install browsegrab[content]  # MarkGrab content extraction
pip install browsegrab[cli]      # CLI with rich output
pip install browsegrab[all]      # Everything

快速开始

Python API

from browsegrab import BrowseSession

async with BrowseSession() as session:
    # Navigate and get accessibility tree snapshot
    await session.navigate("https://example.com")
    snap = await session.snapshot()
    print(snap.tree_text)
    # - heading "Example Domain" [level=1]
    # - link "Learn more": [ref=e1]

    # Click using ref ID
    result = await session.click("e1")
    print(result.url)  # https://www.iana.org/help/example-domains

    # Type into search box
    await session.navigate("https://en.wikipedia.org")
    snap = await session.snapshot()
    await session.type("e4", "Python programming", submit=True)

    # Extract compressed content (AX tree + markdown)
    content = await session.extract_content()

命令行界面

# Accessibility tree snapshot
browsegrab snapshot https://example.com

# JSON output
browsegrab snapshot https://example.com -f json

# Extract content (AX tree + markdown)
browsegrab extract https://en.wikipedia.org/wiki/Python

# Agentic browse (requires LLM endpoint)
browsegrab browse https://example.com "Find the about page"

MCP服务器

browsegrab-mcp  # Start MCP server (stdio)

克劳德桌面/光标/VS代码配置:

{
  "mcpServers": {
    "browsegrab": {
      "command": "browsegrab-mcp"
    }
  }
}

8个MCP工具: browser_navigate, browser_click, browser_type, browser_snapshot, browser_scroll, browser_extract_content, browser_go_back, browser_wait

运作原理

代理浏览循环

flowchart LR
    A["🌐 URL + Goal"] --> B["Navigate"]
    B --> C["AX Tree Snapshot\n~200–500 tokens"]
    C --> D{"LLM\nDecision"}
    D -->|"click / type / scroll"| E["Execute Action"]
    E --> C
    D -->|"goal reached"| F["Extract Content\n(MarkGrab)"]
    F --> G["✅ Result"]

代币效率

browsegrab分离 结构 (可访问性树)来自 内容 (MarkGrab标记),只发送LLM需要的内容:

flowchart TD
    A["Raw HTML"] --> B["Accessibility Tree"]
    A --> C["MarkGrab Markdown"]
    B --> D["Structure: ~200–500 tokens\nInteractive elements with ref IDs"]
    C --> E["Content: ~300–800 tokens\nClean markdown · on-demand"]
    D --> F["Combined: ~500–1,300 tokens/step\n⚡ 5–8× fewer than browser-use"]
    E --> F

代币效率(测量)

页面交互元素令牌浏览器使用等效物
example.com1~60~500+
维基百科文章452~1254~10000+

建筑

browsegrab/
├── config.py                 # Dataclass configs (env var loading)
├── result.py                 # Result types (ActionResult, BrowseResult, ...)
├── session.py                # BrowseSession orchestrator
├── browser/
│   ├── manager.py            # Playwright lifecycle (async context manager)
│   ├── snapshot.py           # Accessibility tree + ref system
│   ├── selectors.py          # 4-strategy selector resolver
│   └── actions.py            # navigate, click, type, scroll, go_back, wait
├── dom/
│   ├── ref_map.py            # ref ID ↔ element bidirectional mapping
│   └── compress.py           # AX tree + MarkGrab → compressed context
├── llm/
│   ├── base.py               # LLMProvider ABC
│   ├── provider.py           # vLLM, Ollama, OpenAI-compatible
│   ├── prompt.py             # System prompts (~400 tokens)
│   └── parse.py              # 5-stage JSON fallback parser
├── agent/
│   ├── history.py            # Sliding window history compression
│   ├── cache.py              # Domain-based success pattern cache
│   └── loop_guard.py         # Duplicate action detection
├── __main__.py               # CLI (click)
└── mcp_server.py             # FastMCP server (8 tools)

配置

通过环境变量进行所有设置(BROWSEGRAB_* 前缀):

# Browser
BROWSEGRAB_BROWSER_HEADLESS=true
BROWSEGRAB_BROWSER_TIMEOUT_MS=30000

# LLM (for agentic browse)
BROWSEGRAB_LLM_PROVIDER=vllm          # vllm | ollama | openai
BROWSEGRAB_LLM_BASE_URL=http://localhost:8000/v1
BROWSEGRAB_LLM_MODEL=Qwen/Qwen3.5-32B-AWQ

# Agent
BROWSEGRAB_AGENT_MAX_STEPS=10
BROWSEGRAB_AGENT_ENABLE_CACHE=true

QuartzUnit生态系统的一部分

库角色
markgrab被动提取(URL→ 降价)
快照被动捕获(URL→ 屏幕截图)
docpick文档OCR→ 结构化JSON
Browsegrab主动自动化(目标→ 浏览器操作→ 结果)

发展

git clone https://github.com/QuartzUnit/browsegrab.git
cd browsegrab
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
playwright install chromium

# Unit tests (no browser needed)
pytest tests/ -m "not e2e"

# Full suite including E2E
pytest tests/ -v

许可证

麻省理工学院

______________________________________________________________________

部分 Quartz单位 生态系统——用于数据收集、提取、搜索和AI代理安全的可组合Python库。

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

浏览器自动化本地部署本地LLM优化Token效率PlaywrightMarkGrab

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

自动操作网页

打开页面、点击、填表,把浏览器动作交给模型执行。

抓结构化数据

把页面内容整理成表格或 JSON,省掉手工复制粘贴。

走一遍关键流程

按步骤检查页面是否正常,回归时少漏环节。

选择建议

值得选的地方

  • 只提供 8 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在浏览器工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
browsegrab (Quartz Unit)

MCP World · 本页

8stdio有2 个2026-05-17
Fetch 9a2682de

MCP.so

1SSE有3 个2026-05-17
Browser 738d52bc

MCP World

0stdio有1 个2026-05-17
Playwright MCP Server

MCP.so

21stdio有4 个2026-05-17
Skyvern MCP

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

browsegrab (Quartz Unit) 怎么安装?

公开资料给出的安装命令是 pip install browsegrab,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

browsegrab (Quartz Unit) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

browsegrab (Quartz Unit) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

browsegrab (Quartz Unit) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

browsegrab (Quartz Unit) 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP