Labsco
MCP SERVER

Puppeteer MCP

by iatsiuk

One tool that runs your Puppeteer JavaScript against a live browser, instead of a fixed menu of navigate, click and screenshot.

Browser Automation, Control & ScreenshotsVerified
Summary
One tool that takes code trades safety for reach, and the trade is explicit rather than hidden.

Fixed browser tools are safer and hit a wall: a multi-step interaction becomes a dozen round trips, each carrying the page state back into the model's context, and anything the tool author did not anticipate is simply unavailable. Handing over the Browser instance removes the wall entirely — a login flow, a scrape with retries, a wait on a custom condition is one call. What you give up is any boundary on what the code does, since arbitrary JavaScript with a browser handle can navigate anywhere and read anything the browser can. That is a reasonable trade for a local development machine and a poor one for anything shared, and it is worth deciding which you have before attaching it.

What it is

A browser automation server that takes the opposite approach from the usual one: rather than exposing predefined actions, it exposes a single execute tool that runs arbitrary JavaScript in a Node VM with the Puppeteer Browser instance as a global.

What you get
  • execute runs your code with `browser` in scope and `return` for the result, so a whole workflow is one call rather than a sequence of round trips.
  • The full Puppeteer API is reachable, including the parts a fixed tool set never covers — request interception, frame handling, evaluating in page context, waiting on arbitrary conditions.
Requirements

Nothing to supply. The code runs on the machine the server runs on, with a real browser attached.

Setup effort

One command — npx pptr-mcp