Supports configuration through a .env file in the project root for setting environment variables
Allows execution of JavaScript in the browser console through the puppeteer_evaluate tool
Provides specific configuration instructions for Claude Desktop on macOS, identifying the config file location
Provides browser automation capabilities using Puppeteer to interact with web pages, take screenshots, and execute JavaScript in a real browser environment
Steel Puppeteer
A Model Context Protocol server that provides browser automation capabilities using Puppeteer and Steel. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
Components
Tools
puppeteer_navigate
Navigate to any URL in the browser
Inputs:
url
(string, required): URL to navigate totimeout
(number, optional, default: 60000): Navigation timeout in millisecondswaitUntil
(string, optional, default: "domcontentloaded"): When to consider navigation succeeded. Options: "load", "domcontentloaded", "networkidle0", "networkidle2"
puppeteer_screenshot
Capture screenshots of the entire page or specific elements
Inputs:
name
(string, required): Name for the screenshotselector
(string, optional): CSS selector for element to screenshot
puppeteer_click
Click elements on the page
Input:
selector
(string, required): CSS selector for element to click
puppeteer_fill
Fill out input fields
Inputs:
selector
(string, required): CSS selector for input fieldvalue
(string, required): Value to fill
puppeteer_select
Select an element with SELECT tag
Inputs:
selector
(string, required): CSS selector for element to selectvalue
(string, required): Value to select
puppeteer_hover
Hover elements on the page
Input:
selector
(string, required): CSS selector for element to hover
puppeteer_evaluate
Execute JavaScript in the browser console
Input:
script
(string, required): JavaScript code to execute
puppeteer_get_content
Extract content from the current page
Input:
selector
(string, optional): CSS selector to get content from specific elements. If not provided, returns whole page content
puppeteer_scroll
Scroll the page to trigger lazy-loading
Inputs:
scrollDelay
(number, optional, default: 100): Delay between scrolls in millisecondsmaxScrolls
(number, optional, default: 50): Maximum number of scrolls
Resources
The server provides access to two types of resources:
Console Logs (
console://logs
)Browser console output in text format
Includes all console messages from the browser
Screenshots (
screenshot://<name>
)PNG images of captured screenshots
Accessible via the screenshot name specified during capture
Key Features
Browser automation with Puppeteer
Steel integration for browser session management
Console log monitoring and capture
Screenshot capabilities
JavaScript execution
Basic web interaction (navigation, clicking, form filling)
Content extraction with token limit handling
Lazy-loading support through scrolling
Local and remote Steel instance support
Configuration
Claude Desktop Configuration
To use the Steel Puppeteer server with Claude Desktop, add the following configuration to your Claude Desktop config file (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json
on macOS):
Replace "path/to/steel-puppeteer/dist/index.js"
with the actual path to the compiled JavaScript file on your system.
Environment Variables
The Steel Puppeteer server can be configured using the following environment variables:
STEEL_LOCAL
(optional, default: "false"): Set to "true" to use a local Steel instance instead of the cloud service.STEEL_API_KEY
(required only ifSTEEL_LOCAL
is "false"): Your Steel API key for authentication when using the cloud service.STEEL_URL
(optional): The URL of your Steel instance if using a custom deployment.
Server Configuration
If you're running the Steel Puppeteer server directly (not through Claude Desktop), you can set these environment variables in your shell or create a .env
file in the project root. Here's an example .env
file for local usage:
If you're using the Steel cloud service, your .env
file would look like this:
Running the Server
To start the Steel Puppeteer server:
Install dependencies:
npm installBuild the project:
npm run buildStart the server:
npm startOpen Claude Desktop and browse away! The server will start and listen on the specified port (default: 3000).
Troubleshooting
If you encounter issues with Puppeteer, ensure that you have the necessary dependencies installed on your system. Refer to the Puppeteer troubleshooting guide for more information.
If using the Steel cloud service, make sure your Steel API key is valid and has the necessary permissions.
If using a local Steel instance, ensure it's running and accessible at the specified URL (if custom) or at the default local address.
For more detailed configuration options and advanced usage, refer to the Steel documentation and the Puppeteer API reference.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A Model Context Protocol server that enables LLMs to automate web browsers using Puppeteer, allowing navigation, screenshots, form filling, and JavaScript execution in a real browser environment.
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol server that provides browser automation capabilities using Puppeteer with configurable options through environment variables, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a browser environment.Last updated -74
- AsecurityFlicenseAqualityA Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.Last updated -711,780
- -securityAlicense-qualityA Model Context Protocol server that provides enhanced browser automation capabilities using Puppeteer-Extra with Stealth Plugin, enabling LLMs to interact with web pages in a way that better emulates human behavior and avoids detection as automation.Last updated -2MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in real browser environments.Last updated -318,548MIT License