Labsco
MCP SERVER

Website Snapshot

by gustavo-meilus

One Playwright call that returns a page's accessibility tree, its network requests and its console output together — structured for a model to read, not a screenshot.

Page Fetching & Content Extraction
Summary
Capture, not control.

This does one half of browser automation — it observes and never clicks. That narrowness is the appeal: one call returns the structure, the traffic and the errors together, which is usually enough to explain why a page misbehaves without giving a model the ability to change anything on it.

What it is

A single-tool MCP server built on Playwright. Give it a URL and it loads the page in a real browser, then hands back the accessibility tree with reference IDs on interactive elements, every network request and response, and whatever the page logged to the console.

What you get
  • `website_snapshot`, which takes `target_url` and returns the whole capture in one response
  • The accessibility tree as structured text — headings, links, buttons and navigation, each interactive element tagged `[ref=1]`-style so a later step can target it precisely
  • Network requests and responses recorded during page load, with status codes
  • Console output collected while the page ran: logs, warnings and errors
  • A summary line counting elements, requests and console messages
Requirements

No account and no key. Python 3.11 or newer and uv. Clone the repository, `uv sync`, then `uv run playwright install` to get the browsers — that step is easy to skip and nothing works without it. The client config runs `uv --directory /path/to/mcp-web-snapshot run python src/server.py`. Viewport, user agent and the 15-second timeout are edited in the `CONFIG` dictionary in `src/tools/snapshot_url.py`. Package name `mcp-web-snapshot` at 0.1.0, MIT.