Reading a web page or driving a browser: which recorded MCP server for which page
For assistants asked to read a web page or act in a browser, this feature separates a fetch server from two browser servers and lists what headlesson observed in their lesson tests, separately from cautions taken from their documentation. The recorded lesson runs used https://example.com on macOS on 2026-10-11, and the two browser records also include a supplementary test on a local fixture page; none covered logins, clicks, forms, console or network inspection, traces, JavaScript-heavy pages or real sites.
Read a page, or drive a browser
- To read one public page as text: Fetch MCP server (mcp-server-fetch) (
app:mcp-server-fetch), a reference MCP server with a single fetch tool that converts the HTML of a URL to Markdown. Its lesson passed both steps with 2026.10.10 on 2026-10-11, fetching https://example.com through uvx. - To look at a page the way a browser renders it, or to click and fill forms: Playwright MCP (
app:playwright-mcp), which works from accessibility snapshots of the page. Its lesson passed 4 steps with 0.0.83 on 2026-10-11: navigate to https://example.com, take a snapshot, close, in a fresh isolated headless browser; a supplementary test opened a local fixture page. Clicking and filling forms were not tested. - To use Chrome's debugging and performance tools (console, network, traces): Chrome DevTools MCP (
app:chrome-devtools-mcp), which drives Google Chrome. Its lesson passed 4 steps with 1.10.1 on 2026-10-11: open https://example.com, list pages, take a snapshot, close; a supplementary test opened a local fixture page. Console, network and trace tools were not tested. - Editorial advice, not tested: start with Fetch MCP server (mcp-server-fetch) (
app:mcp-server-fetch) for a static public page, and move to Playwright MCP (app:playwright-mcp) or Chrome DevTools MCP (app:chrome-devtools-mcp) when the page needs a browser to render it or a login; the three were separate lesson runs at the same example URL, not a controlled head-to-head comparison.
Observed in the tests
- Fetch MCP server (mcp-server-fetch) (
app:mcp-server-fetch): the Markdown for https://example.com held only the body paragraph after the line "Contents of https://example.com/:"; the page title and link were missing. Check whether something you need was dropped, not only that text came back. - Playwright MCP (
app:playwright-mcp) and Chrome DevTools MCP (app:chrome-devtools-mcp): both ran with a fresh isolated headless browser on macOS with Node 24.19.0 and Chrome 154; for Chrome DevTools MCP (app:chrome-devtools-mcp) the test turned off its usage statistics with flags.
Cautions from the documentation
- Fetch MCP server (mcp-server-fetch) (
app:mcp-server-fetch): output is cut at max_length (5000 characters by default), so read further with start_index; for requests the model starts it obeys the site's robots.txt and sends its own user-agent; it refuses private and loopback addresses by default, and its README notes this does not cover DNS rebinding; installing Node.js switches it to a different HTML simplifier, so output can differ between machines. - Playwright MCP (
app:playwright-mcp): it is not a security boundary, and a persistent profile can keep login state, so use an isolated profile unless the person wants their logins used. - Chrome DevTools MCP (
app:chrome-devtools-mcp): usage statistics are on by default; only Google Chrome and Chrome for Testing are officially supported; its CLI has unrestricted file system access unless a workspace restriction is set. Browser contents are visible to the connected MCP client. headlesson's own reading of the configuration, not tested: connecting to the person's running Chrome (--autoConnect) needs them to approve a dialog.
A safe sequence
With Fetch MCP server (mcp-server-fetch) (app:mcp-server-fetch), Playwright MCP (app:playwright-mcp) or Chrome DevTools MCP (app:chrome-devtools-mcp): confirm the exact URL with the person; read before acting (fetch the page, or navigate and take a snapshot); use a fresh isolated browser profile unless the person asks for theirs; show any form submission, purchase or account change and get approval before doing it; check that the text you rely on was not truncated or dropped. Each lesson (headlesson_get with sections ["lesson","gotchas"]) gives the exact configuration and versions.
Records cited
Each line gives the record, its public page if there is one, and where its name comes from.
- Fetch MCP server (mcp-server-fetch) —
app:mcp-server-fetch(no public page yet; available over MCP); source: https://github.com/modelcontextprotocol/servers/blob/main/src/fetch/README.md (checked 2026-10-11, primary, official) - Playwright MCP —
app:playwright-mcp(no public page yet; available over MCP); source: https://github.com/microsoft/playwright-mcp/blob/main/README.md (checked 2026-10-09, primary, official) - Chrome DevTools MCP —
app:chrome-devtools-mcp(no public page yet; available over MCP); source: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/README.md (checked 2026-10-09, primary, official)
Article source
headlesson editorial judgement (checked 2026-10-13, inferred, editorial).
Retrieve over MCP
headlesson_get id="feature:web-pages" on https://mcp.headlesson.com/mcp