Skip to main content
Glama
MCP Puppeteer Linux Server

MCP Puppeteer Linux Server

MCP-Puppeteer-Linux

A Model Context Protocol server that provides browser automation capabilities using Puppeteer, with full support for Linux display servers (X11 and Wayland). This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.

Display Server Support

This fork adds automatic detection and configuration for Linux display servers:

  • Automatic X11/Wayland detection

  • Dynamic environment variable configuration

  • Support for various desktop environments (GNOME, KDE, etc.)

  • Fallback mechanisms and robust error handling

  • XWayland compatibility

Related MCP server: Playwright MCP Server

Components

Tools

  • puppeteer_navigate

    • Navigate to any URL in the browser

    • Input: url (string)

  • puppeteer_screenshot

    • Capture screenshots of the entire page or specific elements

    • Inputs:

      • name (string, required): Name for the screenshot

      • selector (string, optional): CSS selector for element to screenshot

      • width (number, optional, default: 800): Screenshot width

      • height (number, optional, default: 600): Screenshot height

  • puppeteer_click

    • Click elements on the page

    • Input: selector (string): CSS selector for element to click

  • puppeteer_hover

    • Hover elements on the page

    • Input: selector (string): CSS selector for element to hover

  • puppeteer_fill

    • Fill out input fields

    • Inputs:

      • selector (string): CSS selector for input field

      • value (string): Value to fill

  • puppeteer_select

    • Select an element with SELECT tag

    • Inputs:

      • selector (string): CSS selector for element to select

      • value (string): Value to select

  • puppeteer_evaluate

    • Execute JavaScript in the browser console

    • Input: script (string): JavaScript code to execute

Resources

The server provides access to two types of resources:

  1. Console Logs (console://logs)

    • Browser console output in text format

    • Includes all console messages from the browser

  2. Screenshots (screenshot://<name>)

    • PNG images of captured screenshots

    • Accessible via the screenshot name specified during capture

Key Features

  • Browser automation with Linux display server support

  • Automatic X11/Wayland detection and configuration

  • Console log monitoring

  • Screenshot capabilities

  • JavaScript execution

  • Basic web interaction (navigation, clicking, form filling)

Configuration

Claude Desktop Configuration

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["ts-node", "/path/to/index.ts"]
    }
  }
}

Installation

Installing via Smithery

To install Puppeteer Linux for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @PhialsBasement/mcp-puppeteer-linux --client claude

Manual Installation

  1. Clone the repository:

git clone https://github.com/PhialsBasement/MCP-Puppeteer-Linux.git
  1. Install dependencies:

npm install
  1. Start the server:

ts-node index.ts

Display Server Details

The server automatically detects and configures the appropriate display environment:

Wayland Support

  • Detects Wayland sessions via WAYLAND_DISPLAY

  • Configures necessary environment variables:

    • WAYLAND_DISPLAY

    • QT_QPA_PLATFORM

    • GDK_BACKEND

    • MOZ_ENABLE_WAYLAND

    • XDG_SESSION_TYPE

X11 Support

  • Fallback for traditional X11 sessions

  • Handles X11-specific variables:

    • DISPLAY

    • XAUTHORITY

  • Supports various desktop environments and window managers

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

7 tools
puppeteer_clickC

Click an element on the page

Inputs: selector (required).

puppeteer_evaluateB

Execute JavaScript in the browser console

Inputs: script (required).

puppeteer_fillC

Fill out an input field

Inputs: selector (required), value (required).

puppeteer_hoverC

Hover an element on the page

Inputs: selector (required).

puppeteer_navigateB

Navigate to a URL

Inputs: url (required).

puppeteer_screenshotB

Take a screenshot of the current page or a specific element

Inputs: name (required), selector, width, height.

puppeteer_selectC

Select an element on the page with Select tag

Inputs: selector (required), value (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting specific browser automation actions. Click, fill, hover, navigate, screenshot, evaluate, and select all perform unique operations with no overlap in functionality.

    Naming Consistency5/5

    All tools follow the exact same 'puppeteer_verb' naming pattern consistently. The verb-noun structure is uniform across all seven tools with no deviations in style or convention.

    Tool Count5/5

    Seven tools is well-scoped for a Puppeteer automation server. Each tool represents a fundamental browser interaction that earns its place, providing essential coverage without being overwhelming or insufficient.

    Completeness4/5

    The toolset covers core browser automation workflows including navigation, interaction, and content capture. Minor gaps exist such as missing wait/network tools or file uploads, but agents can work around these with existing tools like evaluate.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers