real-browser-mcp-server
A production-ready MCP server for AI agents to control a stealth-enabled real browser for automation, testing, scraping/extraction, and human-like web workflows.
Initialize/close Patchright Chromium sessions with headless/proxy/viewport/video/fingerprint spoofing/WebRTC leak protection/ad blocking.
Navigate URLs and manage tabs, with retries, smart waits, and Cloudflare-style challenge waiting/assist.
Perform natural human-like clicks, drag-and-drop, typing, keyboard input, smooth scrolling, and iframe-targeted interactions.
Capture screenshots and run multi-step
see_pageworkflows (click/type/scroll/wait/extract/see/drag/hover/idle) without repeated captures.Extract page content as HTML/text/Markdown/raw HTTP/elements; extract structured data, regex/JSON/meta/links/API data.
Record/inspect/mock/block network activity, export HAR, trace redirects, analyze DOM/tech/performance/SEO.
Manage cookies/localStorage/session state, IndexedDB, service workers; save/load/encrypt sessions.
Execute custom JavaScript or replay authenticated HTTP fetches in page context.
Extract/control media (HLS/DASH/MP4/audio), manage iframes/player APIs, batch-extract URLs.
Assist with forms and embedded challenge widgets on authorized/test pages via
solve_captcha.Run long tasks asynchronously and poll/cancel via
async_job.Support storage/network/vision/automation workflows over STDIO for MCP-compatible AI IDEs.
Assists with Cloudflare Turnstile challenges on pages the user is authorized to access, enabling automated handling of bot-check prompts.
Integrates Ghostery's ad and tracker blocking engine to block ads and trackers during browsing, reducing distractions and improving page load times.
Click on "Deploy 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., "@real-browser-mcp-server Open https://news.ycombinator.com and summarize the top 3 Hacker News stories"
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.
π¦ Real Browser MCP
A production-ready Model Context Protocol (MCP) server that equips AI agents with a reliable, controlled web browser for automation and testing. Built on Patchright (a hardened Playwright fork) and integrated with Ghostery Adblocker, Ghost Cursor (natural mouse dynamics), and an automation assistant for Cloudflare Turnstile challenges.
This server is 100% compatible with all major AI IDEs (Cursor, VS Code, Cline, Roo Code, Windsurf, PearAI, OpenCode, Kilo Code, and Claude Desktop) using standard STDIO communication.
π See POLICY.md for acceptable use guidelines. This tool is intended for QA, testing, accessibility automation, and authorized research.
βοΈ Installation & Setup
Since this project is published on NPM, you can run it either globally via npx / npm, or locally by building from source.
β‘ Quick Start (Using npx)
Add the following to your MCP Configuration file (e.g. cline_mcp_settings.json, claude_desktop_config.json, or Cursor):
{
"mcpServers": {
"real-browser": {
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"]
}
}
}π» Local Run (Direct Source / Pre-built)
If running directly from the local repository build:
{
"mcpServers": {
"real_browser_mcp_server": {
"command": "node",
"args": [
"E:/Github-Software/Real-Browser-Mcp/dist/src/index.js"
],
"env": {
"AI_HEALING": "true",
"HEADLESS": "false"
}
}
}
}π Global Installation
Install it globally on your system. The hardened browser (Patchright Chromium) is downloaded automatically during install β no extra steps needed:
# One command: installs the server AND auto-downloads Patchright Chromium
npm install -g real-browser-mcp-server
# Run the MCP server
real-browser-mcp mcpThepostinstall step automatically runs patchright install chromium, which detects your OS and CPU architecture (Windows / Linux / macOS Γ x64 / arm64 / arm) and fetches the correct binary. If auto-download is skipped (e.g. offline), run it manually:
npx patchright install chromiumSet PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 before npm install to skip the download (e.g. in CI that only builds).
π οΈ Local Development & Build (Git Clone)
If you want to clone the repository and run it locally, follow these exact steps:
# 1. Clone the repository
git clone https://github.com/codeiva11/Real-Browser-Mcp.git
# 2. Navigate to the project directory
cd Real-Browser-Mcp
# 3. Install dependencies (Patchright Chromium is auto-downloaded via postinstall)
npm install
# 4. Build the TypeScript files
npm run build
# 5. Start the MCP server
npm run mcpWhy does npm run build not build the entire project alone?
npm run build only compiles the TypeScript code into JavaScript (dist/). However, the hardened browser engine (patchright) requires the browser binaries, which are now fetched automatically by the postinstall hook (npx patchright install chromium). If you skipped it, run that command manually. Without Chromium, the server will crash trying to find it.
π³ Run via Docker (Recommended for Servers)
We automatically build and publish a production-ready Docker image to GitHub Container Registry (GHCR).
# Pull the latest image
docker pull ghcr.io/codeiva11/real-browser-mcp:latest
# Run the MCP Server (Interactive stdio mode for AI IDEs)
docker run -i --rm ghcr.io/codeiva11/real-browser-mcp:latest(Note: When running via Docker, it automatically runs in headless mode.)
Related MCP server: cloakbrowser-mcp
π Key Automation & Reliability Features
Reliable Browser Engine: Powered by Patchright Chromium, a hardened Playwright fork that reduces false-positives in automation environments (does not expose automation indicators or Webdriver/BiDi flags).
Integrated Ad & Tracker Blocker: Utilizes
@ghostery/adblocker-playwrightwith in-memory prebuilt filter lists (no disk cache), blocking ads and speed-bumps.Natural Interactions: Integrates ghost-cursor-patchright (BΓ©zier curves) to simulate natural mouse movements, velocity, and hover-before-click behaviors. Features Physics-based Smooth Scrolling (
page.realScroll) utilizing real mouse-wheel events and Cubic Ease-Out deceleration to mimic manual trackpad/mouse flicks for reliable interaction with dynamic UIs.Human-like Browsing:
see_pagelets the AI agent plan an entire multi-step task from one view and execute all actions in a single continuous flow via its unifiedstepsworkflow β no screenshot pause after every micro-step, just like a human. (The previously separatebrowse_tasktool is now merged intosee_pageto avoid agent confusion.)Rich Single-Shot Vision:
see_pagenow returns a screenshot plus full page text, all interactive elements with selectors, and an iframe inventory in one call β eliminating the need to re-capture the same page repeatedly.Turnstile Assist: Detects and assists with Cloudflare Turnstile challenges on pages you are authorized to access.
Anti-Race Condition Guards: Robust state-guards ensure popup blockers, shims, and adblockers attach exactly once per page, preventing context destruction.
TypeScript: Entire codebase is written in TypeScript with
strict: truefor type safety and maintainability.
π οΈ AI IDE Compatibility & Configuration Guide
Since this server adheres strictly to the official Model Context Protocol (MCP) specification over STDIO (with all informational logging directed safely to stderr to avoid JSON-RPC corruption), it is fully compatible with every modern AI editor.
1. Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"real-browser-mcp-server": {
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"],
"env": {
"HEADLESS": "false",
"AI_HEALING": "true"
}
}
}
}2. Cursor IDE
Open Cursor Settings β Features β MCP.
Click + Add New MCP Server.
Configure as follows:
Name:
real-browser-mcp-serverType:
commandCommand:
npx -y real-browser-mcp-server@latest mcp
Click Save.
3. Cline / Roo Code (VS Code)
Add the server entry to your global MCP settings file (typically found at %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json):
{
"mcpServers": {
"real-browser-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"],
"env": {
"HEADLESS": "false",
"AI_HEALING": "true"
},
"disabled": false,
"autoApprove": []
}
}
}4. Kilo Code (VS Code)
Add the server entry to your ~/.config/kilo/kilo.jsonc (global) or project kilo.jsonc:
Option A: Local Clone (Recommended for development)
{
"mcp": {
"real_browser_mcp_server": {
"type": "local",
"command": [
"node",
"E:/Github-Software/Real-Browser-Mcp/dist/src/index.js"
],
"environment": {
"HEADLESS": "false",
"AI_HEALING": "true"
},
"enabled": true
}
}
}Option B: Global via npx (Windows)
On Windows, call through cmd.exe /c npx so the batch script resolves cleanly:
{
"mcp": {
"real_browser_mcp_server": {
"type": "local",
"command": ["cmd.exe", "/c", "npx", "-y", "real-browser-mcp-server@latest", "mcp"],
"environment": {
"HEADLESS": "false",
"AI_HEALING": "true"
},
"enabled": true
}
}
}Option C: Global via npx (macOS / Linux)
{
"mcp": {
"real_browser_mcp_server": {
"type": "local",
"command": ["npx", "-y", "real-browser-mcp-server@latest", "mcp"],
"environment": {
"HEADLESS": "false",
"AI_HEALING": "true"
},
"enabled": true
}
}
}5. Windsurf IDE
Configure the server in your ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"real-browser-mcp-server": {
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"],
"env": {
"HEADLESS": "false",
"AI_HEALING": "true"
}
}
}
}6. PearAI
Add the configuration via PearAI Settings β MCP Servers using the standard command setup:
{
"mcpServers": {
"real-browser-mcp-server": {
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"],
"env": { "HEADLESS": "false" }
}
}
}7. OpenCode AI IDE
Configure the server in your opencode.jsonc or standard MCP settings configuration:
{
"mcpServers": {
"real-browser-mcp-server": {
"command": "npx",
"args": ["-y", "real-browser-mcp-server@latest", "mcp"],
"env": {
"HEADLESS": "false",
"AI_HEALING": "true"
}
}
}
}βοΈ Environment Variables
You can configure browser_init defaults directly from the MCP client env block, without passing parameters on every call. Explicit parameters passed to browser_init always override these environment variables.
Variable | Values | Default | Controls |
|
| auto (CI + no-display detection) | Run browser headless (no visible window) |
|
|
| Auto-repair broken CSS selectors in |
|
|
| Block ads and trackers |
|
|
| Assist with Cloudflare Turnstile challenges |
|
| off | Allow |
|
| auto (CI/root detection) | Force-disable or force-enable the Chromium OS sandbox |
| integer |
| Hard watchdog budget per tool call (avoids client "Request timed out") |
|
|
| Structured JSON log verbosity (stdout stays clean for MCP) |
|
| off | Emit |
| path |
| Where |
| UA string or comma-separated list | auto (built from Chromium version) | Override/rotate the browser User-Agent. A list ( |
|
| off | Opt-in for |
Values are case-insensitive. Priority for each option is: explicit browser_init param > environment variable > built-in default.
β οΈ Tool-result content safety: some AI providers (e.g. Anthropic) run safety classifiers on tool results, not just tool definitions. Tool payloads in this server are written content-neutral on purpose β do not patch instructions into tool results telling the model to "read the verification image and type the answer", or you will get
[400]: content-blocked.
π‘οΈ Input caps (hard limits):
press_key.countβ€ 100,click.clickCountβ€ 50,see_page.stepsβ€ 100,media_extractor batch_extract.urlsβ€ 50,execute_js.codeβ€ 200k chars. Values beyond these are clamped with a warning β a runaway agent can never lock the server for hours.
π Complete MCP Tool Reference (21 Tools)
The server exposes 18 tools categorized into functional units:
π Browser & Session
Tool Name | Description | Key Parameters |
| Initialize Patchright browser with ad blocker, AI healing, embedded-widget assist, WebGL/hardware spoofing, WebRTC leak protection, and fingerprint profiles. |
|
| Close browser with cleanup. |
|
π§ Navigation & Tab Management
Tool Name | Description | Key Parameters |
| Navigate to URL or manage browser tabs ( |
|
π Natural Interaction
Tool Name | Description | Key Parameters |
| Natural click or drag-and-drop ( |
|
| Type text with natural speed variation, smart clearing, and iframe support. |
|
| Form filling and embedded widget completion for pages you are testing (JS widgets, text/image input recognition). Externally hosted services are not supported. |
|
| Natural scrolling with lazy-load detection, including inside specific iframes. |
|
| Press keyboard keys with modifier key support (Ctrl/Shift/Alt). |
|
| Run custom JavaScript inside a page or iframe. Also supports |
|
π Extraction & Decoding
Tool Name | Description | Key Parameters |
| Retrieve page content in |
|
| Advanced extractor: regex, JSON, meta, structured, auto, API discovery, string conversion, links. |
|
| Extract HLS/DASH/MP4, control player APIs, convert string formats. |
|
π‘ Network & Utilities
Tool Name | Description | Key Parameters |
| Trace full redirect chains (HTTP 301/302, JS, meta refresh). |
|
| Capture requests, responses, intercepted APIs, GraphQL, WebSockets, media URLs, block unwanted resource URLs (3x faster loads), and mock API routes. Export HAR. |
|
| DOM structure, scripts, page components, tech stack, SEO, web performance metrics, console errors, and recommendations. |
|
| Smart delay for selectors, navigation events, or fixed timeout. |
|
| Inspect & manage client-side storage, cookies, and session state persistence ( |
|
| Capture a snapshot of the current page: screenshot image with optional full-page text, interactive element map, iframe inventory, and visual baseline save/compare for regression testing. |
|
ποΈ AI Vision & Human-like Workflow
Tool Name | Description | Key Parameters |
| Unified vision + human-like task runner: screenshot + page text + all interactive elements + iframe inventory in ONE call. Optionally pass a |
|
Human-like Workflow Pattern:
OLD (repetitive): see_page β click β see_page β type β see_page β click ... NEW (human-like): see_page (once, fullPage) β steps:[click, type, scroll, extract] β see_page (only on page change)
[!IMPORTANT]
The verification-widget tool is namedsolve_captcha and its
captchaSelector parameter targets the input image or widget element.
It only assists with widgets on pages you are testing; externally hosted
services (reCAPTCHA/hCaptcha) are not supported β descriptions stay neutral.
If the current model cannot consume images, see_page still returns a full text + JSON summary, and solve_captcha can return text-only fallback guidance when called with preferTextFallback: true.
π‘οΈ Stealth & Anti-Bot Detection Bypass
With the right setup, Real-Browser-MCP is considered undetectable. Built on a hardened Patchright Chromium core with dynamic client hints, third-party storage partitioning preservation, Ghostery adblocking, and Ghost Cursor human dynamics, the core engine passes:
Cloudflare (Turnstile, WAF, Managed Challenge) β
Datadome β
Akamai β
Kasada β
Shape / F5 β
Bet365 β
Rebrowser Bot Detector (Storage Partitioning & CDP Clean) β
Pixelscan (Bot Check & Fingerprint Clean) β
CreepJS β
Sannysoft β
Incolumitas β
IPHey β
Browserscan β
Brotector β
π Reliability & Test Coverage
Our test suites cover several real-world pages. Results depend on environment, third-party site changes, and network conditions.
Target Test Platform | Detection Type | Status |
Sannysoft WebDriver | WebDriver/navigator properties check | β Pass |
Cloudflare WAF | Web Application Firewall challenge | β Pass |
Cloudflare Turnstile | CAPTCHA widget assist | β Pass |
Rebrowser Bot Detector | Advanced CDP leak & storage partitioning check | β Pass |
reCAPTCHA v3 Score | Google Trust Score test (>= 0.9) | β Pass |
Pixelscan Fingerprint | Canvas/WebGL fingerprint check | β Pass (No Masking Detected) |
Pixelscan Bot Check | Bot automation framework detection | β Pass |
π§ͺ Local Test Suite (100% Pass in CJS & ESM)
Every check in the live-site suite is strict: a failing check fails the run. Nothing is ever skipped.
Test Suite | Test Case | Status |
CJS + ESM | Rebrowser Bot Detector | β Passed |
CJS + ESM | Sannysoft WebDriver Detector | β Passed |
CJS + ESM | Cloudflare WAF | β Passed |
CJS + ESM | Cloudflare Turnstile | β Passed |
CJS + ESM | Recaptcha V3 Score (>= 0.9) | β Passed |
CJS + ESM | Pixelscan Fingerprint Check | β Passed |
CJS + ESM | Pixelscan Bot Check | β Passed |
π» Programmatic Usage (Node.js SDK)
You can also use the core browser connector directly in your custom Node.js scripts.
CommonJS
const { connect } = require('real-browser-mcp-server');
(async () => {
const { browser, page } = await connect({
headless: false,
turnstile: true
});
await page.goto('https://example.com');
// Natural mouse movement and click
await page.realClick('#my-button');
// Natural smooth scrolling (60FPS Cubic Ease-Out physics)
await page.realScroll(400); // scrolls down 400px smoothly
await browser.close();
})();ESM (ECMAScript Modules)
import { connect } from 'real-browser-mcp-server';
const { browser, page } = await connect({
headless: false,
turnstile: true
});
await page.goto('https://example.com');
await page.realClick('#my-button');
// Natural smooth scrolling (60FPS Cubic Ease-Out physics)
await page.realScroll(400); // scrolls down 400px smoothly
await browser.close();β¨οΈ NPM Script Commands
Run these scripts from the project root directory:
Command | Description |
| Start the MCP server using standard STDIO transport. |
| Build and start the MCP server. |
| Start the MCP server. |
| Start the MCP server with verbose tool listing on |
| List all 21 registered MCP tools with categories. |
| Compile TypeScript into the |
| Build, then run the live anti-bot test suite ( |
| Run CommonJS test scripts. |
| Run ECMAScript Module test scripts. |
Every check in the live-site suite is strict: a failing check (e.g. reCAPTCHA v3 score below 0.9) fails the run. Nothing is ever skipped.
ποΈ Architecture Notes
Design
MCP-first: every tool is defined in
src/shared/tools.tsand dispatched through a singleexecuteTool()router.Handler modules:
src/mcp/handlers/contains focused files βnetwork-recorder.ts,network-extractors.ts,vision-captcha.ts,vision-see-page.ts,media-handlers.tsβ with thin wrappers (network.ts,vision.ts,index.ts) for the tool-facing API.Browser state: a single global
stateobject insrc/mcp/handlers/state.tsholds the current browser/page instance and network recorder data.requireBrowser()/getState()provide typed accessors for handlers.Human-like workflow: the unified
see_pagesteps[]workflow orchestrates the existingclick/type/scroll/press_key/wait/extracthandlers in a continuous sequence β no extra LLM or API key required. The AI agent (LLM client) plans the steps;see_pageexecutes them without pausing.No project pollution: runtime caches (User-Agent detection, saved sessions) are written to the OS temp directory (
os.tmpdir()/real-browser-mcp), never inside the project or working directory. The server does not create a.cachefolder in your project tree.execute_jscaveat: theexecute_jstool runs arbitrary JavaScript inside the controlled browser page context (a sandboxed browser tab). Only invoke it with trusted input.
Known Limitations
Single-session model: the MCP server manages one browser instance at a time. Concurrent multi-session isolation is not supported.
reCAPTCHA / hCaptcha: detected honestly but not solved automatically. Use a third-party service for these.
Vision tools require image-capable models:
see_pageandsolve_captchareturn images. Non-vision models get a full text + JSON summary fallback.TypeScript strict mode: the project compiles with
strict: trueacross all source files, andnoEmitOnError: truemakes a type error fail the build outright (tsc --noEmitpasses cleanly).
π‘οΈ License
This project is licensed under the ISC License. Created and maintained by codeiva11.
Available Tools
19 toolsasync_jobA
Poll or cancel background jobs started with async:true on media_extractor batch_extract, see_page steps, or execute_js. Read-only except cancel.
Inputs: jobId, action.
browser_closeA
Close the browser session and release all browser resources.
Inputs: force.
browser_initB
Initialize a browser session with configurable options: headless mode, proxy, viewport, video recording, resource filtering, biometric anti-detection hardware spoofing (WebGL, Canvas, AudioContext), and WebRTC leak protection. Automatically recovers stale sessions.
Inputs: proxy, headless, aiHealing, fingerprint, +6 more.
clickA
Click or drag a page element by CSS selector or annotation ID. Supports drag-and-drop / slider manipulation via dragTo, iframe context, hover before click, video player API, and automatic retry with fallback selectors.
Inputs: delay, aiHeal, dragTo, iframe, +17 more.
deep_analysisA
Inspect the current page in depth: DOM structure, scripts, stylesheets, accessibility, performance metrics, SEO tags, response headers, loaded technologies, and content-loading strategy recommendations.
Inputs: detailed, aiInsights, detectAccessControls.
execute_jsA
Execute custom JavaScript in the page context with async support, return value capture, and iframe targeting. Also supports action="fetch" to replay HTTP requests with the page session (cookies/auth inherited, 30s timeout, structured status/headers/body output).
Inputs: url, body, code, async, +8 more.
extract_dataB
Extract structured data from the current page in multiple modes: regex, json, meta, structured, auto, apiDiscovery, parse (string conversion), transform (data format conversion), or links (all links including nested iframes).
Inputs: type, flags, types, source, +10 more.
get_contentB
Get page content in multiple formats: html, text, markdown, rawHttp, or elements. Extracts text, attributes, or bounding box coordinates. Can save directly to a file.
Inputs: text, xpath, format, saveAs, +7 more.
media_extractorB
Extract and control media from the current page. Supports 6 actions: extract (find video/audio/HLS/DASH/download URLs including nested iframes), list_iframes, switch_iframe, player_control (play/pause/seek/sources via player API), decode_url (inspect converted string and token formats), batch_extract.
Inputs: deep, urls, async, index, +11 more.
network_recorderB
Record, inspect, and control network activity. Supports 14 actions: start, stop, get, clear, get_media, get_navigations, get_api_calls, get_intercepted_apis, get_websockets, get_graphql, export_har, block_urls (block images/trackers to boost speed 3x-5x), mock_route (intercept & mock API responses), clear_routes.
Inputs: mock, limit, action, filter, +4 more.
press_keyC
Press keyboard keys with configurable modifier keys, repeat count, and keystroke delay.
Inputs: key (required), count, modifiers, humanDelay.
random_scrollA
Scroll the page with configurable direction, amount, and automatic lazy-load triggering.
Inputs: amount, iframe, smooth, direction, +2 more.
redirect_tracerA
Trace the complete redirect chain of a URL. Tracks HTTP 301/302, JavaScript navigation (window.location, setTimeout), and meta refresh tags. Returns the full path with status codes and headers.
Inputs: url (required), timeout, followJS, decodeURLs, +3 more.
see_pageA
Capture a snapshot of the current page. Returns a screenshot image together with optional full-page text, an interactive element map (buttons, links, inputs with position and selector), and an iframe inventory β all in a single call.
Workflow: Call once with fullPage:true and annotate:true. From that snapshot, run all planned actions (click, type, scroll, wait, extract) as a steps array without re-capturing the page. Call see_page again only when the page genuinely changes (new navigation, modal, or dynamic content load).
Inputs: path, async, steps, format, +15 more.
solve_captchaB
Automate form completion and interactive widget verification on web pages. Supports JavaScript-based challenge widgets, image text transcription, and intelligent form field mapping for QA and automated browsing workflows.
Inputs: lang, type, iframe, submit, +15 more.
storage_inspectorA
Inspect and manage client-side storage & sessions. Supports 7 actions: cookies (get all current cookies), save_session (persist cookies & storage state to file), load_session (restore state from file without re-logging), clear_cookies, autosave (auto-save session on every navigation), indexeddb, service_workers.
Inputs: action, enabled, passphrase, sessionPath.
typeB
Type text into an input field with configurable keystroke delay, field clearing, and iframe support.
Inputs: text (required), clear, delay, aiHeal, +6 more.
waitB
Wait for a selector, navigation event, networkidle state, or a fixed timeout before continuing.
Inputs: type, value, timeout.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 19 tools
Core interaction tools (click, type, press_key, wait, navigate) are clearly distinct, but the read/extract cluster overlaps heavily: get_content, extract_data, see_page, and deep_analysis all retrieve page information, and an agent must read long descriptions to choose. Several tools (network_recorder, media_extractor, storage_inspector, extract_data) bundle many actions behind one name, adding internal selection ambiguity.
Most names are snake_case, but conventions are mixed: noun-first compounds (browser_init, browser_close), verb-first (get_content, execute_js), and bare verbs (wait, navigate, click, type). Individually readable, yet there is no single predictable pattern to infer names.
19 tools is on the heavy side for a browser automation server, and the multi-action mega-tools effectively expand the surface well beyond 19. Most tools are justified by real capabilities, but some inspection tools could be folded into see_page/extract_data.
The lifecycle is well covered: init/close, navigation and tabs, interaction, scrolling, waiting, content/media/network/storage extraction, captcha, redirect tracing, and async jobs. Minor gaps exist for dropdown selection, file upload, and dialog/alert handling, but agents can work around these with execute_js.
Maintenance
Related MCP Connectors
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
Cloud browsers for AI agents: saved logins, residential IPs, live human takeover, 57 browser tools.
Undetectable cloud browser sessions for AI agents and scrapers. Navigate, extract, click, captcha.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Related MCP Servers
- AlicenseAqualityDmaintenanceStealth browser automation for AI agents, using source-patched Chromium to bypass bot detection systems like Cloudflare, reCAPTCHA, and FingerprintJS.28Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to run Playwright-compatible browser automation against Chromium with persistent profiles, proxy matching, humanized interactions, and npm, Docker, stdio, or Streamable HTTP deployment.431 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to drive a Chromium-based browser for web research, testing, and automation with Playwright-compatible tools, persistent profiles, proxy matching, extension loading, and humanized input across local or containerized deployments.431 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to perform Playwright-compatible browser automation through unchanged upstream tools, using a Chromium runtime with persistent profiles, proxy matching, humanized interactions, and Docker or stdio/Streamable HTTP deployment options.431 npmMIT