Блог

Как подключить веб-поиск к ИИ-агенту: MCP и REST на практике

Модель знает мир на момент обучения. Всё, что случилось позже, для неё не существует — а пользователь спрашивает про сегодняшние цены, вчерашний релиз и статью, которую прочитал утром. Разбираем, как дать агенту веб и не утопить его контекст в HTML.

6 мин чтенияРедакция срезAIMCPRAGАгенты

Модель знает мир на момент обучения. Всё, что случилось позже, для неё не существует — а пользователь спрашивает про сегодняшние цены, вчерашний релиз и статью, которую прочитал утром. Разбираем, как дать агенту веб и не утопить его контекст в HTML.

Задача звучит просто: «пусть агент поищет в интернете». На практике она распадается на три разные подзадачи, и путать их дорого. Найти страницы по теме, прочитать конкретную страницу и достать из страницы два-три значения — это три разных инструмента с разной ценой и разным весом в контексте.

Почему одного поиска мало#

Обычный поисковый API отдаёт ссылки и сниппеты. Агенту этого хватает, только если ответ буквально лежит в сниппете. В остальных случаях он пойдёт открывать страницу — и вот тут начинается настоящая работа: HTML современного сайта на 90% состоит из навигации, рекламных блоков, скриптов и разметки. Если отдать это модели как есть, вы платите токенами за меню и футер.

  • Поиск — нужны ссылки и факты по теме, когда вы ещё не знаете, где смотреть.
  • Чтение — адрес известен, нужен связный текст статьи или документации.
  • Извлечение по схеме — нужны 2–5 конкретных значений: цена, автор, дата, список вакансий.
  • Исследование — вопрос требует сопоставить несколько источников и сделать вывод.

Правило выбора

Чем точнее вы знаете, что́ ищете, тем более узкий инструмент берите. Извлечение по схеме вернёт в контекст только запрошенные поля вместо всей страницы — на длинных каталогах это разница в десятки тысяч токенов.

Способ первый: MCP-сервер#

Model Context Protocol — стандарт, по которому агент подключает внешние инструменты как встроенные. Вы указываете адрес сервера и ключ, а модель дальше сама решает, когда вызвать поиск и с какими параметрами. Ни писать обвязку, ни описывать схемы инструментов не нужно: сервер отдаёт их сам.

json
{
  "mcpServers": {
    "srezai": {
      "type": "http",
      "url": "https://srezai.ru/api/mcp",
      "headers": {
        "Authorization": "Bearer srz_live_ВАШ_КЛЮЧ"
      }
    }
  }
}

После перезапуска клиента у агента появляются инструменты web_search, image_search, read_url, extract, fetch_page и deep_research. Это способ по умолчанию для Claude Code, Cursor и любого клиента с поддержкой MCP — вся интеграция сводится к пяти строкам конфига.

Способ второй: REST API#

Если агент живёт в вашем коде — в n8n, в LangChain, в самописном цикле на Python — берите REST. Здесь вы сами решаете, когда и что вызывать, и можете кешировать результаты на своей стороне.

python
import httpx

resp = httpx.post(
    "https://srezai.ru/api/v1/search",
    headers={"Authorization": "Bearer srz_live_ВАШ_КЛЮЧ"},
    json={"query": "свежие релизы Next.js", "num": 5, "excerpts": True},
    timeout=60,
)
for item in resp.json()["results"]:
    print(item["title"], item["url"])

Про excerpts

Флаг excerpts добавляет к результатам реальный текст верхних страниц. Запрос идёт на пару секунд дольше, зато часто снимает следующий вызов чтения — агенту уже есть с чем работать.

Что выбрать#

КритерийMCPREST
Скорость подключенияминуты, правка конфигачасы, свой код
Кто решает, когда искатьмодельваш код
Контроль над кешем и ретраямина стороне клиентаполный
Где уместнееClaude Code, Cursor, IDEn8n, бэкенд, пайплайны

На практике оба способа живут рядом: MCP — для интерактивной работы в редакторе, REST — для фоновых пайплайнов, где важны предсказуемость и повторяемость. Ключ один и тот же, лимиты и списания общие.

Три ошибки, которые стоят токенов#

  1. Читать страницу целиком, когда нужна одна цифра. Извлечение по схеме дороже за вызов, но дешевле по итогу: в контекст приходят поля, а не весь документ.
  2. Запускать глубокое исследование ради одного факта. Оно сопоставляет источники и пишет связный ответ — за единичным значением это стрельба из пушки.
  3. Не ставить лимит на объём текста. По умолчанию возвращается начало страницы; если нужен весь документ, поднимайте лимит осознанно, а не «на всякий случай».

Хороший инструмент для агента экономит не запросы, а контекст: модель работает тем лучше, чем меньше мусора она вынуждена читать.

Редакция срезAI

Нужен ли отдельный ключ для MCP и REST?

Нет, ключ один. Он создаётся в личном кабинете и работает в обоих случаях; лимиты и списания тоже общие.

Что будет, если страница не читается?

Ответ придёт с кодом ошибки в квадратных скобках. Повторять имеет смысл на временных сбоях — таймаут апстрима, превышение лимита запросов; на ошибке в самом запросе повтор ничего не изменит.

Работает ли это с динамическими сайтами?

Да. Страницы открываются полноценным браузером, JavaScript выполняется на нашей стороне, поэтому SPA читаются так же, как статические страницы.

Ключ создаётся в личном кабинете за минуту, при регистрации начисляется бонус на старт.

Быстрый старт

Частые вопросы

Сколько стоит один поисковый запрос?

Веб-поиск — 1 кредит за вызов независимо от числа результатов. 1 кредит равен 0,10 ₽, оплата по факту без подписки.

Читайте также