ScrapeLab MCP
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ScrapeLab MCP>naviagte to example.com and extract the article content as markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ScrapeLab MCP
The most complete stealth browser MCP server for AI agents.
84 tools. Undetectable by anti-bot systems. Full CDP access.
LLM-ready markdown. Auto cookie consent dismiss (100+ CMPs).
Accessibility snapshots, PDF export, HAR capture, network hooks, element cloning.
What is this?
An MCP server that gives AI agents (Claude, Cursor, Windsurf, etc.) a fully undetectable browser with 84 automation tools. Built on nodriver + Chrome DevTools Protocol + FastMCP.
Why not Playwright MCP? Playwright is detectable. Sites with Cloudflare, DataDome, or any anti-bot system will block it. ScrapeLab uses nodriver (the successor of undetected-chromedriver) — no navigator.webdriver flag, no automation fingerprints, no detection.
Key differentiators
Feature | ScrapeLab MCP | ||
Anti-bot bypass (Cloudflare, DataDome) | Yes | No | Yes |
Markdown output (LLM-ready) | Yes | Yes | No |
Cookie consent auto-dismiss (100+ CMPs) | Yes | No | No |
Accessibility snapshots | Yes | Yes | No |
PDF export | Yes | Yes | No |
HAR export | Yes | No | No |
Network interception + hooks | Deep (Python hooks) | Routes only | Deep |
Element cloning (styles, events, animations) | Full CDP | No | Full CDP |
Progressive element cloning | Yes | No | Yes |
Tools | 84 | 61 | 90 |
Modular sections (enable/disable) | Yes | Capabilities | Yes |
LLM-Ready Markdown
get_page_content returns clean markdown instead of raw HTML — 98-99% smaller, ready for LLM consumption.
Mode | Engine | Best for | Size reduction |
| html2text | Full page structure, navigation, all content | ~98% |
| trafilatura | Article/main content only, precision extraction | ~99% |
Both modes strip scripts, styles, SVGs, cookie banners, navigation chrome, and HTML comments before conversion.
Cookie Consent Auto-Dismiss
Every navigate call automatically dismisses cookie/GDPR consent popups. No manual clicks, no leftover overlays blocking your scraper.
Three-layer system:
DuckDuckGo autoconsent — 2863 rules covering 100+ consent management platforms (iubenda, Cookiebot, OneTrust, Quantcast, TrustArc, etc.)
CMP JS API fallback — Calls platform APIs directly from the main page (
_sp_.destroyMessages(),OneTrust.AllowAll(),__tcfapi, Didomi, Cookiebot) — handles cross-origin iframe popups like SourcePointDOM click fallback — Catches multi-step consent flows (e.g. iubenda's 2-click Italian flow) by re-clicking accept buttons
Disable per-instance with spawn_browser(auto_dismiss_consent=False).
Quickstart
1. Clone and install
git clone https://github.com/competitorch/ScrapeLabMCP.git
cd ScrapeLabMCP
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt2. Add to your MCP client
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"scrapelab-mcp": {
"command": "/path/to/ScrapeLabMCP/.venv/bin/python",
"args": ["/path/to/ScrapeLabMCP/src/server.py"]
}
}
}Claude Code CLI:
claude mcp add-json scrapelab-mcp '{
"type": "stdio",
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/src/server.py"]
}'3. Use it
You: "Open a browser and navigate to example.com"
You: "Take a screenshot and get the accessibility snapshot"
You: "Get the page content as markdown"
You: "Export the page as PDF"
You: "Show me all network requests and export as HAR"Tools Reference (84 tools)
Browser Management (10 tools)
Tool | Description |
| Launch undetectable browser instance (headless, proxy, custom UA, auto-consent) |
| Navigate to URL with wait conditions + auto cookie consent dismiss |
| Clean shutdown of browser instance |
| List all active browser instances |
| Full page state (URL, cookies, storage, viewport) |
| Browser history navigation |
| Reload with optional cache bypass |
| Structured accessibility tree — the fastest way for an LLM to understand a page |
| Export page as PDF with full layout control |
Element Interaction (11 tools)
Tool | Description |
| Find elements by CSS/XPath with visibility info |
| Natural click with fallback strategies |
| Human-like typing |
| Instant paste via CDP |
| Directional scrolling |
| Smart wait with timeout |
| Run JavaScript in page context |
| Dropdown selection |
| Element properties and bounding box |
| Screenshot (viewport, full page, or element) |
| HTML, text, or markdown ( |
Element Extraction (8 tools)
Deep extraction with optional save_to_file=True on every tool.
Style extraction supports method="js" or method="cdp" for maximum accuracy.
Tool | Description |
| 300+ CSS properties, pseudo-elements, inheritance chain |
| DOM tree, attributes, data attributes, children |
| Event listeners, inline handlers, framework detection |
| CSS animations, transitions, transforms, keyframes |
| Images, backgrounds, fonts, icons, videos |
| Linked CSS/JS files, imports, modules |
| Master clone: all of the above in one call ( |
Progressive Cloning (10 tools)
Lazy-load element data on demand — start lightweight, expand what you need.
Tool | Description |
| Base structure with |
| Expand specific data categories |
| Expand detailed styling data |
| Manage stored elements |
Network & Traffic (12 tools)
Deep network monitoring with interception, search, and standard export formats.
Tool | Description |
| All captured requests with type filtering |
| Inspect individual requests |
| Search by URL pattern, method, status, body content |
| Modify request headers for future requests |
| Control what gets captured |
| JSON export/import |
| Export as HAR 1.2 — importable in Chrome DevTools, Postman, Fiddler |
Dynamic Hooks (7 tools)
AI-generated Python functions that intercept and modify network traffic in real-time.
Tool | Description |
| Full hook with custom Python function |
| Template hook (block, redirect, add_headers, log) |
| Manage hooks |
| Docs for writing hooks (overview, requirements, examples, patterns) |
| Validate hook code before deploying |
CDP Functions (12 tools)
Direct Chrome DevTools Protocol access for advanced automation.
Tool | Description |
| Raw CDP command execution |
| Discover page APIs |
| Call JS functions |
| Inject and run scripts |
| Inspect function signatures |
| Functions that survive navigation |
| Python-in-browser via py2js |
| CDP introspection |
Cookies & Storage (3 tools)
Tool | Description |
| Cookie management |
Tab Management (5 tools)
Tool | Description |
| Full tab lifecycle |
Debugging (5 tools)
Tool | Description |
| Debug system |
| Diagnose platform and browser issues |
Modular Architecture
Load only what you need:
# Full suite (84 tools)
python src/server.py
# Core only — browser + element interaction
python src/server.py --minimal
# Disable specific sections
python src/server.py --disable-cdp-functions --disable-progressive-cloning
# List all sections
python src/server.py --list-sectionsSections
Section | Tools | Description |
| 10 | Core browser ops, accessibility, PDF |
| 11 | Click, type, scroll, screenshot, markdown |
| 8 | Deep element cloning with save_to_file |
| 12 | Network monitoring, HAR export |
| 12 | Raw CDP access |
| 10 | Lazy element expansion |
| 3 | Cookie management |
| 5 | Tab management |
| 5 | Debug tools |
| 7 | Network hook system |
Environment Variables
Variable | Default | Description |
|
| Minutes before idle browser instances are auto-closed |
|
| Port for HTTP/SSE transport |
Troubleshooting
No compatible browser found — Install Chrome, Chromium, or Edge. Run validate_browser_environment_tool() to diagnose.
Too many tools for your use case — Use --minimal or --disable-<section>.
Browser instances piling up — Instances auto-close after 5 minutes of inactivity (configurable via SCRAPELAB_IDLE_TIMEOUT).
License
MIT — see LICENSE.
Built by Edoardo Nardi
Stealth engine powered by nodriver
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/scrapelab/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server