Browsegrab MCP Server

Token-efficient browser agent for local LLMs. Playwright + accessibility tree + MarkGrab.

Local serverstdioPython

What is the Browsegrab MCP server?

Most browser automation work still happens through a UI a human drives. Browsegrab MCP server moves it into the conversation instead. Token-efficient browser agent for local LLMs. Playwright + accessibility tree + MarkGrab.

The short version

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]

  • Token-efficient — ~500-1,500 tokens/step (vs 4,000-10,000 for browser-use)
  • Local LLM first — Optimized for vLLM, Ollama, and OpenAI-compatible endpoints
  • MCP native — Built-in MCP server with 8 browser automation tools
  • MarkGrab integration — HTML → clean markdown for content extraction
  • Accessibility tree + ref system — Stable element references (e1, e2, ...) without vision models
  • Success pattern caching — Zero LLM calls on repeated workflows

Getting it running

Installation goes through your MCP client rather than a global install: point it at browsegrab on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

What it needs from you

Configuration is passed through the environment: BROWSEGRAB_LLM_BASE_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Among the browser automation options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. It is maintained by ArkNill; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Browsegrab's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

How to install the Browsegrab MCP server

{
  "mcpServers": {
    "browsegrab": {
      "command": "uvx",
      "args": ["browsegrab"],
      "env": {
        "BROWSEGRAB_LLM_BASE_URL": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
BROWSEGRAB_LLM_BASE_URLEndpoint or connection string the server talks to.Yes

Frequently asked questions

It connects Browsegrab to MCP-compatible AI assistants such as Claude and Cursor. Instead of copying data back and forth by hand, the assistant works with Browsegrab directly.