@modelcontextprotocol/server-puppeteer
Anthropic's official reference MCP server for browser automation via Puppeteer/Chromium. Gives agents the ability to control a real browser — navigate pages, click elements, fill forms, take screenshots, and execute JavaScript.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
Browser has full web access — agents can be prompted to navigate to malicious URLs. No URL allowlist by default. Credentials typed into pages via type() are not redacted in logs. Use in trusted environments only.
⚡ Reliability
Best When
You need to interact with JavaScript-rendered pages that mcp-server-fetch can't handle. Full browser automation — click, type, screenshot, navigate.
Avoid When
The target content is available from static HTML or an API endpoint — Puppeteer is overkill and slower than a simple HTTP fetch.
Use Cases
- • Web scraping JavaScript-heavy SPAs that plain HTTP fetch can't handle
- • Automated form filling and web UI interaction in agent workflows
- • Taking screenshots of web pages for visual analysis or documentation
- • End-to-end testing of web applications via agent-driven browser control
- • Logging into sites and accessing content behind authentication
Not For
- • High-volume scraping (Puppeteer is resource-heavy; one browser instance per server)
- • Mobile-specific web layouts (desktop Chromium by default)
- • Sites with sophisticated bot detection (Cloudflare Bot Management, hCaptcha)
Interface
Authentication
No authentication for the MCP server. Browser sessions can be authenticated by the agent — navigate to login page, fill credentials, proceed. Sessions persist within a single MCP server run.
Pricing
MIT licensed, free. Requires Node.js runtime. Puppeteer downloads a compatible Chromium binary automatically (~300MB).
Agent Metadata
Known Gotchas
- ⚠ One browser instance shared across all tool calls — concurrent navigation from multiple agents causes conflicts
- ⚠ Screenshots return base64 PNG — large images consume significant context tokens
- ⚠ Navigation timeouts default to 30s — slow sites or heavy SPAs frequently timeout without explicit timeout config
- ⚠ Cookie/session state persists within a server run but not across restarts
- ⚠ Dynamic content (lazy-loaded images, infinite scroll) not automatically awaited — agent must use waitForSelector
- ⚠ Running in headless mode may trip bot detection on some sites
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for @modelcontextprotocol/server-puppeteer.
Scores are editorial opinions as of 2026-03-06.