Server profile · Evaluated September 2026

Puppeteer MCP

A lightweight browser-control MCP that can navigate pages, click and fill elements, capture screenshots and execute JavaScript through Puppeteer. The capability still works, but this specific MCP package is now deprecated, archived and unmaintained.

Browser automation stdio 7 tools Deprecated Archived
Lifecycle warning

@modelcontextprotocol/server-puppeteer is legacy reference software. npm marks it deprecated, its source is archived, and the archive states that security fixes and guarantees are no longer provided.

Publisher
Historical MCP reference server
Archived implementation
Declared tools
7
Small schema surface
Transport
stdio
Local process
Authentication
No server API key
Browser session defines authority
Schema impact
~2K–4K
Estimated tool-schema tokens
Current status
Deprecated
No active maintenance

Start with Decision, Status, Security, Token Cost, Limitations and Replacement. The setup section is retained for legacy evaluation only because the package is deprecated.

Should you use Puppeteer MCP today?

Best for

Historical testing, disposable demos, compatibility investigation and understanding early MCP browser-automation design.

Poor fit

New production deployments, authenticated browsing, autonomous agents, private-network access, or any workflow that expects active security maintenance.

Main advantage

A tiny seven-tool surface that is easy to understand and inexpensive to expose to a model.

Main tradeoff

The server retains powerful browser authority while the package itself has been abandoned and receives no future security fixes.

MCPVerdict view

The low verdict is not a judgment on Puppeteer as a browser-automation library. It reflects the lifecycle and safety consequences of using this specific archived MCP server in 2026.

Why Puppeteer MCP scores 34/100

The score is weighted around the server’s actual job: giving an AI agent reliable browser authority. Basic navigation and interaction still work, but an agent-facing browser server must also be maintainable, compatible with current MCP clients and defensible when it handles untrusted webpages or authenticated sessions.

The server therefore scores reasonably on effectiveness and efficiency, but very poorly on maintainability, compatibility and safety.

Universal parameterScoreFinding
Effectiveness68Core navigation, form interaction, screenshots and JavaScript execution still do what the package advertises.
Reliability48Frozen dependencies and no future browser/client compatibility work.
Safety39Powerful browser authority, outdated safeguards and no active security maintenance.
Efficiency79Only seven tool schemas, although screenshot and retry loops can become expensive.
Compatibility30Old MCP SDK and no adoption path for current protocol generations.
Maintainability5Explicitly archived and deprecated.
Setup friction84NPX/Docker setup remains simple despite the package being obsolete.

Browser-specific parameters

ParameterScoreFinding
Navigation/interactivity76Core browser interactions remain useful.
Element-targeting reliability55CSS-selector-centric interaction is brittle for autonomous agents.
Prompt-injection containment31No modern agent-specific containment layer is documented.
Private-network containment30Arbitrary navigation with no modern host/origin policy layer.
Browser-code execution safety38puppeteer_evaluate provides substantial page authority.
Context efficiency78Small schema set; screenshot/base64 and selector retries can erase the advantage.
Failure observability59Console logs help, but modern DevTools alternatives expose much richer diagnostics.
Modern-alternative differentiation18Puppeteer’s current documentation now points MCP users elsewhere.

Puppeteer MCP is deprecated and no longer maintained

@modelcontextprotocol/server-puppeteer is no longer an actively maintained MCP server. Its source was moved into the archived Model Context Protocol reference-server repository, npm marks the package deprecated, and the archive states that archived servers receive no bug fixes, no security updates and no security guarantees.

This lifecycle state matters because Puppeteer MCP is not a passive data reader. It can navigate arbitrary URLs, submit forms, manipulate pages and execute JavaScript inside a browser session.

Original role
Reference MCP server showing how Puppeteer browser automation could be exposed through MCP.
Archived
Canonical implementation moved to the archived reference-server repository.
npm status
@modelcontextprotocol/server-puppeteer is marked deprecated.
Security
No future fixes or security guarantees from the archived project.
Current direction
Puppeteer documentation now directs MCP users toward Chrome DevTools MCP.

What is Puppeteer MCP?

Puppeteer MCP is an archived Model Context Protocol server that lets an MCP-compatible AI client control a browser through Puppeteer.

The server converts MCP tool calls into Puppeteer browser actions. An agent can navigate to a URL, click or hover over CSS-selected elements, fill inputs, select options, capture screenshots and execute JavaScript in the current page.

The important distinction is that Puppeteer itself remains an active browser-automation project. The deprecated component is this older MCP reference server.

AI clientreasoning + tool selection
MCPtool call
Puppeteer MCP7 browser tools
Puppeteerbrowser API
Web pagereal browser state

Is Puppeteer MCP made by Google?

The underlying Puppeteer library is maintained by Chrome’s Browser Automation team. The archived Puppeteer MCP package was a Model Context Protocol reference implementation. They should not be treated as the same project or lifecycle.

What can Puppeteer MCP do?

Navigation

Open browser destinations

Navigate to supplied URLs, including any destinations reachable from the host environment unless outside controls restrict them.

Interaction

Click, hover and submit

Target elements with CSS selectors, trigger buttons, hover states and form actions.

Forms

Fill and select

Enter values into page inputs and select options from dropdown controls.

Inspection

Screenshots and console

Capture page/element screenshots and expose stored browser console output to the MCP client.

Execution

Run JavaScript

puppeteer_evaluate executes arbitrary JavaScript inside the loaded page context.

Browser session

Act with existing authority

If the launched browser/profile is authenticated, actions can occur inside those authenticated pages.

Not read-only

An agent can potentially submit forms, trigger destructive controls, change settings, send content and manipulate application state. Seven tools still represent substantial browser authority.

How Puppeteer MCP interacts with webpages

The old Puppeteer server primarily works through CSS selectors, screenshots, console output and page JavaScript. That is a simpler interaction model than newer browser-agent servers that return structured semantic page representations.

Typical selectors look like:

button.submit
#email
.product-card:nth-child(2)

This works when the DOM is predictable, but it can be brittle for autonomous agents. A model may need to inspect a page, infer a selector, try an interaction, discover it failed and repeat the loop.

A small tool schema does not guarantee a cheap browser workflow if the model repeatedly guesses selectors and retries actions.

Why Playwright’s structured page state matters

Current Playwright MCP can expose accessibility snapshots and stable element references such as a semantic “Sign in” button. Puppeteer MCP’s older CSS-selector-centric interface gives the model less direct semantic structure. That difference affects both reliability and context efficiency during long agent loops.

Puppeteer MCP tools

The archived package exposes exactly seven browser tools. The small surface is easy for an MCP client to advertise and relatively cheap in schema context.

ToolAuthorityWhat it does
puppeteer_navigateRead / navigationNavigate the browser to a supplied URL.
puppeteer_screenshotReadCapture a full-page or element screenshot.
puppeteer_clickWrite / interactionClick a CSS-selected element.
puppeteer_hoverInteractionHover over a selected element.
puppeteer_fillWrite / formEnter content into an input field.
puppeteer_selectWrite / formSelect an option from a page control.
puppeteer_evaluateHigh authorityExecute JavaScript in the page context and return the result.

Resources

The package also exposes browser console logs and captured screenshots as MCP resources. This helps observability, but large logs and image-heavy loops can substantially increase context usage.

What a Puppeteer MCP interaction looks like

A simple screenshot task is short:

User requestopen a page
Navigatepuppeteer_navigate
Browserloads target
Screenshotpuppeteer_screenshot
Resultreturned to client

A form workflow is more expensive because it can require several calls:

navigate → inspect/guess selector → fill → select → click → inspect result → retry if needed

This difference is important when estimating real token usage. Puppeteer MCP’s schema overhead is low, but a brittle interaction loop can generate many turns.

How to install Puppeteer MCP

Legacy setup only

The package remains installable, but npm marks it deprecated. This configuration is useful for historical testing or compatibility investigation, not as a current upstream recommendation for new production deployments.

A standard stdio configuration uses:

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

NPX vs Docker

AttributeNPXDocker
SetupFast local launchContainerized setup
Runtime boundaryHost Node/browser environmentContainer boundary
Browser profileDepends on local launch optionsUsually cleaner/disposable environment
Network accessHost reachabilityCan be constrained deliberately
Best current useDisposable legacy testSafer isolation for evaluation

Dangerous browser flags

The package includes one useful safeguard: dangerous Chromium launch arguments such as --no-sandbox and --disable-web-security are blocked by default unless dangerous options are explicitly enabled. That is good design, but it does not compensate for the package’s end-of-life status.

Using Puppeteer MCP with Claude Code, Cursor and OpenCode

Search demand around Puppeteer MCP is strongly client-oriented. The server uses stdio, so clients capable of launching compatible stdio MCP processes can historically configure it. The practical risk is not the configuration syntax—it is compatibility drift as modern MCP clients move beyond the protocol generation used by this package.

Client / intentParent-page answerContent decision
Claude CodeHistorically configurable as a stdio MCP server.Strongest dedicated child-page candidate because search evidence includes both general and installation intent.
CursorHistorically compatible with stdio MCP configuration.Potential child page if volume/SERP depth supports it.
OpenCodeCan work with stdio-style MCP configurations where current compatibility allows.Potential child page if search evidence remains distinct.
Compatibility warning

A successful process launch is not enough to prove modern compatibility. The published package uses a very old MCP SDK and has no maintenance path for newer protocol behavior.

What can Puppeteer MCP access?

The effective authority is broader than the seven-tool count suggests. Depending on the runtime and browser session, Puppeteer MCP can interact with:

  • public webpages and browser-rendered content;
  • forms, buttons and interactive controls;
  • screenshots and browser console output;
  • DOM and application state through JavaScript;
  • authenticated pages when the browser profile contains a valid session;
  • localhost or private-network targets reachable from the host/container.

puppeteer_navigate accepts arbitrary destinations, while puppeteer_evaluate can execute code inside the page. That combination makes network isolation and browser-session hygiene important.

Puppeteer MCP security

The central security problem is the combination of untrusted webpage content + an LLM decision loop + browser write authority + no active package maintenance.

Arbitrary navigation and private-network exposure

A 2026 audit of the archived package highlighted unrestricted URL access and the possibility of interacting with local/private-network destinations accessible from the runtime. The old server does not document a modern host allowlist or origin/network policy comparable with newer browser-agent tooling.

JavaScript execution

puppeteer_evaluate can inspect and manipulate the DOM, form state, page-accessible storage and application state, and can trigger network activity from the page. Puppeteer is designed to make browser automation powerful; exposing that capability to an AI agent makes isolation and review especially important.

Prompt injection

Untrusted pageattacker-controlled text
AI modelinterprets page
MCP toolaction selected
Browserclick / fill / evaluate
Real effectaccount or app state

A malicious page can contain instructions aimed at the agent. The archived server predates much of the current browser-agent hardening discussion and does not document a modern prompt-injection containment layer.

Old MCP SDK and dependency risk

A May 2026 audit reported that the published 2025.5.12 package resolved @modelcontextprotocol/sdk@1.0.1 and puppeteer@23.11.1. The same review identified high-severity advisories affecting that old MCP SDK line, including ReDoS and missing default DNS-rebinding protection in affected versions.

Because the package is deprecated, there is no expected upstream upgrade path.

Does Puppeteer MCP support the current MCP specification?

The archived release does not adopt MCP 2026-07-28. It was frozen long before that protocol generation existed and still uses @modelcontextprotocol/sdk@1.0.1.

This matters less for a disposable historical test than for a long-lived integration. As clients evolve, a frozen server can continue to launch while gradually losing interoperability with modern protocol expectations.

Compatibility status

MCP 2026-07-28: not adopted by the archived upstream package.

Telemetry and data handling

No separate product-telemetry subsystem was identified in the archived local Puppeteer MCP implementation during the evaluation.

That does not mean browsing is private. The browser still communicates with every website it visits, the MCP client can receive screenshots/console/JavaScript results, and model-provider data handling depends on the client and provider used around the MCP server.

How much context does Puppeteer MCP use?

Puppeteer MCP has a useful efficiency advantage at connection time: it exposes only seven tools. Estimated total tool-schema overhead is roughly 2K–4K tokens, depending on the MCP client and the tokenizer/model used.

Tool-schema cost

The seven schemas are small compared with modern browser MCPs exposing dozens of tools. This makes the initial fixed context load relatively low.

Result cost

Normal small text results can be modest. Screenshots, long console logs, base64 image representations and large puppeteer_evaluate results can be much heavier.

Retry cost

The largest hidden context cost can be failed interaction loops. A model may inspect a page, guess a CSS selector, try it, fail, inspect again and repeat. A richer semantic page representation can therefore be more token-efficient in practice even when its tool schemas are larger.

Representative evaluation workload

For cross-model pricing below, use approximately 40K input + 10K output tokens for a moderately involved browser-evaluation run. This is not the fixed cost of one Puppeteer MCP request and excludes model-specific image billing.

Model cost for a 40K-input + 10K-output run

The table uses current standard short-context API rates available on September 27, 2026. It excludes caching, batch discounts, priority/fast tiers, image charges, search/tool fees and subscription plans.

Current modelInput / output per 1MApprox. run cost
GPT-6 Astra
OpenAI
$20 / $100$1.8
GPT-6 Sol
OpenAI
$4 / $20$0.36
GPT-6 Luna
OpenAI
$0.2 / $1$0.018
GPT-5.6 Sol
OpenAI
$4 / $20
promotional
$0.36
Claude Fable 5.1
Anthropic
$10 / $50$0.9
Claude Sonnet 5
Anthropic
$2 / $10$0.18
Claude Opus 4.8
Anthropic
$5 / $25$0.45
Gemini 3.1 Pro Preview
Google
$2 / $12
<200K request
$0.2
Gemini 3.8 Flash
Google
$0.75 / $3.75
introductory through Dec 31, 2026
$0.0675
Gemini 3.1 Flash-Lite
Google
$0.25 / $1.5$0.025
Grok 4.6
xAI
$2 / $6
<200K request
$0.14
Grok Build 0.1
xAI
$1 / $2
<200K request
$0.06
Mistral Medium 3.5
Mistral
$1.5 / $7.5$0.135
Mistral Large 3
Mistral
$0.5 / $1.5$0.035
DeepSeek V4.1 Flash
DeepSeek
$0.15–$0.30 / $0.60–$1.20
off-peak; peak is 2×
$0.012–$0.024

Pricing notes: GPT-5.6 Sol uses its current promotional API rate. Gemini 3.8 Flash uses its introductory 2026 rate. Gemini 3.1 Pro and Grok rows assume a request below their higher long-context price threshold. DeepSeek V4.1 Flash uses its official peak/off-peak pricing range.

What does Puppeteer MCP actually cost?

The MCP server itself has $0 license cost; it is MIT-licensed. But the meaningful operational cost has four layers.

Software

$0 server license

No per-call fee is charged by the archived Puppeteer MCP package itself.

Compute

Browser/runtime resources

CPU, memory, browser downloads, containers and any remote machine used to host the browser.

Model

Tool-loop token cost

Tool schemas, screenshots, logs, retry loops, conversation history and model output all contribute to usage.

Operations

Obsolete infrastructure

Security isolation, compatibility fixes, migration work and the cost of building around software nobody intends to maintain.

Wall-clock evaluation budget

TaskTypical evaluation time
Install/configure~5 minutes
Browser-task gauntlet~20–30 minutes
Security/network tests~10 minutes
Compare against a maintained browser MCP~15–20 minutes
Total~45–60 minutes

Hidden costs

  • browser download and runtime overhead;
  • outdated Chrome/Puppeteer compatibility;
  • model retries caused by brittle CSS selectors;
  • authenticated-session exposure;
  • local/private-network reachability;
  • webpage prompt injection;
  • no future security patches;
  • eventual client breakage from old MCP protocol support.

The biggest hidden cost is building workflows around software whose upstream project explicitly does not intend to maintain it.

Puppeteer MCP limitations

Archived and unsupported

The central limitation. There is no normal upstream path for fixes, SDK upgrades, browser-compatibility work or security remediation.

Small tool surface

Seven tools keep the schema lean, but modern browser MCPs expose much richer navigation, structured page state, network and debugging capabilities.

CSS-selector-oriented targeting

Agents can struggle when they must infer brittle selectors instead of receiving stable semantic element references.

Screenshot and retry overhead

Image-heavy workflows and repeated selector attempts can consume more context than the small schema count suggests.

Limited debugging depth

Console logs provide some observability, but there is no equivalent of the dedicated network, performance and DevTools surface now available through Chrome DevTools MCP.

No maintenance response

New browser-agent threats, protocol changes and dependency issues cannot be assumed to receive an upstream patch.

Puppeteer MCP vs Playwright MCP

Google search evidence connects these two servers strongly enough that the comparison belongs on the parent page, but the full query deserves its own dedicated comparison URL.

AttributePuppeteer MCPPlaywright MCP
MaintenanceArchived / deprecatedActively maintained
Primary page interactionCSS selectors, screenshots, JavaScriptStructured accessibility snapshots plus browser tools
Tool surface7 toolsBroader current automation surface
JavaScript executionYesYes
ScreenshotsYesYes
Element representationSelector-orientedSemantic/stable references available
MCP evolutionFrozenActive
Security maintenanceNo future upstream fixesActive project maintenance
Primary present-day issueLifecycle riskTrade-offs around capability, context and browser authority
Structural difference

The most important difference is not simply feature count. One server is frozen; the other continues to evolve as an agent-facing browser tool.

What replaced Puppeteer MCP?

Puppeteer itself has not disappeared from MCP browser automation. Its current documentation now points MCP users to Chrome DevTools MCP, a maintained Puppeteer-based server for browser automation and debugging.

That creates a clearer present-day relationship:

Puppeteeractive browser library
Old Puppeteer MCParchived reference server
End of lifedeprecated package
Chrome DevTools MCPPuppeteer-based
Current pathautomation + debugging

Chrome DevTools MCP adds deeper browser diagnostics such as network inspection, console debugging, screenshots and performance-oriented tooling. For someone specifically seeking a maintained Puppeteer-backed MCP, this is the important successor relationship to understand.

Where Puppeteer MCP still fits — and where it does not

Remaining fit

Reasonable historical use

  • Studying early MCP browser-server design.
  • Disposable offline demonstrations.
  • Compatibility investigation for a legacy integration.
  • Testing the exact old seven-tool interface.
Poor fit

Do not build new critical workflows around it

  • Production browser automation.
  • Authenticated browsing.
  • Long-running autonomous agents.
  • Internal/private-network access.
  • Security-sensitive environments.
  • Projects that need current MCP compatibility.

The cheapest sensible test

If you specifically need to investigate the historical server, use a disposable environment rather than a normal personal browser session.

  1. Run the server in a disposable container or isolated machine.
  2. Do not attach authenticated personal browser data.
  3. Block access to sensitive private networks.
  4. Navigate a public test page.
  5. Capture a screenshot.
  6. Test click, fill and select behavior.
  7. Execute a harmless JavaScript inspection.
  8. Try a page containing prompt-injection-style text.
  9. Compare the same task with Chrome DevTools MCP and Playwright MCP.

This measures whether the historical server still works in your environment without turning the test itself into an unnecessary security exposure.

MCPVerdict assessment

Puppeteer MCP was useful as an early demonstration of browser automation through MCP. The toolset is small, understandable and inexpensive at schema-load time. It also includes a sensible default that blocks obviously dangerous Chromium launch flags unless explicitly enabled.

But this exact server has reached end-of-life. It is archived with no security guarantees, npm marks it deprecated, it remains on an old MCP SDK, and Puppeteer’s current documentation now points MCP users toward Chrome DevTools MCP instead.

Browser MCPs operate on untrusted webpages while retaining click, form and JavaScript authority. In that environment, maintenance is a first-order safety property—not a cosmetic project-health metric.

Bottom line

Puppeteer is still relevant; the original Puppeteer MCP server is not current infrastructure.

Puppeteer MCP technical details

Show the full technical profile
AttributeEvaluated value
NamePuppeteer MCP
Package@modelcontextprotocol/server-puppeteer
Latest evaluated package2025.5.12
StatusDeprecated / archived / unmaintained
LicenseMIT
RuntimeNode.js + Puppeteer
Transportstdio
Declared tools7
Console resourceYes
Screenshot resourceYes
AuthenticationNo Puppeteer API credential; browser profile/session defines site authority
Telemetry identifiedNo separate product telemetry subsystem identified
Estimated schema overhead~2K–4K tokens
Scan gradeC
Overall score34/100
ConfidenceLow
MCP 2026-07-28Not adopted
Current Puppeteer-backed MCP pathChrome DevTools MCP

Evidence and confidence

Verdict confidence: Low. The package’s archive and deprecation status are strongly evidenced. Confidence is lower for present-day performance because an abandoned server naturally has little fresh 2026 user and release evidence.

The evaluation therefore separates strong lifecycle evidence from measurements that would still require a controlled live run.

FindingSignalConfidence
npm marks the package deprecatedNegative lifecycleStrong
Canonical source is archivedNegative lifecycleStrong
Archive promises no security fixes/guaranteesNegative safety/maintenanceStrong
2026 audit found old MCP SDK dependencyNegative compatibility/securityStrong
Audit identified modern browser guardrail gapsNegative safetyStrong
Puppeteer documentation points to Chrome DevTools MCPEcosystem replacementStrong
Modern success rate across current sites/clientsUnknown without live testThin

What only a live test can establish

  • Chrome launch reliability on current operating systems;
  • current website compatibility;
  • click/form success rate;
  • exact token usage under a chosen client/model;
  • browser crash frequency;
  • current client interoperability.

Those measurements could change the performance picture. They would not change the documented fact that the upstream package is deprecated and archived.

Primary sources

Frequently asked questions

Is Puppeteer MCP deprecated?

Yes. npm marks @modelcontextprotocol/server-puppeteer deprecated, and its source is in the archived MCP reference-server repository.

Is Puppeteer itself deprecated?

No. Puppeteer remains an active browser-automation project. The deprecated component is this older MCP server.

How many tools does Puppeteer MCP expose?

Seven: navigate, screenshot, click, hover, fill, select and evaluate.

Can Puppeteer MCP execute JavaScript?

Yes. puppeteer_evaluate executes arbitrary JavaScript in the current page context.

Can Puppeteer MCP access localhost?

The old server does not document a modern private-network blocking layer. Destinations reachable from the host/container may therefore be accessible unless additional network restrictions are applied.

Is Puppeteer MCP free?

The server is MIT-licensed and has no per-call server fee. Browser compute, model usage, retries and operational/security work still create real cost.

Can Claude Code use Puppeteer MCP?

Historically, yes through stdio MCP configuration. Current interoperability should be tested because the server uses an old MCP SDK and is no longer maintained.

Can Cursor use Puppeteer MCP?

Historically, Cursor can launch stdio MCP servers. The same current-compatibility warning applies to this frozen package.

Can OpenCode use Puppeteer MCP?

It can be configured where stdio compatibility remains intact, but this should be treated as legacy usage rather than current upstream-supported integration.

Does Puppeteer MCP support the current MCP 2026-07-28 specification?

No. The archived package predates that protocol generation and remains on an old MCP SDK.

What should replace Puppeteer MCP?

Puppeteer’s current documentation points MCP users toward Chrome DevTools MCP. Playwright MCP is another actively maintained browser-automation MCP with a different interaction model.

Is Puppeteer MCP faster than Selenium?

That comparison is primarily about the underlying Puppeteer and Selenium browser-automation libraries, not this MCP server. It is therefore outside the core evaluation of Puppeteer MCP.

Evaluating this for a team?

Check the choice against your workflow, clients, permissions, deployment, and alternatives.

Team evaluation
Cookie policy · Disclaimer