LabscoMCP early access ↗
gustavo-meilusMCP SERVER

Website Snapshot

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.

by gustavo-meilus ↗Page Fetching & Content ExtractionCommunity

LABSCO 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 <YOUR_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.

Setup effort

Build from source — git clone https://github.com/gustavo-meilus/mcp-web-snapshot.git