Apify MCP Server — тысячи готовых скраперов и краулеров как инструменты для ИИ-агента
📂 Исходный код на GitHubMCP-сервер Apify, который даёт ИИ-агентам извлекать данные из соцсетей, поисковиков, карт, интернет-магазинов и любых сайтов с помощью тысяч готовых скраперов и краулеров из Apify Store. Написан на TypeScript, лицензия MIT. Работает как облачный сервер на mcp.apify.com (OAuth, Streamable HTTP) и как локальный процесс через stdio.
Apify MCP Server — официальный MCP-сервер Apify. Он открывает ИИ-ассистенту доступ к Apify Store: каталогу с тысячами готовых программ для сбора данных с сайтов. Любая такая программа называется Actor. Через сервер агент может найти нужный Actor, посмотреть его схему входных данных, запустить его и получить результат.
Зачем это нужно: вместо того чтобы писать скрапер под каждый сайт, вы подключаете один MCP-сервер и получаете весь каталог сразу. Среди готовых Actor есть парсеры Facebook и Instagram, сборщик контактов из Google Maps, парсер выдачи Google Search, веб-браузер для RAG и загрузчик любых страниц.
Проект написан на TypeScript, лицензия MIT, у репозитория около 11 тысяч звёзд.
Два способа подключения
Облачный сервер. Адрес https://mcp.apify.com, транспорт Streamable HTTP. Это рекомендуемый способ. Так как сервер поддерживает OAuth, из клиентов вроде Claude.ai или Visual Studio Code достаточно вставить один адрес — токен вводить не нужно. Второй вариант для этого же адреса: передавать заголовок Authorization: Bearer <APIFY_TOKEN>.
У облачной версии есть то, чего нет у локальной: она определяет схему результата Actor, чтобы модель получала данные в предсказуемом виде. Поэтому для рабочих задач рекомендуют облако.
Локальный запуск. Транспорт stdio — сервер общается с клиентом через стандартный ввод и вывод. В настройках MCP-клиента укажите команду npx @apify/actors-mcp-server и переменную среды APIFY_TOKEN с вашим токеном Apify API. Полный список параметров запуска показывает команда npx @apify/actors-mcp-server --help.
Старый адрес https://mcp.apify.com/sse больше не работает: транспорт SSE удалили. Если у вас в конфигурации остался суффикс /sse, уберите его.
Подробная инструкция по настройке лежит в документации Apify. Проверенные клиенты: Claude Desktop, Claude.ai, ChatGPT, VS Code (Genie), Cursor, OpenCode, Kiro.
Actor становится инструментом
Сервер читает схему входных данных Actor и создаёт из него инструмент MCP. Агент видит, какие аргументы принимает инструмент и что он вернёт, поэтому вам не нужно вручную расписывать вызов.
Например, у apify/rag-web-browser входные данные выглядят так:
{
"query": "restaurants in San Francisco",
"maxResults": 3
}
Из этого следует практическое правило: аргументы подставляет сама модель. Вы пишете задачу человеческим языком, а LLM сама решает, какой инструмент вызвать и с какими параметрами.
Инструменты сервера
Кроме самих Actor, сервер даёт набор служебных инструментов. Они делятся на категории: actors, runs, storage, docs, tasks, schedules, builds, source, api.
| Инструмент | Что делает |
|---|---|
search-actors |
Ищет Actor в Apify Store |
fetch-actor-details |
Отдаёт схему входа, README, цены и схему вывода Actor |
call-actor |
Запускает Actor и возвращает результаты |
search-apify-docs |
Ищет по документации Apify |
fetch-apify-docs |
Отдаёт страницу документации целиком |
get-actor-run |
Детали конкретного запуска |
get-dataset-items |
Элементы датасета с фильтрами и постраничностью |
get-key-value-store-record |
Значение по ключу в key-value store |
abort-actor-run |
Останавливает идущий запуск |
build-actor |
Собирает версию Actor |
create-schedule |
Регулярный запуск по cron |
apify-api-read |
GET-запрос к любому пути Apify API |
apify-api-write |
POST, PUT, PATCH или DELETE к Apify API |
Полный список в репозитории содержит около сорока инструментов. Категории можно включать целиком, а часть инструментов включается только по имени — например, delete-actor или apify-api-write опасны, поэтому их специально убрали из набора по умолчанию.
Есть особенность, о которой стоит знать. Ответ на запуск Actor не содержит самих данных. В нём есть метаданные запуска, идентификаторы хранилищ, поле summary и подсказка nextStep. Чтобы забрать данные, агент читает nextStep и вызывает get-dataset-items с datasetId из ответа. Инструмент get-dataset-items добавляется автоматически, когда в наборе есть call-actor.
Ещё сервер умеет отдавать данные как ресурсы MCP. Вы передаёте любой GET-адрес Apify API вида https://api.apify.com/v2/..., а сервер сам подставляет токен сессии. Тело ответа возвращается сразу, пока оно не больше 256 КБ; всё, что крупнее, заменяется коротким уведомлением и ссылкой на скачивание.
Набор инструментов: параметр tools
Без параметров сервер загружает четыре вещи:
- категорию
actors(включаяcall-actor,search-actors,fetch-actor-details); - категорию
docs; - Actor
apify/rag-web-browser; - Actor
apify/web-fetch.
Если параметр tools задан, включаются только перечисленные в нём инструменты, а набор по умолчанию не добавляется.
https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser,apify/web-fetch
Минимальный вариант — один Actor и ничего больше:
https://mcp.apify.com?tools=apify/my-actor
То же самое для локального запуска:
npx @apify/actors-mcp-server --tools actors,docs,apify/rag-web-browser,apify/web-fetch
npx @apify/actors-mcp-server --tools apify/my-actor
Разработчики прямо предупреждают: состав набора по умолчанию может измениться в следующих версиях. Для рабочих проектов и стабильных интерфейсов всегда задавайте tools явно.
Параметр ui=true включает интерактивные виджеты MCP Apps в ответах инструментов. Например, search-actors начинает отдавать кликабельный интерфейс вместо простого текста. То же самое локально: флаг --ui true или переменная UI_MODE.
Чтобы подобрать конфигурацию под свой клиент, есть визуальный конфигуратор на https://mcp.apify.com/ — он собирает готовый фрагмент настроек.
Оплата запусков без токена
Запуск платного Actor обычно требует токена Apify. Сервер поддерживает три способа оплаты, при которых платит сам агент.
AGI (agi.apify.com) — рекомендуемый вариант. Вы платите один раз по протоколу x402 или MPP и получаете prepaid-токен Apify с ограничением по сумме. Дальше используете его как обычный токен через Authorization: Bearer <token>. Схема работает с любым Actor, а не только с Actor типа Pay Per Event. Условия описаны в agi.apify.com/AGENTS.md.
Прямой x402. Оплата идёт в USDC в сети Base, аккаунт Apify не нужен. Работает только с Actor типа Pay Per Event, Standby Actor не поддерживается. Требуется MCP-клиент с поддержкой протокола — например, mcpc из репозитория apify/mcpc.
brew install apify/tap/mcpc
mcpc x402 init
mcpc connect "mcp.apify.com?payment=x402" @apify --x402
mcpc @apify tools-call call-actor actor:="apify/rag-web-browser" input:='{"query": "latest AI news"}'
Skyfire. Агент передаёт платёжный токен PAY прямо в параметрах вызова инструмента. Нужен аккаунт Skyfire с пополненным кошельком и клиент, который умеет работать с несколькими серверами.
{
"mcpServers": {
"skyfire": {
"url": "https://api.skyfire.xyz/mcp/sse",
"headers": {
"skyfire-api-key": "<YOUR_SKYFIRE_API_KEY>"
}
},
"apify": {
"url": "https://mcp.apify.com?payment=skyfire"
}
}
}
Схема работает так: агент бесплатно находит Actor через search-actors, кладёт деньги на prepaid-баланс, запускает инструмент, получает результат. Неиспользованный остаток возвращается — через 60 минут простоя при x402 или после истечения токена при Skyfire.
Примеры диалогов
Запрос «найди последние новости об автономных ИИ-агентах и сделай краткую сводку» вызывает предустановленный инструмент apify--rag-web-browser. Он ищет в вебе и отдаёт содержимое трёх лучших результатов, а ассистент суммирует его.
Запрос «собери 10 лучших ресторанов в Праге из Google Maps с контактами» агент выполняет в три шага: ищет подходящий Actor, смотрит его схему входа, запускает. В ответе — название, адрес, рейтинг, телефон и сайт.
Запрос «покажи следующие 10 результатов того запуска» агент берёт datasetId из прошлого ответа и читает следующую страницу датасета.
Телеметрия и данные
Сервер собирает телеметрию вызовов инструментов, она включена по умолчанию. Локальная версия дополнительно отправляет отчёты об ошибках в Sentry. Выключается это флагом --telemetry-enabled=false или переменной TELEMETRY_ENABLED=false. Флаг командной строки важнее переменной среды.
npx @apify/actors-mcp-server --telemetry-enabled=false
export TELEMETRY_ENABLED=false
Для облачного сервера — параметр в адресе: https://mcp.apify.com?telemetry-enabled=false.
Часть инструментов работает вообще без токена. Если в tools перечислены только search-actors, fetch-actor-details, search-apify-docs, fetch-apify-docs, apify-api-search и apify-api-details, облачный сервер принимает запросы без авторизации.
По поводу данных: ваши запросы и входные данные Actor уходят в Apify API для выполнения. Дальше они не передаются третьим лицам, кроме тех, что нужны для работы самого Actor. Подробности в правовых документах Apify.
Ограничения
Схему входа Actor приходится упрощать, чтобы она работала с большинством MCP-клиентов. Описания длиннее 500 символов обрезаются по последней целой фразе и помечаются [Description truncated]. Списки значений (enum) длиннее 2000 символов вместе убираются, а в описание добавляется короткая заметка с примерами. Обязательные поля получают префикс REQUIRED. Тип элементов массива угадывается по порядку: явный тип в items, потом тип значения по умолчанию, потом тип из редактора.
Арендные Actor доступны только через облачный сервер https://mcp.apify.com. Локально вы можете вызвать только те Actor, которые уже добавлены в ваш набор инструментов.
Локальная разработка
Нужен Node.js версии 22 или новее. Токен кладётся в файл .env:
APIFY_TOKEN="your-apify-token"
Сборка пакета и запуск:
pnpm run build
export APIFY_TOKEN="your-apify-token"
export APIFY_META_ORIGIN=STANDBY
apify run -p
Сервер поднимается на http://localhost:3001. Для отладки удобен MCP Inspector:
npx @modelcontextprotocol/inspector node ./dist/stdio.js
Инструкции по разработке — в DEVELOPMENT.md, правила оформления коммитов и условия участия в проекте — в CONTRIBUTING.md. Лицензия MIT, текст лежит в LICENSE.md.