Browser MCP Server
Browser MCP Server
Un servidor MCP (Model Context Protocol) que ofrece a los agentes de IA un navegador real, consciente de la detección anti-bot, mediante Zyte API — navegar páginas, hacer clic/escribir/desplazarse, tomar capturas de pantalla y extraer datos estructurados, con rotación automática de proxy/IP y evitación de baneos.
Construido con NestJS y @nestjs-mcp/server, que se comunica con el endpoint /extract de Zyte directamente por HTTP. El transporte es exclusivamente HTTP transmitible, servido sin estado en un único endpoint /mcp.
Setup
Copia
.env.examplea.envy rellena los valores:Variable
Obligatoria
Descripción
ZYTE_API_KEYsí
ZYTE_API_BASE_URLno
Sustituye la URL base de Zyte API (por defecto
https://api.zyte.com/v1)PORTno
Puerto HTTP (por defecto
3000)BROWSER_TIMEOUT_MSno
Tiempo de espera por petición para las llamadas a Zyte (por defecto
30000)BROWSER_MAX_RETRIESno
Reintentos para respuestas de límite de peticiones (429/503) y bloqueo temporal (520), con retroceso exponencial (por defecto
2)Instala las dependencias y arranca el servidor:
pnpm install pnpm run start:devEl endpoint MCP se sirve en
http://localhost:3000/mcp.
Related MCP server: Stealth Browser MCP
Tools
Herramienta | Devuelve |
| Abre una URL, ejecuta opcionalmente acciones (hacer clic/escribir/seleccionar/desplazarse/esperar), devuelve un |
| Captura de pantalla de una página, opcionalmente después de ejecutar acciones |
| JSON estructurado extraído mediante IA que coincide con el JSON Schema que proporciones |
| Resultados estructurados de búsqueda web (title/url/snippet) a través de la Search API de Zyte — úsalos para encontrar páginas y abrirlas después con |
browser_browse, browser_screenshot y browser_extract aceptan un sessionId opcional (devuelto por una llamada anterior) para reutilizar la misma dirección IP y el conjunto de cookies en múltiples llamadas a las herramientas — útil para mantener la sesión iniciada o mantener una IP estable durante una tarea de varios pasos. Ten en cuenta que, según la documentación de sesiones de Zyte, esto no conserva el estado real del navegador/pestaña (entrada de formularios en la página, posición de desplazamiento, modales abiertos, etc.) entre llamadas — cada llamada carga una página nueva con la misma identidad de red y las mismas cookies.
actions es una secuencia de pasos que se ejecutan antes de capturar el resultado: click, type, select, hover, keyPress, scrollBottom, scrollTo, waitForSelector, waitForTimeout, waitForNavigation, goto, evaluate. Las acciones que apuntan a un elemento toman un selector: { type: "css" | "xpath", value: string }.
browser_search envía a Zyte al endpoint separado /v1/search (no al /v1/extract) y acepta un domain (un motor de búsqueda compatible, p. ej. "google.com"), una query y, opcionalmente, maxResults (10-100)/geolocation/locale.
Las respuestas de límite de peticiones (429/503) y de bloqueo temporal (520) se reintentan automáticamente con retroceso exponencial, hasta BROWSER_MAX_RETRIES veces, según la guía de manejo de errores de Zyte. El resto de respuestas de error (solicitud no válida, bloqueo permanente, cuenta suspendida) aparecen de inmediato, e incluyen en el mensaje el type del error de Zyte cuando está disponible.
Conexión de un cliente
Ejemplo de configuración de un cliente MCP remoto (p. ej., Claude Desktop / Claude Code) que apunta a una instancia en ejecución:
{
"mcpServers": {
"browser": {
"url": "http://localhost:3000/mcp"
}
}
}Testing
pnpm test # unit tests (service + resolver, global fetch mocked)
pnpm run lint # eslint
pnpm run build # type-check + compileLas pruebas unitarias simulan la función global fetch utilizada para llamar a Zyte. Para verificar de extremo a extremo contra la API real, ejecuta el servidor con una ZYTE_API_KEY real y usa pnpm dlx @modelcontextprotocol/inspector http://localhost:3000/mcp, o curl, para ejecutar initialize → tools/list → tools/call.
This server cannot be deployed
Maintenance
Related MCP Connectors
Let your AI agent operate any website through a real, logged-in browser session.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with web browsers using natural language, featuring automated browsing, form filling, vision-based element detection, and structured JSON responses for systematic browser control.62MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to perform undetectable browser automation that bypasses Cloudflare, antibots, and social media blocks. Provides 105 tools for element extraction, network debugging, and real-world web scraping with a 98.7% success rate on protected sites.3,299MIT
- AlicenseAqualityCmaintenanceEnables AI agents to scrape any website by providing tools for JavaScript rendering, antibot bypass, and automatic captcha solving. It supports synchronous, asynchronous, and batch scraping operations with built-in proxy rotation.5207 npm31 PyPIMIT
- AlicenseAqualityCmaintenanceEnables AI agents to fully control a browser for web automation, including navigation, clicking, typing, scrolling, screenshots, and DOM inspection, with session persistence and anti-bot bypass.4012 npmMIT