срезAI — MCP-сервер и поисковый API для ИИ-агентов
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
срезAI: веб-поиск, страницы и субтитры видео — 13 инструментов. Thirteen web tools for AI agents
| Author | ru.srezai |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2184 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"срезAI — MCP-сервер и поисковый API для ИИ-агентов": {
"url": "https://srezai.ru/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
web_searchread-onlyИщет страницы в живом вебе по текстовому запросу и возвращает ранжированный список: заголовок, ссылка, фрагмент. Сильное покрытие русскоязычного веба. Когда: нужны свежие факты, ссылки или данные новее вашей отсечки знаний. Когда не: адрес страницы уже известен - это read_url; нужны 2-5 конкретных значений - extract; нужен готовый разбор темы со сносками - deep_research. Возвращает: до 30 результатов текстом, без содержимого страниц. У каждого результата - домен, дата публикации (когда движок её отдаёт) и rel - лексическая релевантность запросу [0..1], по ней список и отсортирован. Дат нет у части выдачи: это ограничение движков, а не признак старой страницы. С excerpts: true добавляет реальный текст топ-страниц (+3-10 с), это часто экономит последующий вызов read_url. Если этого мало - chunksPerSource (0-5) читает страницу глубже (600 × N символов против 1200 у excerpt) и отдаёт несколько кусков на результат, а includeRawContent - полный текст страницы (до 20 000 символов, берите 1-3 результата). Всё читается в том же вызове и цены не меняет: дешевле, чем идти за текстом по одной ссылке. Свежесть: timeRange (day/week/month/year) или точные границы publishedAfter / publishedBefore - фильтр по дате публикации на нашей стороне; страницы без даты в окно не проходят, и в ответе сказано, сколько таких отброшено. Цена: 1 кредит за вызов, независимо от num. Выдача живая, поэтому повтор того же запроса даёт другой результат и списывается снова.
Parameters:
query(required) — string — Поисковый запросnum— integer — Сколько результатов (1-30)depth— string — Глубина: auto (по умолчанию, больше движков и результатов) или flash (быстрее, узкая выдача - для одного факта).category— string — Категория: general, news, it, scienceexcerpts— boolean — Забрать реальный текст топ-страниц под запрос (+3-10 с: страницы читаются параллельно, потолок - таймаут страницы). По умолчанию выкл.language— string — Язык: auto, ru, entimeRange— string — Свежесть по дате публикации: day, week, month, year - окно от сегодняшнего дня (1/7/30/365 дней), all (по умолчанию) - без ограничения. Фильтр применяем мы, а не движок: страницы без даты публикации в окно не проходят, и в ответе написано, сколько таких отброшено.excludeDomains— array — Исключить эти сайты и их поддомены: ["pinterest.com"]. До 10 доменов.includeDomains— array — Искать только на этих сайтах, вместе с поддоменами: ["habr.com", "vc.ru"]. До 10 доменов.publishedAfter— string — Нижняя граница даты публикации, YYYY-MM-DD включительно. Сильнее timeRange, если заданы обе.chunksPerSource— integer — Сколько кусков текста вернуть на каждый из топ-4 результатов (0-5, по умолчанию 0). Куски вырезаны из страницы по релевантности запросу и ранжированы: один вызов даёт контекст, за которым иначе пришлось бы идти read_url. Цена вызова не меняется.publishedBefore— string — Верхняя граница даты публикации, YYYY-MM-DD включительно.includeRawContent— boolean — Вернуть полный текст страницы для топ-4 результатов (до 20 000 символов на каждый) - замена отдельному чтению. По умолчанию выкл. Осторожно с num: это десятки тысяч токенов, берите 1-3 результата.
Hints: read-only yes · destructive no · idempotent no · open-world yes
image_searchread-onlyИщет изображения по текстовому запросу и возвращает прямые ссылки на файлы, страницу-источник и разрешение. Когда: нужны картинки, фотографии, логотипы, схемы. Когда не: нужен текст или факты - web_search; нужно увидеть, как выглядит конкретная страница, - fetch_page. Возвращает: только ссылки и метаданные - файлы не скачиваются и в ответе не появляются. Ставьте num: 1-3, если картинка нужна одна: по умолчанию 12, максимум 48, и полный список занимает десятки килобайт контекста. Цена: 1 кредит за вызов, независимо от num.
Parameters:
query(required) — string — Что искатьnum— integer — Сколько картинок вернуть (1-48, по умолчанию 12). Нужна одна картинка - просите 1-3, не тратьте контекст.safe— boolean — Безопасный поискtimeRange— string — Свежесть: all, day, week, month, year
Hints: read-only yes · destructive no · idempotent no · open-world yes
deep_researchread-onlyПроводит многошаговое исследование: сам формулирует запросы, ищет, читает источники и возвращает готовый связный ответ со ссылками на использованные страницы. Когда: вопрос требует сопоставления нескольких источников и вывода - «сравни», «разберись», «что известно о». Когда не: нужен один факт или список ссылок - это web_search, он в 20 раз дешевле и отвечает за секунды. Как это работает: исследование идёт долго - по замерам от 13 секунд (простой факт) до 42 минут, обычно 3-10 минут, и это дольше, чем живёт одно соединение. Поэтому инструмент запускает задачу и ждёт 45 секунд. Если за это время ответ готов - возвращает его сразу. Если нет - возвращает строку с пометкой `[research_pending]` и талоном (ticket). Тогда вызовите этот же инструмент ещё раз, передав ticket (query можно не повторять), чтобы дождаться готового результата; опрашивайте с паузой в минуту-две, пока не придёт ответ. Такой дозабор по талону НЕ списывается заново - деньги берутся один раз, за саму задачу. Если незавершённая задача висит больше 90 минут, инструмент честно скажет, что она зависла, - тогда имеет смысл перезапустить вопрос или сузить его. Возвращает: текст ответа плюс список источников. Если источники не вернулись, в ответе будет предупреждение - такой вывод не считается проверенным. Цена: 20 кредитов плюс 3 за каждую 1000 токенов ответа - самый дорогой вызов. Списывается один раз за задачу; повтор ТЕМЫ (новый query) - новая задача и новое списание, а дозабор по ticket бесплатен.
Parameters:
query— string — Вопрос или тема исследования. Обязателен для НОВОГО исследования; при дозаборе по ticket не нужен.ticket— ['string', 'number'] — Талон незавершённой задачи из прошлого ответа `[research_pending]`. Передайте его, чтобы дождаться готового результата - бесплатно, без нового списания.
Hints: read-only yes · destructive no · idempotent no · open-world yes
read_urlread-onlyОткрывает одну страницу по известному адресу и возвращает её текст чистым markdown - без навигации, рекламы, скриптов и HTML. JavaScript выполняется на нашей стороне, поэтому SPA тоже читаются. Когда: адрес известен и нужен текст - статья, документация, карточка товара. Когда не: адреса нет - сначала web_search; страниц несколько - read_urls (один вызов вместо пяти); нужны 2-5 конкретных полей - extract (в контекст придут только они); нужно увидеть вёрстку - fetch_page. Возвращает: заголовок и текст, по умолчанию первые 4000 символов. Длинная страница приходит по частям: в конце ответа указано значение offset, с которым надо вызвать тул повторно, чтобы получить продолжение. Так документ любого объёма читается окнами под ваш контекст, без повторной оплаты уже прочитанного. Читает и файлы, а не только страницы: PDF (включая сканы - распознаём текст), Word (docx), Excel (xlsx), PowerPoint (pptx), OpenDocument (odt/ods/odp/odg), RTF, EPUB и текстовые (txt/md/csv/json/xml). Адрес документа передавайте как есть: https://site.ru/otchet.docx. Старые двоичные .doc/.xls/.ppt не читаются - их отдаёт только LibreOffice, у нас его нет; нужен файл в новом формате. Цена: 1 кредит, самый дешёвый способ получить содержимое страницы (fetch_page - 3).
Parameters:
url(required) — string — Полный URL страницы (http/https)fresh— boolean — Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае.engine— string — Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт.offset— integer — С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы.webmcp— boolean — Экспериментально: проверить, объявляет ли страница WebMCP-инструменты (+1,5-3 с). По умолчанию выключено.maxChars— integer — Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
read_urlsread-onlyЧитает пачку страниц (до 10 за вызов; на бесплатном тарифе до 5) параллельно и возвращает текст каждой чистым markdown. То же, что read_url, но одним вызовом вместо нескольких - заметно быстрее по общему времени. Когда: на руках список ссылок, например топ выдачи web_search. Когда не: страница одна - read_url; нужны отдельные поля, а не текст, - extract (он тоже принимает список). Возвращает: текст по каждой странице. Частичный успех - норма: упавшие ссылки не рвут вызов, а перечисляются отдельным блоком «Не прочитано» с кодом ошибки. Дубликаты и ссылки сверх лимита отбрасываются, их число указано в ответе. Длинные страницы обрезаются по maxChars; дочитывать их удобнее по одной через read_url с offset - в батче offset один на все ссылки. Цена: 1 кредит за каждую ссылку - пять страниц стоят пять кредитов. Не отправляйте ссылки «на всякий случай».
Parameters:
urls(required) — array — Список URL (1-10). Дубликаты отбрасываются, лишнее отбрасывается по тарифу: на бесплатном берём 5, на платном 10.fresh— boolean — Читать все страницы батча заново, не беря недавно прочитанный текст. На цену не влияет.engine— string — Как забирать страницы: auto (по умолчанию), fast, dynamic, stealth. Применяется ко всем ссылкам батча.maxChars— integer — Сколько символов текста вернуть с КАЖДОЙ страницы (200-50000, по умолчанию 4000). На батче ставьте скромнее: пять больших страниц вытеснят из контекста всё остальное.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
yt_srtread-onlyЗабирает текстовую дорожку ролика YouTube - ручные субтитры или авто - по ссылке или 11-символьному id. Видео и звук не скачиваются: это дешёвый способ получить содержание ролика в контекст агента. Когда: нужен текст видео - конспект, цитата, проверка сказанного, поиск по содержанию лекции; ролик уже известен или найден через web_search. Для поиска видео используйте web_search (например, site:youtube.com), а не этот тул. Когда не: нужен текст страницы - read_url; нужна картинка/вёрстка - fetch_page; не YouTube (VK, Rutube, Дзен) - не работает. Плейлист не разбирается, нужен ролик. Возвращает по каждому ролику: название, канал, длительность, дату, язык, вид дорожки (ручные/авто), текст и ссылки на ролик и канал. Если дорожки нет - статус и список доступных языков: повторите с существующим. Длинный текст: maxChars можно поднять до 200000, и текст приходит целиком - окна сервиса склеиваются внутри одного вызова. Если ролик всё равно не влез, в шапке есть сводка «Не влезло в лимит» с from по каждому ролику, а в structuredContent - поля window.from/window.nextFrom и stats.credits. Продолжение - отдельный вызов (снова 1 кредит за ролик), но за уже прочитанное повторно платить не нужно. Настройки соединения (необязательные заголовки, чтобы не повторять их в каждом вызове): X-Srezai-Max-Chars: 200000; X-Srezai-Timestamps: true; X-Srezai-Speakers: true; X-Srezai-Credits: off (не печатать строку про списанные кредиты в тексте - они остаются в structuredContent.stats.credits); X-Srezai-Format: json (вернуть данные структурой JSON вместо markdown). Любой аргумент вызова перекрывает заголовок. speakers: true - разметка по говорящим: вместо сплошного текста реплики «Спикер 1/2/3» с таймкодами. Когда: интервью, подкаст, круглый стол, диалог двух лекторов - нужно понять, кто что сказал. Разделение по смыслу реплик, а не по голосу: имён в субтитрах нет, метки условные, на перебиваниях и панелях из трёх и более человек модель может ошибаться. Если разметка не удалась, вернётся обычный текст и спишется 1 кредит. Цена: 1 кредит за ролик, у которого субтитры получены; с speakers: true - 15 кредитов за ролик (разметку делает LLM по всему тексту). Неудачи (нет дорожки, ограничение частоты, недоступный ролик) не списываются. Разметка требует API-ключа: в бесплатном режиме без ключа она недоступна. До 5 роликов за вызов.
Parameters:
videos(required) — array — Ссылки на ролики YouTube или их id (до 5 за вызов). Формы: watch?v=, youtu.be/, shorts, embed, live, голый 11-символьный id.to— integer — Конец окна в секундах.from— integer — Начало окна в секундах (для продолжения используйте next_from из ответа).maxChars— integer — Сколько символов текста вернуть на ролик (200-200000, по умолчанию 12000). Длинный ролик собирается из нескольких окон сервиса автоматически: 200000 покрывает лекцию на 3-4 часа. Можно задать на всё соединение заголовком X-Srezai-Max-Chars или X-Srezai-Options.speakers— boolean — true - разметить, кто когда говорит: реплики "Спикер 1/2/3" с таймкодами вместо сплошного текста. Разделение по смыслу реплик, а не по голосу; имён нет, метки условные. Дороже: 15 кредитов за ролик (вместо 1). Нужен ключ: в бесплатном режиме без ключа недоступно.languages— array — Языки в порядке предпочтения, по умолчанию ["ru", "en"]. Ручная дорожка предпочтительнее авто. Если нужного языка нет - вернём доступные.timestamps— boolean — true - вернуть фрагменты с таймкодами вместо сплошного текста (дороже по контексту; для навигации по длинному ролику).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
fetch_pageread-onlyОткрывает страницу полноценным браузером и возвращает скриншот картинкой прямо в ответе, ссылку на полноразмерный файл и текст страницы в markdown. Когда: нужно УВИДЕТЬ страницу - раскладку, цвета, типографику, визуальную иерархию: «повтори дизайн как здесь», «что не так с вёрсткой». Когда не: нужен только текст - read_url (1 кредит против 3, и быстрее); нужны отдельные значения - extract. Возвращает: изображение плюс текст. Картинка занимает много контекста, поэтому для чтения этот инструмент избыточен. Если браузер не успел отрендерить страницу, вернём её текст (то же, что даёт read_url), скажем об этом прямо и спишем 1 кредит вместо 3. Цена: 3 кредита (1, если скриншот не получился).
Parameters:
url(required) — string — Полный URL страницы (http/https)maxChars— integer — Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст страницы, а не только начало.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
extractread-onlyЧитает страницу и возвращает JSON строго по вашей схеме: только запрошенные поля, без текста страницы. Чего на странице нет - приходит null, значения не домысливаются. Когда: нужны 2-5 конкретных значений - цена, характеристики, автор и дата, список вакансий. Экономит контекст: вместо всей страницы придут только поля. Когда не: нужен связный текст или вы не знаете заранее, что искать, - read_url (и в 4 раза дешевле). Схема: принимается и сокращённая форма - {"title":"string","price":"number?"}, где «?» делает поле необязательным, а «[]» - массивом; полный JSON Schema тоже работает. Описания полей заметно повышают точность разбора. Возвращает: объект по схеме на каждую ссылку. Можно передать до 10 ссылок разом (на бесплатном тарифе до 5) - одна схема применится ко всем. Цена: 2 кредита за каждую ссылку (чтение плюс разбор моделью).
Parameters:
url— string — URL страницы (http/https)urls— array — Список URL (1-10) вместо url - одна схема на все страницы. Лишнее отбрасывается по тарифу: на бесплатном берём 5, на платном больше. Каждая страница тарифицируется отдельно.engine— string — Как забирать страницу: auto (по умолчанию), fast, dynamic, stealth.schema— Схема результата. Проще всего - сокращённая форма: {"title":"string","price":"number?","tags":"string[]"}, где «?» помечает поле необязательным, а «[]» - массивом. Полный JSON Schema тоже принимается: {"type":"object","properties":{"price":{"type":"number","description":"цена в рублях"}},"required":["price"]}. Типы: string, number, integer, boolean, array, object. Описания полей заметно повышают точность.instruction— string — Уточнение для разбора, если из схемы неочевидно: «бери цену со скидкой», «только вакансии удалённо».
Hints: read-only yes · destructive no · idempotent yes · open-world yes
verify_claimread-onlyПроверяет утверждение: ищет источники, читает несколько независимых страниц и возвращает вердикт с дословными цитатами. Каждая цитата сверена с текстом страницы - не найденная в тексте отбрасывается вместе со своим доводом. Когда: факт, который нельзя брать на веру - цифра, дата, «X поддерживает Y», утверждение из ответа пользователя или из вашей же памяти. Особенно если ваш контекст не вмещает 4-5 страниц целиком: вся черновая работа делается на нашей стороне, к вам приходят только вердикт и цитаты. Когда не: нужен обзор темы - deep_research; нужен текст конкретной страницы - read_url. Вердикт: supported - источники подтверждают; refuted - опровергают; mixed - расходятся между собой; unverified - подтверждения не нашлось. Последние два - нормальный результат, а не ошибка: значит, утверждение нельзя считать проверенным. Считает в независимых доменах: три цитаты с одного сайта - один голос. Смотрите agreeing/disagreeing и confidence, а не только вердикт. Если сайт не открылся, слот не теряется: берём следующего кандидата из выдачи, поэтому прочитанных источников обычно ровно столько, сколько вы заказали. Когда проверка всё же вышла неполной, это сказано в вердикте и в caveats. Возвращает: вердикт, уверенность, цитаты со ссылками и оговорки. Источников - 2-5. Время: 15-60 с. Цена: 8 кредитов (поиск, чтение источников и работа модели).
Parameters:
claim(required) — string — Утверждение одной фразой, как проверяемый факт: «Node.js 22 - LTS», «ставка НДС для IT-услуг в России 20%». Не вопрос и не тема: чем конкретнее формулировка, тем точнее проверка.query— string — Свой поисковый запрос, если утверждение плохо ищется как есть (длинное, со сленгом). По умолчанию ищем по тексту утверждения.language— string — Язык поиска источников: auto, ru, entimeRange— string — Свежесть источников - для утверждений, которые могли устареть (цены, версии, должности): all, day, week, month, year.maxSources— integer — Сколько независимых источников читать (2-5, по умолчанию 4). Меньше - быстрее, больше - надёжнее. На цену не влияет.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
answer_searchread-onlyПолный RAG-цикл: поиск источников, семантическое ранжирование через BGE-reranker-v2-m3, чтение релевантных страниц и синтез финального ответа. Возвращает готовый ответ с указанием релевантности каждого источника (0-1). Когда: нужен итоговый ответ на вопрос, а не список ссылок. Лучше web_search + read_url, когда требуется интерпретация и синтез по нескольким источникам. Конвейер: переформулировка запроса → параллельный поиск → BGE-reranker отбирает топ → чтение страниц → синтез ответа. Возвращает: текст ответа + sources (каждый с relevance, chars_read, read_success). Источники всегда отсортированы по убыванию relevance. Цена зависит от depth: fast - 3 кредита, balanced - 5 кредитов, deep - 10 кредитов.
Parameters:
query(required) — string — Вопрос или поисковый запросdepth— string — Глубина: fast (2 страницы), balanced (5 страниц, по умолчанию), deep (10 страниц). Больше страниц - выше качество, дольше время.language— string — Язык поиска и ответа: auto, ru, en
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_usageread-onlyБаланс, остаток суточной квоты, время сброса окна, burst-лимит и расход за последние сутки и неделю - по услугам, в кредитах. Ответ - компактный JSON (машиночитаемые поля первыми). verbose: true - тот же отчёт человеческим текстом вместе с полным прайс-листом. Когда: вызов упал с [rate_limited] и надо понять, ждать секунды или до следующих суток; пользователь спрашивает про баланс и расходы; надо сверить свой лог вызовов с нашими списаниями; планируется большой батч. Возвращает: balance_credits, план, quota (used/limit/remaining/reset_min), burst, last24h (calls/credits/free и разбивка by_service) и week_credits. Без verbose прайс-листа в ответе нет - цены каждой услуги описаны у самой услуги, а здесь только то, что меняется от вызова к вызову. Тарификация: платите только за результат - ошибка и вызов, не принёсший ничего (пустая выдача, проверка без прочитанных источников), не списываются. Квота считает ВЫЗОВЫ, а не кредиты: 10 за 10 с и 200 в сутки на ключ. Цена: бесплатно, квоту и лимит запросов этот вызов не расходует - его можно звать без опасений.
Parameters:
verbose— boolean — true - полный человекочитаемый отчёт с прайс-листом всех инструментов. По умолчанию компактный JSON без прайс-листа.
Hints: read-only yes · destructive no · idempotent yes · open-world no
mapread-onlyСобирает адреса страниц сайта: robots.txt → Sitemap:, затем /sitemap.xml и /sitemap_index.xml (включая вложенные карты), а если карт нет - ссылки со стартовой страницы. Возвращает найденные адреса, их общее число и разбивку по разделам: по ней видно, где на сайте что лежит. Когда: известен сайт, а не страница - «собрать все события с агрегатора», «какие разделы есть на сайте», «дай мне список страниц для чтения». Когда не: нужен текст страниц - crawl (он читает найденное); нужен ответ по теме без привязки к сайту - web_search. Фильтр search сравнивает подстроку с АДРЕСОМ (страницы мы не читаем), поэтому для русских сайтов указывайте часть латинского пути: search: "organizers" вместо «организаторы». Один вызов читает до 8 карт сайта: если сайт отдаёт больше, в ответе это сказано, а разделы показывают, куда идти дальше. Возвращает: pages (до limit адресов), total (сколько нашлось всего), sections (разделы с числом адресов), source (sitemap или links) и outcome: ok, blocked (сайт отвечает 403 - это не «страниц нет»), unreachable, empty. Цена: 1 кредит за каждые 10 возвращённых адресов, минимум 1 (200 адресов - 20 кредитов). Сайт, который нас не пустил, не тарифицируется: результата нет.
Parameters:
url(required) — string — Сайт или страница (http/https)limit— integer — Сколько адресов вернуть (1-200, по умолчанию 50). total показывает, сколько нашлось всего.intent— string — Задача клиента словами: «страницы организаторов конференций», «все события», "только вакансии". Список адресов упорядочивается по смыслу под эту задачу, явный шум отсекается. Нужно там, где `selectPaths` бессилен: если у нужных страниц нет общего фрагмента пути, подстрока не найдёт ничего - на замере 03.10.2026 это 0/4, а упорядочивание по смыслу дало 4 нужных из 4 в первых строках. Работает, только если на сервере включён JEV_INTENT; иначе параметр игнорируется.search— string — Оставить адреса, содержащие эту подстроку (регистр и «ё» не важны; слова через пробел ищутся по отдельности). Фильтр по адресу, не по тексту страницы. / Keep URLs containing this substring (case- and ё-insensitive; space-separated words are matched individually). It filters URLs, not page text.selectPaths— array — Оставить только адреса, содержащие любую из этих подстрок (по одной на элемент). Так целятся в раздел: selectPaths: ["organizers"] на агрегаторе событий оставит 3565 адресов организаторов вместо служебных страниц.excludePaths— array — Выбросить адреса, содержащие любую из этих подстрок: архивы, теги, служебные разделы.includeSubdomains— boolean — Считать своими и поддомены (по умолчанию только тот же хост).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crawlread-onlyЧитает разделы сайта и читает найденные страницы: сначала карта адресов (как в map), затем текст страниц. Один вызов вместо «нашёл ссылку - прочитал - нашёл следующую»: так собирают всё содержимое раздела, а не отдельные страницы. Когда: нужно содержимое нескольких страниц одного сайта - «собери все события с этого агрегатора», «прочитай раздел документации», «что в этом каталоге». Когда не: нужен только список адресов - map (дешевле, страницы не читаются); нужна одна страница - read_url. Фильтр search у crawl сравнивается с ТЕКСТОМ прочитанных страниц (не с адресом), а selectPaths/excludePaths отбирают САМИ адреса. Порядок такой: сначала map (увидеть разделы и адреса), затем crawl с selectPaths по нужному разделу и, если надо, с search по тексту. Возвращает: pages (адрес, заголовок, текст до 20 000 символов на страницу) и skipped - адреса, которые не прочитались, с причиной. Недоступные страницы не роняют чтение: остальные отдаются, а причина названа. Цена: карта (1 кредит за 10 возвращённых адресов, минимум 1) плюс 1 кредит за каждую прочитанную страницу. Не прочиталась - не считается.
Parameters:
url(required) — string — Сайт или страница (http/https)limit— integer — Сколько страниц прочитать (1-20, по умолчанию 5).intent— string — Задача клиента словами: «страницы организаторов конференций», «все события», "только вакансии". Адреса карты упорядочиваются по смыслу, и читаются первые `limit` - так прицельное чтение работает там, где у нужных страниц нет общего фрагмента пути и `selectPaths` не находит ничего (замер 03.10.2026: 0/4 у подстроки против 4/4 в первых строках у отбора по смыслу). Работает, только если на сервере включён JEV_INTENT.search— string — Оставить страницы, в тексте или заголовке которых есть эти слова (фильтр по СОДЕРЖИМОМУ прочитанного).selectPaths— array — Читать только страницы, адрес которых содержит любую из этих подстрок - это и есть прицельное чтение раздела. Без него crawl читает первые адреса карты, а у агрегаторов это служебные страницы, а не события.excludePaths— array — Не читать страницы, чей адрес содержит любую из этих подстрок.includeSubdomains— boolean — Считать своими и поддомены.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.