execute
Execute JS with Puppeteer 24.43.1. Globals: browser. Use 'return' for result. Use Puppeteer selectors: CSS, text/, aria/, xpath/, pierce/. Response includes screenshots (path, url) for each open tab.
One tool that runs your Puppeteer JavaScript against a live browser, instead of a fixed menu of navigate, click and screenshot.
LABSCO SUMMARY
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.
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.
browser in scope and return for the result, so a whole workflow is one call rather than a sequence of round trips.Nothing to supply. The code runs on the machine the server runs on, with a real browser attached.
One command — npx pptr-mcp
USE CASES
Write the whole flow — navigate, wait, fill, submit, extract — as one script and return the result, instead of a round trip per action.
Use request interception, frame handling or an arbitrary wait condition, because the API is not being mediated by a tool schema.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
executeExecute JS with Puppeteer 24.43.1. Globals: browser. Use 'return' for result. Use Puppeteer selectors: CSS, text/, aria/, xpath/, pierce/. Response includes screenshots (path, url) for each open tab.
BEFORE YOU INSTALL
1 tool when we connected.
CONTEXT COST
Rated by the size of the one tool definition that rides along on every turn
INSTALLATION
Add the block to your client, or run the command directly.
{
"mcpServers": {
"pptr-mcp": {
"command": "npx",
"args": [
"pptr-mcp"
]
}
}
}npx pptr-mcp