multi-scraper-mcp
MCP-сервер как Apify Actor — рабочая эталонная реализация
Это исходный код, стоящий за renzomacar/multi-scraper-mcp, — MCP-сервер, который работает как Apify Actor в режиме Standby и предоставляет 16 инструментов для генерации лидов и веб-скрапинга AI-клиентам, таким как Claude, Cursor и Windsurf.
Он опубликован как эталонная реализация, потому что интересная часть — не список инструментов, а три ошибки транспорта, которые не давали реальным клиентам подключиться, при том что каждый запуск сообщал SUCCEEDED.
Три ошибки, которые исправляет этот код
1. Устаревший идентификатор сессии навсегда заклинивал клиента
Сессии живут в Map в памяти, но запуск в режиме Standby — не один долгоживущий процесс: Apify перезапускает его. Клиент, который переподключается во вторник с Mcp-Session-Id от понедельника, попадает в процесс, который о нём никогда не слышал.
Раньше сервер отвечал 400. В спецификации явно сказано, что ответ должен быть 404:
Сервер МОЖЕТ завершить сессию в любой момент, после чего он ОБЯЗАН отвечать на запросы, содержащие этот идентификатор сессии, кодом HTTP 404 Not Found.
Когда клиент получает HTTP 404 [...], он ОБЯЗАН начать новую сессию, отправив новый
InitializeRequestбез прикреплённого идентификатора сессии.
Путь восстановления клиента привязан к коду состояния. 400 лишает его способности к самовосстановлению. См. sessionGone() в src/main.js.
2. Заголовок Accept отклонял клиентов до того, как выполнялся наш код
Спецификация требует, чтобы клиенты отправляли Accept: application/json, text/event-stream. Некоторые реальные клиенты отправляют только одно из них или вообще ничего, и транспорт отвечает 406 до того, как запрос достигает обработчика, — поэтому в логах ничего нет, а в консоли нет неудачного запуска.
normalizeAccept() всё равно принимает их. Загвоздка: транспорт читает заголовок из req.rawHeaders, поэтому изменение только req.headers ничего не даёт.
3. Медленный инструмент обрывал соединение во время работы
Эти инструменты оборачивают скраперы, которые работают от одной до трёх минут. Без байтов по сети шлюз Standby обрывает соединение. Исправление стримит notifications/message каждые 10 секунд и сбрасывает интервал в finally, чтобы ранний возврат ошибки не мог допустить утечки таймера.
Related MCP server: ZapFetch MCP Server
Честная тарификация
Actor.charge стоит на пути, который реально вернул данные, после того как элементы уже получены, — а не в начале обработчика запроса. Списание по прибытии означает списание за сбои.
Структура
файл | что в нём |
| инициализация Actor, приложение Express, транспорты Streamable HTTP + устаревший SSE, три исправления |
| реестр инструментов: имя, описание, входная схема, целевой Actor |
| определение Actor, входные и выходные схемы |
Запуск
npm install
npm startЗатем направьте MCP-клиент на http://localhost:4321/mcp. На платформе Apify URL в режиме Standby — https://USERNAME--ACTOR-NAME.apify.actor/mcp — обратите внимание на префикс USERNAME--; публикация URL без него делает любое копирование-вставку нерабочим.
Проверка, которую стоит провести
Шесть запросов, по одному на каждый баг, который ушёл в продакшн:
рукопожатие с корректным заголовком
Accept→ 200рукопожатие с
Accept: application/json→ 200 (было 406)рукопожатие без заголовка
Accept→ 200 (было 406)tools/listс неизвестным идентификатором сессии → 404 (было 400)initializeс всё ещё устаревшим идентификатором → 200 (было 400)tools/listна живой сессии → 200, полный список инструментов
Пункты со 2 по 5 были сломаны в production, при этом Actor сообщал о здоровых запусках.
Лицензия
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