mcp
puppeteer + mcp + steel [WIP]
claude mcp add --transport stdio rdvo-mcp-server node path/to/steel-puppeteer/dist/index.js \ --env STEEL_LOCAL="true"
How to use
The Steel Puppeteer MCP server exposes a browser automation layer powered by Puppeteer and integrated with Steel. It allows LLMs to navigate web pages, take screenshots, click elements, fill forms, evaluate JavaScript, and extract content from pages, all within a real browser session managed by Steel. Tools include puppeteer_navigate, puppeteer_screenshot, puppeteer_click, puppeteer_fill, puppeteer_select, puppeteer_hover, puppeteer_evaluate, puppeteer_get_content, and puppeteer_scroll, plus access to console logs and captured screenshots through dedicated endpoints. To use it, run the server and feed it commands corresponding to these tools; the server will execute the actions in a browser context and return results such as page content, selectors, or image data as needed. You can also configure whether to use a local Steel instance or the Steel cloud service via environment variables.
Key capabilities include: navigating to URLs with configurable timeouts and wait strategies, capturing full-page or element-specific screenshots, programmatically clicking and filling inputs, selecting options, hovering, executing JavaScript, extracting content with optional selectors, and scrolling to trigger lazy loading. Logs from the browser console are exposed at console://logs, while screenshots are accessible as screenshot://<name> after capture. This setup supports local and remote Steel integrations and is designed to be used by LLMs through a consistent MCP interface.
How to install
Prerequisites:
- Node.js and npm installed on your system
- Basic familiarity with running npm scripts
Step-by-step installation:
-
Install dependencies npm install
-
Build the project npm run build
-
Start the server npm start
-
Configure your client (e.g., Claude Desktop) to point to the running MCP server (default port 3000 unless configured otherwise). For Claude Desktop, use a config similar to: { "mcpServers": { "steel-puppeteer": { "command": "node", "args": ["path/to/steel-puppeteer/dist/index.js"], "env": { "STEEL_LOCAL": "true" } } } }
-
Verify the server is listening and reachable by issuing a basic navigate or get_content request and checking the responses.
Additional notes
Environment variables:
- STEEL_LOCAL: true to use a local Steel instance, false to use Steel cloud (default: false)
- STEEL_API_KEY: required if STEEL_LOCAL is false and using the cloud service
- STEEL_URL: optional custom Steel instance URL
Troubleshooting tips:
- Ensure Node.js dependencies are installed and built correctly before starting the server.
- If Puppeteer complains about missing dependencies, review the Puppeteer troubleshooting guides.
- When using the cloud Steel service, verify your API key and permissions.
- If running locally, confirm STEEL_LOCAL=true and that the Steel instance is accessible at the expected URL.
- Check console://logs for browser console output to diagnose script errors or page issues.
Configuration tips:
- Use the provided environment variables to switch between local and cloud Steel deployments without code changes.
- In Claude Desktop, place the path to the built index.js in the command args to ensure seamless integration.
Related MCP Servers
zen
Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage
MCP -Deepseek_R1
A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)
mcp-fhir
A Model Context Protocol implementation for FHIR
mcp
Inkdrop Model Context Protocol Server
mcp-appium-gestures
This is a Model Context Protocol (MCP) server providing resources and tools for Appium mobile gestures using Actions API..
dubco -npm
The (Unofficial) dubco-mcp-server enables AI assistants to manage Dub.co short links via the Model Context Protocol. It provides three MCP tools: create_link for generating new short URLs, update_link for modifying existing links, and delete_link for removing short links.