MCP Browser
Automatically detects and waits for Cloudflare challenges (Turnstile, interstitial) up to 15 seconds for resolution.
Supports web search via DuckDuckGo as an alternative search engine, with automatic fallback when Google blocks.
Performs web searches using Google through the real browser, with stealth to avoid CAPTCHAs.
Launches and connects to a real Google Chrome instance with full browser fingerprint, cookies, and sessions, enabling AI to browse as a normal user.
Rewrites Reddit URLs to old.reddit.com for a scraping-friendly version.
Click 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., "@MCP Browsersearch for latest AI news on Google"
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.
MCP Browser
Give your AI a real browser.
MCP server that lets AI assistants browse the web through your real Chrome — with your cookies, sessions, and fingerprint. No bot detection. No CAPTCHAs.
Quick Start (30 seconds)
No installation needed. Just add the config to your MCP client:
Claude Desktop
Add to ~/.config/claude/claude_desktop_config.json (Mac/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "@wgarrido/mcp-browser"],
"env": {
"CHROME_HEADLESS": "true"
}
}
}
}Claude Code (CLI)
claude mcp add browser -- npx -y @wgarrido/mcp-browserVS Code / Cursor
Add to .vscode/mcp.json in your project:
{
"servers": {
"browser": {
"command": "npx",
"args": ["-y", "@wgarrido/mcp-browser"],
"env": {
"CHROME_HEADLESS": "true"
}
}
}
}That's it. Chrome launches automatically in the background. Start browsing.
Related MCP server: Chrome MCP Server
Why MCP Browser?
Problem | How MCP Browser solves it |
Sites block bots and scrapers | Uses your real Chrome with your real fingerprint |
Cloudflare challenges, CAPTCHAs | Auto-detects and waits for challenges to resolve |
Content behind login | Your cookies and sessions are already there |
Noisy HTML (ads, nav, popups) | Smart DOM cleaning strips everything but content |
Cookie consent banners | Auto-dismissed (40+ selector patterns) |
SPAs with dynamic content | Runs in a real browser — JavaScript executes naturally |
Available Tools (15)
Core
Tool | What it does |
| Load a URL → clean Markdown |
| Extract main article content (Readability) |
| Search Google/DuckDuckGo through the browser |
| PNG screenshot of a page or CSS element |
| Run arbitrary JS in the page context |
| Extract JSON-LD, OpenGraph, meta, tables, headings, links |
| Fetch up to 5 URLs in parallel |
| Get all links from a page (with regex filter) |
| Crawl a site following links (depth/page limits) |
| Check browser connection status |
Persistent Sessions
Keep tabs open across multiple tool calls for multi-step workflows:
Tool | What it does |
| Open a persistent tab → returns |
| Close a tab by |
| Interact: click, type, select, submit, scroll |
| List all open tabs |
| Track page changes over time (start/check/stop) |
Most tools accept an optional
tab_idto reuse a persistent session instead of opening a new page.
Usage Examples
Just talk naturally to your AI:
"Search for the latest Node.js release notes" →
web_search+fetch_page"Read and summarize this article: https://..." →
fetch_readable"Compare pricing on these two pages" →
multi_fetch"Take a screenshot of https://..." →
screenshot"Log into this site, then scrape my dashboard" →
open_tab+click_and_navigate+fetch_page"Extract all /docs/ links from this page" →
extract_links"Crawl this site 2 levels deep" →
crawl"Watch this page for changes every 30 seconds" →
monitor_page
Advanced: Use Your Own Chrome Sessions
By default, MCP Browser launches Chrome in headless mode (background, no window). This is the simplest setup.
If you want to use your existing cookies and logged-in sessions, launch Chrome manually with CDP enabled, then point MCP Browser to it:
Launch Chrome with CDP
Mac:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=9222 --no-first-runLinux:
google-chrome --remote-debugging-port=9222 --no-first-runWindows (PowerShell):
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--remote-debugging-port=9222 --no-first-runOr use the included scripts:
./scripts/launch-chrome.sh # Mac/Linux
.\scripts\launch-chrome.ps1 # WindowsImportant: Chrome must be started fresh. If it's already running, the CDP flag is ignored. Quit Chrome first, or use
--user-data-dir="/tmp/chrome-cdp"for a separate profile.
Config without headless
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "@wgarrido/mcp-browser"],
"env": {
"CDP_URL": "http://localhost:9222"
}
}
}
}Configuration
All settings are optional. Pass them via env in your MCP config:
Variable | Default | Description |
|
| Auto-launch Chrome in headless mode (recommended) |
| (auto-detect) | Custom path to Chrome/Chromium executable |
|
| Chrome DevTools Protocol endpoint |
|
| Page load timeout in ms |
|
| Max returned content in characters |
|
| Max simultaneous browser tabs |
|
| Enable in-memory page cache |
|
| Cache time-to-live in seconds |
|
|
|
|
|
|
|
| Auto-close inactive tabs after this duration |
|
| JSON map of profile name → CDP URL |
Example with custom settings:
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "@wgarrido/mcp-browser"],
"env": {
"CHROME_HEADLESS": "true",
"SEARCH_ENGINE": "duckduckgo",
"DEFAULT_TIMEOUT": "60000",
"MAX_CONTENT_LENGTH": "100000"
}
}
}
}Features
Headless mode — Chrome runs in the background, auto-launched by the server
Anti-bot stealth — Hides
navigator.webdriver, fakes plugins, languages, and permissionsCloudflare handling — Detects Turnstile/interstitial challenges and waits up to 15s for resolution
Cookie banner dismissal — Auto-clicks consent overlays (GDPR, OneTrust, CookieBot, Reddit, 40+ patterns)
Smart DOM cleaning — Strips nav, sidebars, footers, ads, modals, and action links
URL rewriting — Redirects SPAs to scraping-friendly versions (e.g.
reddit.com→old.reddit.com)Google → DuckDuckGo fallback — If Google shows a CAPTCHA, search falls back automatically
Persistent sessions — Keep tabs open for multi-step workflows (login, forms, navigation chains)
LRU cache — Avoids redundant fetches with configurable TTL
Concurrency control — Semaphore limits concurrent tabs to prevent resource exhaustion
Multi-profile support — Connect to multiple Chrome instances via named profiles
Troubleshooting
"Cannot connect to Chrome"
Chrome must be running with --remote-debugging-port=9222, or set CHROME_HEADLESS=true for auto-launch.
"Port 9222 already in use" Another Chrome instance is using CDP. Close it or use a different port:
./scripts/launch-chrome.sh 9333Then set CDP_URL=http://localhost:9333.
"Page timeout"
Increase the timeout: "DEFAULT_TIMEOUT": "60000"
"Empty results from web_search"
Google may show a CAPTCHA. Switch to DuckDuckGo: "SEARCH_ENGINE": "duckduckgo"
"Cloudflare challenge page"
The server auto-waits up to 15s for Cloudflare challenges. If it needs manual verification, use open_tab to create a persistent session, solve it in Chrome, then use the tab_id with other tools.
"MCP error -32000: Connection closed" This can have two causes:
Chrome is not running with CDP enabled — If you're not using
CHROME_HEADLESS=true, make sure Chrome is launched with--remote-debugging-port=9222before starting the server. Verify with:curl http://localhost:9222/json/versionIf this returns an error, Chrome is not listening. See Launch Chrome with CDP.
Corrupted npx cache — If you see
TypeError: Comparator is not a constructorin the logs, the npx cache is corrupted. Clear it and retry:rm -rf ~/.npm/_npx/* # The next npx -y @wgarrido/mcp-browser call will re-download cleanly
Development
git clone https://github.com/wgarrido/mcp-browser.git
cd mcp-browser
npm install
npm run dev # Run with hot reload
npm run build # Build for productionRequirements
Node.js 18+
Google Chrome or Chromium
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceAn MCP server that provides AI assistants with full control over a real browser session via a Chrome extension, supporting 36 tools for navigation, data extraction, and DOM manipulation. It bypasses bot detection by utilizing the user's active browser session, including cookies, authentication tokens, and installed extensions.Last updated202MIT
- Alicense-quality-maintenanceAn extension-based MCP server that enables AI assistants to control your existing Chrome browser, leveraging your active login states and settings for automation. It provides over 20 tools for tasks like semantic tab search, screen capture, network monitoring, and direct element interaction.Last updated
- AlicenseBqualityBmaintenanceAn MCP server that provides AI models with full browser automation capabilities through Chrome. It enables navigation, interaction, screenshots, and complete DevTools access by bridging AI clients with a companion Chrome extension.Last updated99322Apache 2.0
- AlicenseBqualityCmaintenanceBrowser MCP server that connects to your existing browser, preserving sessions, passwords, and extensions, enabling AI agents to interact with web pages without bot detection.Last updated31201MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/wgarrido/mcp-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server