Steel Puppeteer
Provides browser automation capabilities using Puppeteer and Steel, configurable for local or cloud instances.
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):
{
"mcpServers": {
"steel-puppeteer": {
"command": "node",
"args": ["path/to/steel-puppeteer/dist/index.js"],
"env": {
"STEEL_LOCAL": "true"
}
}
}
}
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:
STEEL_LOCAL=true
If you're using the Steel cloud service, your .env
file would look like this:
STEEL_API_KEY=your-steel-api-key
STEEL_LOCAL=false
Running the Server
To start the Steel Puppeteer server:
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Start the server:
npm start
-
Open 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.
Related Servers
Read Website Fast
Fast, token-efficient web content extraction that converts websites to clean Markdown. Features Mozilla Readability, smart caching, polite crawling with robots.txt support, and concurrent fetching with minimal dependencies.
Lightpanda Go MCP server
A Go-based MCP server for interacting with the Lightpanda Browser using the Chrome DevTools Protocol (CDP).
Playwright Server
Automate web browsers and perform web scraping tasks using the Playwright framework.
Deepwiki
Fetches content from deepwiki.com and converts it into LLM-readable markdown.
ScrAPI MCP Server
A server for scraping web pages using the ScrAPI API.
Crawl4AI MCP Server
An MCP server for advanced web crawling, content extraction, and AI-powered analysis using the crawl4ai library.
Cloudflare Playwright
Control a browser for web automation tasks using Playwright on Cloudflare Workers.
MCP Undetected Chromedriver
Automate Chrome browser control while bypassing anti-bot detection using undetected-chromedriver.
Hyperbrowser
Hyperbrowser is the next-generation platform empowering AI agents and enabling effortless, scalable browser automation.
Website Snapshot
A MCP server that provides comprehensive website snapshot capabilities using Playwright. This server enables LLMs to capture and analyze web pages through structured accessibility snapshots, network monitoring, and console message collection.