multi-scraper-mcp
Servidor MCP como un Actor de Apify — una referencia funcional
Este es el código fuente detrás de renzomacar/multi-scraper-mcp,
un servidor MCP que se ejecuta como un Actor de Apify en modo Standby y expone 16 herramientas de generación de
prospectos y extracción web a clientes de IA como Claude, Cursor y Windsurf.
Se publica como referencia porque la parte interesante no es la lista de herramientas — son los
tres errores de transporte que impidieron que clientes reales se conectaran mientras cada ejecución reportaba SUCCEEDED.
Los tres fallos que este código corrige
1. Un ID de sesión obsoleto atascaba al cliente para siempre
Las sesiones viven en un Map en memoria, pero una ejecución en Standby no es un proceso de larga duración — Apify
lo recicla. Un cliente que se reconecta el martes con el Mcp-Session-Id del lunes se encuentra con un proceso
que nunca ha oído hablar de él.
El servidor solía responder 400. La especificación
es explícita en que la respuesta debe ser 404:
El servidor PUEDE terminar la sesión en cualquier momento, después de lo cual DEBE responder a las solicitudes que contengan ese ID de sesión con HTTP 404 Not Found.
Cuando un cliente recibe HTTP 404 [...] DEBE iniciar una nueva sesión enviando una nueva
InitializeRequestsin ID de sesión adjunto.
La ruta de recuperación del cliente está vinculada al código de estado. 400 elimina su capacidad de autocuración.
Véase sessionGone() en src/main.js.
2. El encabezado Accept rechazaba a los clientes antes de que nuestro código se ejecutara
La especificación requiere que los clientes envíen Accept: application/json, text/event-stream. Varios clientes
reales envían solo uno, o ninguno, y el transporte responde 406 antes de que la solicitud llegue a un
manejador — por lo que no hay nada en los registros ni ninguna ejecución fallida en la consola.
normalizeAccept() los acepta de todas formas. El detalle: el transporte lee el encabezado de
req.rawHeaders, así que modificar solo req.headers no hace nada.
3. Una herramienta lenta cortaba la conexión a mitad del trabajo
Estas herramientas envuelven scrapers que tardan de uno a tres minutos. Sin bytes en el cable, la puerta de enlace
de Standby corta la conexión. La corrección transmite un notifications/message cada 10 segundos, y
limpia el intervalo en finally para que un retorno temprano por error no pueda filtrar el temporizador.
Related MCP server: ZapFetch MCP Server
Cobrando con honestidad
Actor.charge se encuentra en la ruta que realmente devolvió datos, después de que los elementos están en mano — no al
inicio del manejador de solicitudes. Cobrar al llegar significa cobrar por fallos.
Estructura
archivo | qué contiene |
| Inicialización del Actor, app Express, transporte Streamable HTTP + SSE heredado, las tres correcciones |
| registro de herramientas: nombre, descripción, esquema de entrada, Actor objetivo |
| definición del Actor, esquemas de entrada y salida |
Cómo ejecutarlo
npm install
npm startLuego apunta un cliente MCP a http://localhost:4321/mcp. En la plataforma de Apify la URL de Standby es
https://USUARIO--NOMBRE-ACTOR.apify.actor/mcp — nota el prefijo USUARIO--; publicar la URL
sin él hace que cada copiar-y-pegar falle.
Una verificación que vale la pena ejecutar
Seis solicitudes, cada una un error que se envió a producción:
handshake con un encabezado
Acceptcorrecto → 200handshake con
Accept: application/json→ 200 (era 406)handshake sin encabezado
Accept→ 200 (era 406)tools/listcon un ID de sesión desconocido → 404 (era 400)initializemientras aún se mantiene un ID obsoleto → 200 (era 400)tools/listen una sesión activa → 200, lista completa de herramientas
Los números 2 a 5 estaban fallando en producción mientras el Actor reportaba ejecuciones saludables.
Licencia
MIT
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityNot gradedmaintenanceExposes over 19,000 Apify Actors as MCP tools for web scraping, data extraction, and OSINT automation. It enables AI agents to dynamically discover and execute scrapers to collect structured data and crawl web content.
- 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.712MIT
- 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.8

spidra-mcp-serverofficial
AlicenseAqualityBmaintenanceEnables AI assistants to scrape pages, batch-process URLs, and crawl entire websites with AI-powered extraction.12428MIT
Related MCP Connectors
Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Perufitlife/apify-mcp-server-example'
If you have feedback or need assistance with the MCP directory API, please join our Discord server