Skip to content

How to let an AI agent capture a web page you are signed in to: Playwright MCP vs. Chrome DevTools MCP vs. Puppeteer vs. Page Scanner MCP

Four ways to give a coding agent a full-page capture, compared on whether they can use your everyday Chrome and its logins, what they hand back, and what you have to set up first.

An agent that can read the web is easy. An agent that can read the page you are looking at, behind your login, in the state you left it, is the useful one, and it is a different problem. Every tool below can take a full-page screenshot. The question that separates them is whose browser they take it in, and what they hand the agent afterwards.

Four tools at a glance

Playwright MCPChrome DevTools MCPPuppeteerPage Scanner MCP
Uses your everyday Chrome, logins included✓ in extension mode; otherwise its own browser✓ with --autoConnect on Chrome 144 or later; otherwise a separate profilewith connect(), to a separate profile✓ through the extension, in every profile you pair
What you set upthe server; an extension for extension modethe server; enable remote debugging in Chromea script; launch a browser or a debugging portthe server, one pairing, a token pasted into Chrome
Full-page screenshotbrowser_take_screenshottake_screenshot with fullPagepage.screenshot({ fullPage: true })scan_page with format png or jpeg
PDFbrowser_pdf_save, opt-inpage.pdf(), print media by default✓ text stays text, artwork stays vector
Choose the page width and paper first✓ in codecaptureWidth and pageSize
What the agent gets backan image, or a filean image, or a filebytes, in your codethe absolute path of the file on disk
Also doesfull browser automationautomation, debugging, performance tracesanything, in codelist browsers and tabs, pair
Licence and priceApache-2.0Apache-2.0Apache-2.0free; the extension and an npm package

✓ yes, ✗ no.

Why "signed in" is the whole question

A page behind a login, a dashboard, a thread in your mail, an internal wiki, is only there in a browser that is logged in. A tool that launches its own browser sees the login wall. There are three ways round that, and the four tools here take different ones.

Drive the real Chrome. Chrome can be started with a remote debugging port, and then any program on the machine can control it. Chrome DevTools MCP's documentation is frank about the trade: "Chrome requires you to use a non-default user data directory when enabling the remote debugging port", so this is a separate profile rather than your daily one, and "any application on your machine can connect to this port and control the browser". Puppeteer's connect() works the same way.

Ask Chrome to allow it. From Chrome 144, DevTools MCP's --autoConnect uses a setting at chrome://inspect/#remote-debugging that you enable and confirm, and then it drives your default profile, with the caveat that it cannot pick a profile if you have several.

Put an extension in the browser. Playwright MCP's extension mode and Page Scanner both go this way: a piece of the tool lives inside Chrome, the agent talks to it, and Chrome's own permission model decides what it can touch.

Playwright MCP

Playwright MCP is the general-purpose option. It gives an agent a browser to navigate, click and type in through accessibility snapshots, and among its tools are browser_take_screenshot, with full-page capture in PNG, JPEG or WebP, and browser_pdf_save, which is opt-in. By default it runs its own browser; its extension mode connects to the Chrome or Edge you are logged in to, so the agent works where you work. If the capture is one step in a longer browsing task, this is the natural choice.

Chrome DevTools MCP

Google's own server lets an agent "control and inspect a live Chrome browser": automation, debugging, performance traces, and take_screenshot with a fullPage option in PNG, JPEG or WebP. It has no PDF tool. Its two ways of reaching a running Chrome are the ones above, the debugging port with a separate profile or --autoConnect on a recent Chrome. If the agent's job is to debug a page rather than to keep a copy of it, this is the one built for that.

Puppeteer

Puppeteer is a library, not a server, so the agent runs a script you wrote, or writes one. page.screenshot({ fullPage: true }) and page.pdf() do the capturing; the PDF renders with the print stylesheet unless you emulate screen media first, and its options cover paper format, margins, scale, backgrounds and page ranges. It launches its own browser by default, and connects to a running one through a debugging port. Maximum control, in exchange for owning the code.

Page Scanner MCP

Page Scanner's server is four tools over its command line: pair, list_browsers, list_tabs and scan_page. The capture runs inside the Chrome you already use, through the extension, so a page behind a login is a page you are logged in to, and scan_page writes the file to disk and returns its absolute path. The file is the same PDF the editor makes, text selectable and artwork vector, laid out at the window's width or at A4 or Letter so it prints at 1:1, or a PNG or JPEG when format says so. Nothing leaves the machine: the bridge listens on 127.0.0.1 only, is off until you pair it, and a token is what stops any other program on the machine asking for a scan. It does not navigate or click; it captures the page a tab is showing. Setup is one line for Claude Code:

claude mcp add page-scanner -- npx -y @page-scanner/mcp

then a pairing, and the port and token pasted into the extension's settings page. Chrome shows its "started debugging this browser" bar while a scan runs, for the agent's scans as much as yours.

Which should you use?

Use Playwright MCP if the agent has to browse, not just capture: log in, click through, fill a form, and take the screenshot at the end.

Use Chrome DevTools MCP if the agent's job is the page's behaviour, console and performance, and a screenshot is evidence rather than the product.

Use Puppeteer if you are writing the pipeline yourself and want every option in code.

Use Page Scanner MCP if what the agent needs is the document: a faithful PDF of a page you are signed in to, with real text, printable, from a tool that cannot do anything else in your browser.

Frequently asked questions

Is it safe to let an agent into my browser? The debugging-port route is the one to be careful with, and Chrome DevTools MCP's docs say so: with the port open, any application on the machine can control the browser. Playwright MCP's extension mode and Page Scanner's pairing keep Chrome's own permission model in place; Page Scanner's bridge is loopback only, off until paired, and needs the token.

Can any of these capture a page as a vector PDF with selectable text? Playwright MCP, Puppeteer and Page Scanner write PDFs with real text. Chrome DevTools MCP writes images.

Will the agent see the debugger bar too? Page Scanner attaches Chrome's debugger for each scan, so the bar shows during an agent's scan as it does during yours. Its documentation says why it cannot be hidden.

Where this comes from

Page Scanner is a Chrome extension. Add it to Chrome.