Skip to main content
Glama
feedmepos

Browser MCP Server

by feedmepos

Browser MCP Server

一个基于 Zyte API 的 MMath(型号上下文界面)服务器。 It provides AI agents with a real, anti-bot-aware browser — navigation, clicking/typing/soolling, and structured data extraction, along with automatic proxy/P rotation and bban avoidance.

Built on NestJS and @nestjs-mcp/server, and communicates with Zyte's /extract endpoint directly via HTTP. The transport protocol is streamed HTTP/HTT、list etc., served statelessly at a single /mcp endpoint.

Setup

  1. Copy .env.example to .env and fill in:

Variable

Required

Description

ZYTE_API_KEY

yes

Your Zyte API key

ZYTE_API_BASE_URL

no

Override the Zyte API base URL (default https://api.zyte.com/v1)

PORT

no

HTTP port (default 3000)

BROWSER_TIMEOUT_MS

no

Per-request timeout for calls to Zyte (default 30000)

BROWSER_MAX_RETRIES

no

Max retries for rate-limit (429/503) and temporary bans (520) responses, with exponential backoff (default 2)

2.app Install all dependencies and start the server:

pnpm install
pnpm run start:dev

The MCP endpoint is served at http://localhost:3000/mcp.

Related MCP server: Stealth Browser MCP

Tools

Tool

Returns

browser_browse

Opens a URL, optionally runs actions (click/typing/scroll/scroll/wait), returns a sessionId, rendered HTML, and optionally a e screenshot

browser_lot

Screenshot of a page, optional after running actions

browser_extract

AI-extracted structured JSON matching a JSON Schema you provide

browser_search

Structured web search results (title/url/snippet) via Zyte's Search API — useful to find pages, then open them with browser_browse

browser_browse, browser_creenshot, and browser_extract accept an optional sessionId (returned from a previous call) to reuse the same IP address and cookie jar across multiple tool calls — e.g., useful whenever you need to keep a login or a consistent IP across a multi-step task. Note that, per Zyte's session docs, this does not persist actual browser/tab state (in-page form input, scroll position, open modal, etc.) between calls — each call loads a fresh page, but with the same network identity and cookie.

actions is a sequence of steps executed before capturing the result: click, type, select, hover, keyPress, scrollBottom, scrollTo, waitForSelector, waitForTimeout, waitForNavigation, goto, evaluate. Element-targeting actions accept a selector: { type: "css" | "xpath", value: string }.

browser_search communicates with Zyte's separate /v1/search endpoint (not /v1/extract) and accepts a domain (a supported search engine, e.g. "google.com"), a query, and optionally maxResults (10–100), geolocation, and locale.

Rate-limit (429/503) and temporary-ban (520) responses from Zyte are retried automatically with exponential backoff, up to BROWSER_MAX_RETRIES times, as per Zyte's error-handling guide. Other error responses (invalid request, permanent ban, suspended account) are returned immediately, including Zyte's type error information if available.

Connecting a client

Example remote-MCP client configuration (e.g. Claude Desktop / Claude Code) pointing to a running instance:

{
  "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

Unit tests mock the global fetch used to call Zyte. For an end-to-end/ live-API check, run the server with a real ZYTE_API_KEY and use pnpm dlx @modelcontextprotocol/inspector http://localhost:3000/mcp, or curl, to run initializ → tools/list → tools/call → tools call.

Related MCP Connectors

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.
    62
    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.
    3,299
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    5
    207 npm
    31 PyPI
    MIT