Labsco
MCP SERVER

brosh

by twardoch

Full-page screenshots of a scrolling site, handed back as images plus the visible text as Markdown and, if you want it, the HTML.

Browser Automation, Control & Screenshots
Summary
The text arrives with the pixels.

Returning the screenshot and the Markdown text from the same capture is the design choice that makes this useful to a model — it can read the content and look at the layout without two separate fetches that might not agree. Halving the scale by default in MCP mode is a small thing that quietly keeps responses affordable. The `playwright install` step is the one that catches everybody.

What it is

A browser capture tool built for agents that need to see a page rather than fetch its source. It drives Chrome, Edge or Safari through Playwright, scrolls the page and captures each section, and returns the screenshots alongside the extracted text and optionally minified HTML. It can attach to the browser session you already have open, so pages behind a login are reachable.

What you get
  • `see_webpage` — the exposed MCP tool, taking `url`, `zoom`, `width`, `height`, `scroll_step`, `scale` and the fetch flags
  • Four return shapes you can combine: base64 image data with `fetch_image`, file paths to saved images with `fetch_image_path`, extracted Markdown text with `fetch_text`, and minified HTML with `fetch_html`
  • A default `scale` of 50 in MCP mode, and automatic size limits on responses, so a long page does not overwhelm the calling model
  • Beyond MCP: a CLI and a Python API, single-shot or frame-series capture, and an animated PNG of the whole scroll
  • Connection to your existing browser session, bringing cookies, logins and extensions with it, or a fresh launch when you would rather not
Requirements

Nothing — no account, no key. Python with `uv tool install brosh` or `pip install brosh`, followed by `playwright install` — that second command fetches the browser binaries and skipping it makes every capture fail with a browser-not-found error. The MCP entry point is the `brosh-mcp` command that install provides — PyPI does not have a package under that name — and the client is wired with `claude mcp add brosh -- brosh-mcp`, or a config entry running the same command. Screenshots default to `~/Pictures/brosh`. Works on macOS, Windows and Linux.

Setup effort

One command — uv tool install brosh playwright install