QuartzUnit/browsegrab
Token-efficient browser agent for local LLMs — Playwright + accessibility tree + MarkGrab, MCP native.
Platform-specific configuration:
{
"mcpServers": {
"browsegrab": {
"command": "npx",
"args": [
"-y",
"browsegrab"
]
}
}
}Add the config above to .claude/settings.json under the mcpServers key.
> Token-efficient browser agent for local LLMs — Playwright + accessibility tree + MarkGrab, MCP native.
browsegrab is a lightweight browser automation library designed for local LLMs (8B-35B parameters). It combines Playwright's accessibility tree with MarkGrab's HTML-to-markdown conversion to achieve 5-8x fewer tokens per step compared to alternatives like browser-use.
e1, e2, ...) without vision modelsplaywright + httpx in corepip install browsegrab
playwright install chromiumWith optional features:
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] # Everythingfrom 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 sLoading reviews...