Skip to main content
Glama
feedmepos

Browser MCP Server

by feedmepos

Browser MCP Server

Ein MCP-Server (Model Context Protocol), der KI-Agenten über die Zyte API einen echten, gegen Anti-Bot-Maßnahmen gewappneten Browser bereitstellt – Seiten navigieren, klicken/tippen/scrollen, Screenshots aufnehmen und strukturierte Daten extrahieren, mit automatischer Proxy-/IP-Rotation und Umgehung von Sperren.

Entwickelt mit NestJS und dem Server-Paket @nestjs-mcp/server, das direkt per HTTP mit Zytes /extract-Endpunkt spricht. Der Transport ist ausschließlich Streamable HTTP; er wird zustandslos an einem einzigen /mcp-Endpunkt ausgeliefert.

Setup

  1. Kopieren Sie .env.example in .env und füllen Sie die Werte aus:

Variable

Erforderlich

Beschreibung

ZYTE_API_KEY

ja

Ihr Zyte-API-Schlüssel

ZYTE_API_BASE_URL

nein

Überschreibt die Basis-URL der Zyte-API (Standard: https://api.zyte.com/v1)

PORT

nein

HTTP-Port (Standard: 3000)

BROWSER_TIMEOUT_MS

nein

Timeout pro Anfrage an Zyte (Standard: 30000)

BROWSER_MAX_RETRIES

nein

Wiederholungen für Rate-Limit-Antworten (429/503) und vorübergehende Sperre (520) mit exponentiellem Backoff (Standard: 2)

  1. Installieren Sie die Abhängigkeiten und starten Sie den Server:

pnpm install
pnpm run start:dev

Der MCP-Endpunkt wird unter http://localhost:3000/mcp bereitgestellt.

Related MCP server: Stealth Browser MCP

Tools

Tool

Rückgabe

browser_browse

Öffnet eine URL, führt optional Aktionen aus und liefert eine sessionId, gerendertes HTML und optional einen Screenshot

browser_screenshot

Screenshot einer Seite, optional nach Ausführung von Aktionen

browser_extract

Von KI extrahierte strukturierte JSON-Daten, die einem von Ihnen angegebenen JSON-Schema entsprechen

browser_search

Strukturierte Websuchergebnisse (Titel/URL/Snippet) über die Zyte-Such-API – hilfreich zum Auffinden von Seiten und anschließenden Öffnen mit browser_browse

browser_browse, browser_screenshot und browser_extract akzeptieren eine optionale sessionId (von einem vorherigen Aufruf zurückgegeben), um über mehrere Tool-Aufrufe hinweg dieselbe IP-Adresse und denselben Cookie-Speicher zu verwenden – nützlich, um eingeloggt zu bleiben oder bei einer auszuführenden mehrstufigen Aufgabe eine konstante IP zu halten. Beachten Sie: Laut Zytes Sitzungs-Dokumentation wird dabei kein tatsächlicher Browser-/Tab-Zustand (Formulareingaben, Scrollposition, offene Modal-Dialoge usw.) zwischen den Aufrufen beibehalten; jeder Aufruf lädt eine frische Seite mit derselben Netzwerkidentität und denselben Cookies.

actions ist eine Sequenz von Schritten, die ausgeführt werden, bevor das Ergebnis erfasst wird: click, type, select, hover, keyPress, scrollBottom, scrollTo, waitForSelector, waitForTimeout, waitForNavigation, goto, evaluate. Aktionen, die Elemente anvisieren, nehmen ein Feld selector: { type: "css" | "xpath", value: string } entgegen.

browser_search sendet an den separaten /v1/search-Endpunkt von Zyte (nicht /v1/extract) und nimmt die Parameter domain (eine unterstützte Suchmaschine, z. B. "google.com"), query sowie optional maxResults (10-100) / geolocation / locale entgegen.

Rate-Limit-Antworten (429/503) und temporäre Sperren (520) von Zyte werden automatisch mit exponentiellem Backoff, bis zu BROWSER_MAX_RETRIES Mal, wiederholt – gemäß Zytes Dokumentation zur Fehlerbehandlung. Alle anderen Fehlerantworten (ungültige Anfrage, dauerhafte Sperre, deaktiviertes Konto) werden sofort gemeldet, wobei Zytes Fehler-type in der Nachricht enthalten ist, sofern verfügbar.

Verbinden eines Clients

Beispielkonfiguration für einen Remote-MCP-Client (z. B. Claude Desktop / Claude Code), der auf eine laufende Instanz verweist:

{
  "mcpServers": {
    "browser": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Testen

pnpm test        # unit tests (service + resolver, global fetch mocked)
pnpm run lint    # eslint
pnpm run build   # type-check + compile

Unit-Tests mocken das globale fetch, das für Zyte-Aufrufe verwendet wird. Um einen End-to-End-Test gegen die Live-API durchzuführen, starten Sie den Server mit einem echten ZYTE_API_KEY und verwenden Sie pnpm dlx @modelcontextprotocol/inspector http://localhost:3000/mcp oder curl, um initition → toles/call auszuführen.

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