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.
puppeteer_navigate
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
name
(string, required): Name for the screenshotselector
(string, optional): CSS selector for element to screenshotpuppeteer_click
selector
(string, required): CSS selector for element to clickpuppeteer_fill
selector
(string, required): CSS selector for input fieldvalue
(string, required): Value to fillpuppeteer_select
selector
(string, required): CSS selector for element to selectvalue
(string, required): Value to selectpuppeteer_hover
selector
(string, required): CSS selector for element to hoverpuppeteer_evaluate
script
(string, required): JavaScript code to executepuppeteer_get_content
selector
(string, optional): CSS selector to get content from specific elements. If not provided, returns whole page contentpuppeteer_scroll
scrollDelay
(number, optional, default: 100): Delay between scrolls in millisecondsmaxScrolls
(number, optional, default: 50): Maximum number of scrollsThe server provides access to two types of resources:
Console Logs (console://logs
)
Screenshots (screenshot://<name>
)
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.
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 if STEEL_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.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
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).
For more detailed configuration options and advanced usage, refer to the Steel documentation and the Puppeteer API reference.
Seamless access to top MCP servers powering the future of AI integration.