Token导航 LogoToken导航TokenDH.com
browsegrab (Quartz Unit) logo
浏览器工具stdio官方级别未说明来源级核验

browsegrab (Quartz Unit)

MCP Server

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

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
浏览器自动化Token认证网页抓取

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

QuartzUnit

提供方

QuartzUnit

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install browsegrab

详细介绍

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库。

目录标签

目录标签

浏览器自动化Token认证网页抓取本地部署本地LLM优化Token效率PlaywrightMarkGrab

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotokenlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP