Skip to main content
Glama
feedmepos

Browser MCP Server

by feedmepos

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

  1. Copia .env.example a .env y rellena los valores:

    Variable

    Obligatoria

    Descripción

    ZYTE_API_KEY

    Tu clave de Zyte API

    ZYTE_API_BASE_URL

    no

    Sustituye la URL base de Zyte API (por defecto https://api.zyte.com/v1)

    PORT

    no

    Puerto HTTP (por defecto 3000)

    BROWSER_TIMEOUT_MS

    no

    Tiempo de espera por petición para las llamadas a Zyte (por defecto 30000)

    BROWSER_MAX_RETRIES

    no

    Reintentos para respuestas de límite de peticiones (429/503) y bloqueo temporal (520), con retroceso exponencial (por defecto 2)

  2. Instala las dependencias y arranca el servidor:

    pnpm install
    pnpm run start:dev

    El endpoint MCP se sirve en http://localhost:3000/mcp.

Related MCP server: Stealth Browser MCP

Tools

Herramienta

Devuelve

browser_browse

Abre una URL, ejecuta opcionalmente acciones (hacer clic/escribir/seleccionar/desplazarse/esperar), devuelve un sessionId, el HTML renderizado y, opcionalmente, una captura de pantalla

browser_screenshot

Captura de pantalla de una página, opcionalmente después de ejecutar acciones

browser_extract

JSON estructurado extraído mediante IA que coincide con el JSON Schema que proporciones

browser_search

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_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 + compile

Las 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 initializetools/listtools/call.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    61
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    1,589
    MIT

View all related MCP servers

Related MCP Connectors

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

  • Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.

  • Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…

View all MCP Connectors

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/feedmepos/browser-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server