multi-scraper-mcp
MCP-Server als Apify-Actor – eine funktionierende Referenz
Dies ist die Quelle hinter renzomacar/multi-scraper-mcp, einem MCP-Server, der als Apify-Actor im Standby-Modus läuft und 16 Tools zur Lead-Generierung und zum Web-Scraping für KI-Clients wie Claude, Cursor und Windsurf bereitstellt.
Es ist als Referenz veröffentlicht, weil der interessante Teil nicht die Tool-Liste ist – sondern die drei Transportfehler, die echte Clients daran hinderten, sich zu verbinden, während jeder Lauf SUCCEEDED meldete.
Die drei Fehler, die dieser Code behebt
1. Eine veraltete Sitzungs-ID blockierte den Client dauerhaft
Sitzungen leben in einer In-Memory-Map, aber ein Standby-Lauf ist kein langlebiger Prozess – Apify recycelt ihn. Ein Client, der sich am Dienstag mit der Mcp-Session-Id von Montag wieder verbindet, trifft auf einen Prozess, der davon nie gehört hat.
Der Server antwortete früher mit 400. Die Spezifikation ist eindeutig, dass die Antwort 404 sein muss:
Der Server KANN die Sitzung jederzeit beenden, danach MUSS er auf Anfragen mit dieser Sitzungs-ID mit HTTP 404 Not Found antworten.
Wenn ein Client HTTP 404 [...] erhält, MUSS er eine neue Sitzung starten, indem er eine neue
InitializeRequestohne angehängte Sitzungs-ID sendet.
Der Wiederherstellungspfad des Clients ist an den Statuscode gekoppelt. 400 nimmt ihm die Fähigkeit, sich selbst zu heilen. Siehe sessionGone() in src/main.js.
2. Der Accept-Header lehnte Clients ab, bevor unser Code überhaupt lief
Die Spezifikation verlangt, dass Clients Accept: application/json, text/event-stream senden. Mehrere echte Clients senden nur eines oder gar nichts, und der Transport antwortet mit 406, bevor die Anfrage einen Handler erreicht – es gibt also nichts in den Logs und keinen fehlgeschlagenen Lauf in der Konsole.
normalizeAccept() akzeptiert sie trotzdem. Der Haken: Der Transport liest den Header aus req.rawHeaders, daher bewirkt das Patchen von req.headers allein nichts.
3. Ein langsames Tool ließ die Verbindung mitten in der Arbeit abbrechen
Diese Tools umschließen Scraper, die ein bis drei Minuten dauern. Ohne Bytes auf der Leitung verwirft das Standby-Gateway die Verbindung. Der Fix streamt alle 10 Sekunden eine notifications/message und löscht das Intervall in finally, damit eine frühe Fehlerrückgabe den Timer nicht leaken kann.
Related MCP server: Kryfto
Ehrliche Abrechnung
Actor.charge sitzt auf dem Pfad, der tatsächlich Daten zurückgab, nachdem die Elemente in der Hand sind – nicht am Anfang des Request-Handlers. Das Abrechnen bei Ankunft bedeutet, für Fehler zu berechnen.
Aufbau
Datei | Inhalt |
| Actor-Init, Express-App, Streamable HTTP + Legacy-SSE-Transports, die drei Fixes |
| Tool-Registry: Name, Beschreibung, Eingabeschema, Ziel-Actor |
| Actor-Definition, Eingabe- und Ausgabeschemata |
Ausführen
npm install
npm startRichten Sie dann einen MCP-Client auf http://localhost:4321/mcp. Auf der Apify-Plattform lautet die Standby-URL https://USERNAME--ACTOR-NAME.apify.actor/mcp – beachten Sie das Präfix USERNAME--; wenn Sie die URL ohne dieses veröffentlichen, schlägt jedes Kopieren und Einfügen fehl.
Ein Test, der sich lohnt
Sechs Anfragen, jede davon ein Fehler, der ausgeliefert wurde:
Handshake mit korrektem
Accept-Header → 200Handshake mit
Accept: application/json→ 200 (war 406)Handshake ohne
Accept-Header → 200 (war 406)tools/listmit unbekannter Sitzungs-ID → 404 (war 400)initializewährend noch eine veraltete ID gehalten wird → 200 (war 400)tools/listauf einer aktiven Sitzung → 200, vollständige Tool-Liste
Die Nummern 2 bis 5 waren alle in der Produktion defekt, während der Actor gesunde Läufe meldete.
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Web scraping, extraction and search for AI agents. Hosted MCP with workspace API keys.
1Direct access to 60+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
An MCP for marketers that gives agents tools for SEO, AEO, socials and ads data. Generous free tier; works in Claude, ChatGPT, Cursor and other MCP clients.
Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…
Related MCP Servers
- AlicenseAqualityCmaintenanceAn APAC-native web scraping API for AI agents that provides tools for scraping, crawling, searching, and extracting structured data from websites, directly usable from MCP-compatible clients like Claude Desktop, Cursor, and Windsurf.79 npmMIT
- FlicenseNot gradedqualityCmaintenanceProvides 42+ MCP tools for browser automation, web scraping, and search, enabling AI agents like Claude and Cursor to browse, extract data, and run research agents on the live web.9-
- AlicenseAqualityAmaintenanceProvides 27 MCP-native tools for web scraping, crawling, deep research, and autonomous extraction, delivering clean Markdown and structured JSON from any website.31733 npm2MIT
- AlicenseBqualityBmaintenanceMCP server exposing 35 web scraping and SERP tools for general scraping, Google services, e-commerce sites, social media, and search engines. Enables MCP clients like Claude to scrape web pages and search results via natural language.3534 npmMIT