Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
Descripción del creador (original en inglés)
Stealthy, LLM-drivable browser engine — a Python library + 85-tool MCP server on stealth Chromium.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"eyebrowse": {
"command": "uvx",
"args": [
"eyebrowse"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add eyebrowse -- uvx eyebrowsePégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"eyebrowse": {
"command": "uvx",
"args": [
"eyebrowse"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"eyebrowse": {
"type": "stdio",
"command": "uvx",
"args": [
"eyebrowse"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub Evil-Bane, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.3.10) llegó al registro hace 5 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Browser Use, Chrome DevTools MCP, MCP Server Browser
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
A Python library *and* an MCP server for driving a real, hard-to-detect browser, so legitimate automation isn't false-flagged or IP-banned by Cloudflare, DataDome, Akamai, or PerimeterX. Built on CloakBrowser — a stealth Chromium (Chrome/146) that's a Playwright drop-in — so EyeBrowse gets the full Chrome DevTools Protocol: trusted cursorless clicks, deep network inspection, MHTML, PDF, and native video.
▶ Full-quality MP4: docs/demo.mp4 — an AI agent drives EyeBrowse over MCP: clears a Cloudflare check, then reads real docs (asyncio · httpx · MDN).
geoip + humanize on out of the box, novel fingerprint per launch); navigator.webdriver masked; viewport auto-sized to the spoofed screen. No puppeteer-extra band-aids — the anti-detection is *compiled into the browser*.click/type/hover), not by brittle CSS or raw pixels. Cross-origin iframes, shadow DOM, popups — handled.Input.dispatchMouseEvent), raw Network/Performance/Emulation access, MHTML snapshots, PDF export, and native video — all reachable as tools.browser_* tools**) for Claude Code and any MCP client.session.page / .context / .browser for anything it doesn't wrap.Scope. EyeBrowse is a low-level browser *engine* — it holds no workflow logic.
Consumers decide *what* to do; the engine provides *what's possible*.
Quickstart · Install · Features · Compare · Library · MCP · Proxy & identity · Extraction · Recording · How it works · Caveats · Tools · License
pip install eyebrowse
import asyncio
from eyebrowse import EyeBrowse
async def main(): eb = EyeBrowse() # stealth defaults: geoip · humanize async with eb.session() as s: await s.navigate("https://example.com") print(await s.snapshot()) # ARIA tree with [ref=...] handles await s.click("e6") # act on a ref from the snapshot await eb.aclose()
asyncio.run(main())
…or wire it into Claude Code (or any MCP client) — see Use over MCP.
From PyPI
pip install eyebrowse # or: uv pip install eyebrowse
pip install "eyebrowse[extract]" # optional: + Crawl4AI markdown extraction (heavier)
From source (development)
git clone https://github.com/Evil-Bane/eyebrowse && cd eyebrowse
uv sync # core engine (add --extra extract for Crawl4AI) cp .env.example .env # only if you use a proxy / captcha keys
Python 3.12 (pinned <3.13). Engine: cloakbrowser>=0.3 (stealth Chromium, Chrome/146), on playwright 1.60 and mcp 1.27.
| 🥷 Stealth | CloakBrowser's patched-Chromium fingerprint spoofing (novel --fingerprint per launch); geoip + humanize by default; webdriver masked; viewport matched to the spoofed screen. |
| 🤖 LLM interaction | aria_snapshot(mode="ai") → ARIA tree + [ref] handles; click / type / hover / select / drag / file-upload / dialogs / keyboard; coordinate mouse too. |
| ⚡ CDP | trusted cursorless click by ref, raw CDP (Network / Performance / Emulation), MHTML capture, PDF export. |
| 🪟 Frames & DOM | cross-origin iframe routing by ref, shadow-DOM piercing, popup/new-tab switching, evaluate inside any frame. |
| 🗂 Multi-session | independent stealth sessions, each with its own context / identity / proxy. |
| 🌐 Network | inspect requests/responses (incl. XHR/fetch bodies & WebSocket frames), block URLs, mock responses, go offline, full HAR export. |
| 💾 State | cookies, localStorage & sessionStorage (CRUD), storage_state save/reload. |
| 🪪 Identity rotation | fresh fingerprint + isolated profile + paired proxy; pluggable residential ProxyProvider. |
| 🧩 Captcha | pluggable API-mode solvers (CapSolver / 2Captcha / CapMonster / NextCaptcha) + TOTP — no browser extension. |
| 📄 Extraction | Crawl4AI raw: feed → clean, token-efficient markdown (no LLM, no API keys). |
| 🎥 Capture | screenshots, Playwright tracing, and native video (.webm). |
| ✅ Verify & debug | assertions, element highlighting, locator generation, geolocation/header emulation. |
Full per-tool reference: [docs/TOOLS.md](docs/TOOLS.md) (85 tools across 18 groups).
| EyeBrowse | Playwright MCP | browser-use | playwright-stealth | |
|---|---|---|---|---|
| Anti-detection compiled into the browser | ✅ | ❌ | ❌ | ⚠️ JS patches |
| LLM-native ARIA `[ref]` interaction model | ✅ | ✅ | ✅ | ❌ |
| Ships an MCP server | ✅ (85 tools) | ✅ | ⚠️ partial | ❌ |
| One codebase: Python **library *and* MCP** | ✅ | MCP-only | lib-only | lib-only |
| Full CDP (trusted clicks · network · MHTML · PDF · video) | ✅ | ⚠️ partial | ❌ | ⚠️ partial |
| Captcha (API-mode) + TOTP | ✅ | ❌ | ❌ | ❌ |
| Proxy + identity rotation built in | ✅ | ❌ | ⚠️ partial | ❌ |
| Cross-origin iframes · shadow DOM · popups | ✅ | ✅ | ⚠️ partial | n/a |
Fair-use note: each project targets a different niche — this compares them on the axes EyeBrowse optimizes for (stealth + LLM-drivable + one library/MCP codebase), not as an overall ranking.
import asyncio
from eyebrowse import EyeBrowse
async def main(): eb = EyeBrowse() # stealth defaults try: async with eb.session() as s: # a stealth session (auto-closed) await s.navigate("https://example.com") print(await s.snapshot()) # ARIA tree with [ref=...] handles await s.click("e6") # act on a ref await s.type("e8", "hello", submit=True) png = await s.screenshot(full_page=True) title = await s.page.title() # full Playwright power when you need it finally: await eb.aclose()
asyncio.run(main())
Run the included proof: uv run python examples/direct_usage.py.
EyeBrowse ships an MCP server (eyebrowse-mcp, FastMCP over stdio). Add it to any MCP client.
Claude Code (CLI):
claude mcp add eyebrowse -- eyebrowse-mcp
Any MCP client (JSON config):
{
"mcpServers": { "eyebrowse": { "command": "eyebrowse-mcp" } } }
Then drive the loop: browser_navigate(url) → read the snapshot → act by ref (browser_click / browser_type / …). A default session is auto-created, so most tools just work. Full list: [docs/TOOLS.md](docs/TOOLS.md).
Runs proxyless by default (geoip still aligns locale/timezone to your real IP). Add a proxy only when you want one:
await eb.new_session(proxy="http://user:pass@residential.example:8080")
await eb.rotate_identity(proxy="socks5://host:1080") # fresh fingerprint + paired IP await eb.new_session(no_proxy=True) # force proxyless
Set a default once via EYEBROWSE_PROXY_* in .env, eb.set_static_proxy(...), or a custom ProxyProvider for rotation. Over MCP: browser_new_session(proxy_url=…) / browser_new_identity(proxy_url=…) / browser_set_proxy(…).
reCAPTCHA v3 / reputation gates are score-based and key off IP + session reputation — a
fresh browser on a flagged IP fails regardless of stealth. Pair EyeBrowse with a clean
residential proxy.
eb.extract() (or browser_extract) hands the rendered HTML to Crawl4AI's raw: feed and returns clean, pruned markdown — no LLM is called and no LLM keys are ever read; the consuming agent does any structuring.
md = await eb.extract() # markdown string
res = await eb.extract(output_path="data/page.md") # → {"path": ..., "chars": ...}
Native video — Playwright records the whole session to a .webm, written on close. The path is known up-front; the file finalizes when the session closes:
s = await eb.new_session(record_video=True)
print(await s.video_path()) # path is known up-front; file finalizes on close await eb.close_session(s.id)
Over MCP: browser_new_session(record_video=True) → browser_video_path. Want a GIF for a README? Convert the .webm with ffmpeg (ffmpeg -i demo.webm demo.gif). The demo at the top was captured this way — see `examples/make_demo.py`.
CONSUMERS ENGINE (library: eyebrowse/)
Claude Code ──MCP──▶ mcp/ ──▶ EyeBrowse façade (public API) your code ─ import ──────────▶ ├─ BrowserEngine (CloakBrowser / stealth Chromium) any MCP client ├─ proxy / identity rotation (pluggable) ├─ captcha solvers (pluggable, A
Solo se muestra el principio; lee el resto en el repo