Если вы когда-нибудь подключали AI-агента к живому вебу, вы уже знаете, где это ломается. Агент рассуждает нормально, но как только ему нужно реальное содержимое страницы, он упирается в стену: сайт рендерится на клиенте, HTML запутан, или запрос блокируется ещё до того, как возвращаются данные. Исправление состоит не в более умном промпте. Нужно дать агенту инструмент, который по запросу возвращает чистые структурированные веб-данные, и позволить агенту самому решать, когда его вызывать.

Именно это и предоставляет сервер Crawlbase Web MCP. В этом руководстве показано, как строить рабочие процессы AI-агентов на основе Crawlbase Web MCP: цикл планирования агента, вызовы инструментов MCP для скрейпинга и краулинга, а также конкретный сквозной пример, который принимает URL, загружает отрендеренную страницу и возвращает структурированный ответ. Никакого кастомного кода для скрейпинга, никакого прокси-пула для обслуживания, никаких правил парсинга, зашитых в агент.

Что Crawlbase Web MCP добавляет агенту

MCP (Model Context Protocol), это открытый стандарт, позволяющий языковой модели вызывать внешние инструменты через единый интерфейс. MCP-сервер публикует набор инструментов, и любой MCP-совместимый клиент (Claude Desktop, Cursor, n8n или ваш собственный агент) может их обнаружить и вызвать. Сервер Crawlbase MCP публикует инструменты веб-доступа, так что агент получает возможность читать любой публичный URL так, как это делал бы настоящий браузер.

Под капотом эти инструменты опираются на тот же Crawling API, который лежит в основе всего Crawlbase. Это означает, что агент наследует рендеринг JavaScript, ротацию резидентных IP, обработку антибот-защиты, повторные попытки и чистый вывод, ничего не зная об этом. С точки зрения агента он просто вызвал инструмент и получил читаемый контент. Для полного обзора того, что публикует сервер, см. наше введение в Crawlbase MCP.

Web MCP обычно предоставляет два инструмента, к которым будет обращаться ваш агент:

  • crawl загружает один URL и возвращает отрендеренную страницу в виде чистого markdown или HTML, готового для чтения моделью.
  • crawl_markdown (или вариант со скриншотом/структурированными данными, в зависимости от сборки вашего сервера) возвращает тот же контент, урезанный до читаемого текста, что снижает потребление токенов на длинных страницах.
Почему это лучше обычного HTTP-инструмента

Вместо этого можно дать агенту простой инструмент HTTP-запроса. На современных сайтах это редко работает: большинство страниц рендерятся на клиенте и блокируют автоматический трафик, поэтому сырые запросы возвращают пустые оболочки или блокировки. Инструмент MCP направляет запросы через Crawling API, который рендерит страницу за надёжным IP и возвращает готовый контент, так что агент получает реальные данные с первого вызова, а не зацикливается на повторных попытках.

Цикл агента шаг за шагом

Рабочий процесс агента, это цикл, а не прямая линия. Модель планирует, выбирает инструмент, читает результат и решает, достаточно ли данных для ответа или нужен ещё один вызов. При подключённом Web MCP этот цикл выглядит так:

  • Получение задачи. Агент получает инструкцию, которая обычно содержит URL или тему для исследования.
  • Планирование. Он рассуждает, может ли ответить из имеющихся знаний или нужны актуальные веб-данные.
  • Вызов инструмента MCP. Когда нужна страница, он вызывает crawl с целевым URL.
  • Чтение результата. Crawlbase возвращает чистый отрендеренный контент, который модель поглощает как вывод инструмента.
  • Решение. Достаточно для ответа? Пишет структурированный ответ. Ещё нет? Возвращается в цикл, краулит другой URL или уточняет запрос.
  • Возврат. Передаёт чистый структурированный результат в запрошенном формате.

Важный сдвиг заключается в том, что решение о скрейпинге принимает агент, а не закодировано вами. Вы описываете цель; агент выясняет, какие страницы нужны и когда их загружать.

Шаг 1: Запуск сервера Crawlbase Web MCP

Любой MCP-клиент подключается к серверу через небольшой блок конфигурации. Вы указываете клиенту на пакет Crawlbase MCP и передаёте токен через переменную окружения. Ниже приведена типичная конфигурация для настольного MCP-клиента.

json
{
  "mcpServers": {
    "crawlbase": {
      "command": "npx",
      "args": ["-y", "@crawlbase/mcp"],
      "env": {
        "CRAWLBASE_TOKEN": "YOUR_CRAWLBASE_JS_TOKEN"
      }
    }
  }
}

Используйте здесь JavaScript (JS) токен. Crawlbase выдаёт два типа токенов: обычный токен загружает статический HTML, тогда как JS-токен сначала рендерит страницу в настоящем браузере. Поскольку большинство сайтов, заслуживающих краулинга, рендерятся на клиенте, JS-токен является безопасным вариантом по умолчанию для работы агента. Оба токена вы получаете из дашборда после регистрации.

Если вместо настольного клиента вы используете агентную платформу, например n8n, вы подключаетесь к размещённой конечной точке MCP по HTTP, а не запускаете процесс локально. Полная настройка n8n описана в статье подключение n8n к Crawlbase Web MCP; далее в этом руководстве агент создаётся в коде, чтобы вы могли наблюдать цикл напрямую.

Шаг 2: Создание агента, вызывающего инструменты MCP

Теперь подключим настоящий агент к серверу. Паттерн ниже использует Python с клиентской библиотекой MCP и моделью с поддержкой вызова инструментов. Агент подключается к серверу Crawlbase MCP, обнаруживает доступные инструменты и передаёт их модели, чтобы та могла решать, когда краулить.

python
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

server = StdioServerParameters(
    command="npx",
    args=["-y", "@crawlbase/mcp"],
    env={"CRAWLBASE_TOKEN": "YOUR_CRAWLBASE_JS_TOKEN"},
)

async def connect():
    async with stdio_client(server) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])
            return session

asyncio.run(connect())

Запуск этого кода выводит имена инструментов, которые публикует сервер, подтверждая, что агент видит crawl и его родственников, прежде чем вы попросите модель их использовать. Этот шаг обнаружения делает рабочий процесс переносимым: замените позже на другой MCP-сервер, и агент адаптируется к любым обнаруженным инструментам.

Шаг 3: Передача модели цикла вызова инструментов

При активной сессии цикл прост. Вы передаёте модели задачу и список инструментов, позволяете ей сгенерировать вызов инструмента, выполняете этот вызов на сервере MCP, возвращаете результат и повторяете до тех пор, пока модель не прекратит вызывать инструменты и не напишет ответ.

python
async def run_agent(session, model, task):
    messages = [{"role": "user", "content": task}]
    tools = (await session.list_tools()).tools

    while True:
        reply = await model.chat(messages, tools=tools)

        if not reply.tool_calls:
            return reply.content

        for call in reply.tool_calls:
            result = await session.call_tool(call.name, call.arguments)
            messages.append({
                "role": "tool",
                "tool_call_id": call.id,
                "content": result.content,
            })

Этот цикл while и есть весь агент. Модель планирует, вызывает crawl, когда нужна страница, читает markdown, возвращаемый Crawlbase, и либо отвечает, либо краулит снова. Вы никогда не указываете ей, какой URL загружать или когда это делать; вы описываете результат, и она сама прокладывает путь.

Шаг 4: Управление агентом с помощью системного промпта

Единственное место, где прокрадывается неоднозначность, это вопрос, доверяет ли модель тому, что должна использовать инструмент вообще. Короткое явное системное сообщение устраняет сомнения и фиксирует единообразную форму вывода.

python
SYSTEM = """You are a web research assistant with crawl tools.

Always use the crawl tool to read a URL before answering about it.
Never guess page contents from memory. After crawling, extract only
the fields requested and return them as structured JSON."""

task = (
    "Crawl https://www.example-store.com/product/123 and return "
    "the product name, price, rating, and a one-line summary."
)

После этого один запуск даёт чистый объект: агент краулит страницу, читает отрендеренный контент, возвращаемый Crawlbase, и выдаёт ровно те поля, которые вы запросили. Это та же идея, что лежит в основе структурированного извлечения данных с помощью AI, только модель сама решает, когда обращаться к странице.

Crawlbase Web MCP

Сервер Web MCP даёт вашему агенту живой доступ к вебу одним вызовом инструмента. Он опирается на Crawling API, поэтому каждый краулинг рендерит JavaScript за ротируемым резидентным IP и возвращает чистый markdown без необходимости держать прокси-пул или флот headless-браузеров. Сначала укажите агент на публичную страницу на бесплатном тарифе.

Конкретный рабочий процесс: мониторинг цен конкурентов

Соберём части вместе в рабочий процесс, который вы действительно будете использовать. Допустим, вы хотите ежедневно проверять несколько страниц товаров конкурентов: текущая цена, наличие и любой промобаннер. Вы передаёте агенту список и даёте ему работать.

python
urls = [
    "https://competitor-a.com/p/widget",
    "https://competitor-b.com/p/widget",
]

async def price_watch(session, model):
    rows = []
    for url in urls:
        task = f"Crawl {url}. Return price, in_stock, promo as JSON."
        rows.append(await run_agent(session, model, task))
    return rows

Каждая итерация запускает полный цикл агента: модель краулит URL через инструмент MCP, Crawlbase рендерит его и ротирует IP, агент возвращает структурированную строку. Результат, аккуратный массив, который можно сравнить с данными за вчера, отправить в таблицу или получить уведомление при изменении цены.

Тот же скелет гибко адаптируется к другим задачам без переработки. Замените строку задачи, и у вас монитор новостей, исследовательский ассистент, собирающий заметки из нескольких источников, или шаг обогащения лидов по публичным страницам компаний. Поскольку агент взаимодействует с Crawlbase через один стабильный инструмент, перенацелить его на новый сайт не требует новой интеграции с API. Для понимания того, как это вписывается в общую картину, обзор сценариев использования AI-прокси охватывает смежные паттерны.

Настройка краулинга для сложных страниц

Большинство страниц краулятся без проблем с настройками по умолчанию, но тяжёлые одностраничные приложения иногда требуют подсказки. Инструменты MCP принимают те же параметры ожидания, что использует Crawling API, поэтому их можно передавать в аргументах инструмента, когда страница рендерится с задержкой. Важны два параметра: флаг ajax-wait, удерживающий загрузку для асинхронного контента, и значение page-wait в миллисекундах для фиксированной паузы после загрузки.

json
{
  "url": "https://www.example-store.com/product/123",
  "ajax_wait": true,
  "page_wait": 5000
}

Если результаты возвращаются скудными, сначала увеличьте page_wait, прежде чем пробовать что-то ещё. Вы можете позволить агенту устанавливать эти параметры самостоятельно, описав страницу в системном промпте ("для медленных одностраничных приложений дождитесь ajax-контента"), или задать их жёстко в обёртке, если знаете, что цель тяжёлая. В любом случае рендеринг, ротация и логика повторных попыток остаются на стороне Crawlbase; агент просто читает результат.

Если сайт настолько враждебен, что даже отрендеренный краулинг с трудом справляется, Smart AI Proxy предоставляет единую ротируемую конечную точку для маршрутизации запросов, а Crawling API возвращает предварительно разобранный JSON для популярных сайтов, когда вы предпочитаете пропустить парсинг страницы моделью. Оба используют ту же инфраструктуру, на которой работают инструменты MCP.

Обеспечение надёжности рабочего процесса

Несколько привычек поддерживают работоспособность рабочего процесса агента в продакшне. Добавьте проверку после каждого запуска, чтобы неудачный краулинг был виден, а не молча давал пустую строку. Делайте паузы между запросами при обходе большого числа URL, а не отправляйте их все сразу. Сохраняйте структурированный вывод где-то: в базе данных или хотя бы в таблице, чтобы можно было просматривать историю и сравнивать данные во времени. И настраивайте промпт под конкретную цель при необходимости: одна обобщённая инструкция для очень разных сайтов обычно даёт более слабые результаты, чем несколько сайт-специфичных строк.

Когда агент сообщает, что "инструменты не использовались", это почти всегда означает, что модель не была уверена, нужно ли краулить. Ужесточение системного сообщения и обеспечение того, что URL явно присутствует в задаче, решает эту проблему. При проблемах с подключением убедитесь, что сервер MCP запущен, проверьте, установлен ли токен в переменных окружения, и сначала перечислите инструменты, чтобы подтвердить работу рукопожатия, прежде чем отлаживать модель.

Итоги

Ключевые выводы

  • Сервер MCP, это веб-доступ агента. Он публикует инструменты краулинга, которые любой MCP-совместимый клиент может обнаружить и вызвать, опираясь на Crawling API.
  • Решение о скрейпинге принадлежит агенту. Вы описываете цель; модель планирует, вызывает инструмент, когда нужна страница, читает результат и продолжает цикл или отвечает.
  • Используйте JS-токен. Он рендерит страницы на клиенте в настоящем браузере, что требует большинство современных сайтов для возврата реального контента.
  • Цикл переносим. Обнаруживайте инструменты во время выполнения, и тот же агент адаптируется к новым сайтам без новой интеграции с API.
  • Настраивайте с помощью параметров ожидания. Передавайте ajax_wait и page_wait для тяжёлых одностраничных приложений; при скудных результатах сначала увеличьте page_wait.
  • Добавляйте защитные ограждения. Проверяйте неудачные краулинги, делайте паузы между запросами, сохраняйте вывод и настраивайте промпты под конкретные цели.

Часто задаваемые вопросы

Что такое Crawlbase Web MCP и как его использует агент?

Crawlbase Web MCP, это сервер Model Context Protocol, который публикует инструменты веб-доступа, прежде всего инструмент crawl, для любого MCP-совместимого AI-агента. Агент подключается к серверу, обнаруживает инструменты и вызывает их, когда нужен живой контент страницы. Каждый вызов опирается на Crawling API, поэтому агент получает отрендеренный чистый контент без написания какого-либо кода скрейпинга.

Нужен ли обычный токен или JS-токен для рабочих процессов агента?

Используйте JS-токен для работы агента. Обычный токен загружает статический HTML, который на современных клиентских сайтах является пустой оболочкой. JS-токен рендерит страницу в настоящем браузере перед возвратом, поэтому контент, который читает агент, действительно содержит данные. Оба токена вы получаете из дашборда Crawlbase после регистрации.

Какие AI-агенты и платформы работают с Crawlbase Web MCP?

Работает любой MCP-совместимый клиент, включая Claude Desktop, Cursor, Windsurf и агентные платформы вроде n8n, а также кастомные агенты, созданные с помощью клиентской библиотеки MCP. Пока клиент может подключиться к серверу и вызывать инструменты, он может использовать инструменты краулинга Crawlbase.

Может ли агент скрейпить JavaScript-heavy сайты без дополнительной настройки?

Да. Инструмент crawl автоматически рендерит JavaScript через Crawling API, поэтому агент получает полностью отрендеренный контент без запуска Puppeteer или Selenium. Для страниц, которые загружаются с задержкой, передайте ajax_wait и более высокое значение page_wait в аргументах инструмента, и API будет ожидать появления контента.

Как это помогает избежать блокировок?

Инструменты MCP направляют запросы через Crawling API, который ротирует резидентные IP, управляет фингерпринтингом браузера и обрабатывает антибот-проверки и повторные попытки на стороне сервера. Агент никогда не видит этого механизма; он просто получает обратно чистый контент. Держите скорость запросов разумной при обходе большого числа URL, и рабочий процесс останется стабильным.

Чем это отличается от передачи агенту обычного инструмента HTTP-запроса?

Обычный HTTP-инструмент возвращает то, что присылает сервер, что на большинстве современных сайтов является неотрендеренной оболочкой или блокировкой. Инструмент Crawlbase MCP рендерит страницу за надёжным IP и возвращает готовый контент с первого вызова, поэтому агент тратит свои шаги на рассуждение о реальных данных, а не на повторные попытки неудачных запросов.

Начать создавать

Обходите любой сайт в масштабе, без борьбы с инфраструктурой.

Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.

Самообслуживание · Звонок отдела продаж не требуется · Доступны корпоративные объёмы краулинга