Puppeteer MCP Server

Automated web browsing, screenshotting, and form interaction for AI agents.

Data last scanned last week · Reviewed last month

01 dangerous tool8 tools480TypeScriptMIT

Overview

Puppeteer MCP Server offers browser automation capabilities, enabling AI assistants to navigate websites, interact with page elements, and execute custom JavaScript. It supports both fresh browser instances and connections to existing Chrome windows for persistent session usage. Built in TypeScript, the server provides tools for form submission, element selection, hovering, and capturing screenshots. It is designed to integrate into standard MCP configurations, allowing developers to manage Chrome tabs directly through AI prompts.

Our verdict

This server receives a high-risk security score of 28/100, primarily due to it being a community-maintained project that has not been editorially reviewed. Given that the last commit occurred 504 days ago, users should exercise extreme caution as the project lacks recent maintenance and security updates. It is not recommended for environments where browser automation requires modern security patching.

  • Supports connection to existing Chrome browser instances
  • Small footprint with only four direct dependencies
  • Provides full documentation for MCP configuration
  • Includes features for taking screenshots and executing JavaScript
  • High risk score due to lack of recent commits
  • Community-maintained rather than official vendor code
  • Authentication and read-only modes lack security review

Setup

Claude Desktop
{
  "mcpServers": {
    "puppeteer-mcp-server": {
      "args": [
        "-y",
        "puppeteer-mcp-server"
      ],
      "command": "npx"
    }
  }
}

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.

  • No read-only mode — running this grants full read/write access.
  • No built-in authentication — anyone with access to this config can invoke every tool it exposes.

Tools

ToolDescriptionRisk
puppeteer_connect_active_tabConnect to an existing Chrome instance with remote debugging enabled.medium
puppeteer_navigateNavigate to a URL.medium
puppeteer_screenshotTake a screenshot of the current page or a specific element.low
puppeteer_clickClick an element on the page.medium
puppeteer_fillFill out an input field.medium
puppeteer_selectUse dropdown menus.medium
puppeteer_hoverHover over elements.medium
puppeteer_evaluateExecute JavaScript in the browser console.high

Compatibility

ClientLocalDockerRemoteRead-only
ChatGPT
Claude Desktop
Cursor
VS Code
Windsurf

Frequently asked questions

Can I use this server to interact with my existing Chrome browser session?

Yes, you can connect to an existing Chrome instance by launching it with the --remote-debugging-port=9222 flag and using the puppeteer_connect_active_tab tool.

What is the default behavior when I start the server?

By default, the server will launch a new browser instance rather than attaching to an existing one.

Does the server provide tools for form interaction?

Yes, the server includes tools like puppeteer_fill for input fields and puppeteer_select for dropdown menus.

Are there specific environment settings needed when running from source?

When running from source, you must set the NODE_OPTIONS environment variable to --experimental-modules.

Can I specify the dimensions for screenshots?

Yes, the puppeteer_screenshot tool accepts optional width and height parameters, which default to 800 and 600 pixels respectively.

Alternatives

Changelog

Badge

Puppeteer MCP Server security score, rated on RepoAI

Maintain this server? Add the live badge to your README.