MCP server for freecrawl: 29 tools for web scraping, searching, image processing, and data extraction. Includes page scraping, site crawling, web search, image search, reverse image search, document parsing, monitoring, and specialized parsers for Avito and Auto.ru.
25 tools with Russian descriptions and schemas present, but significant quality gaps. All tools have descriptions (positive), but many are vague or lack actionable guidance. Parameter schemas are defined but descriptions are often minimal (1-2 sentences). No tool annotations (readOnlyHint/destructiveHint). Error handling returns JSON with 'error' and 'detail' fields but lacks recovery guidance. Output schemas are not documented, LLMs cannot predict response structure. Tools like 'agent', 'session', 'smart_scrape' combine multiple concerns. No pagination guidance for batch operations. Naming is generally clear (verb_noun pattern), but some tools are overloaded (e.g., 'session' with 6 action types).
Достичь цели, самостоятельно выбирая действия: поиск, открытие страниц, извлечение данных.
Карточка объявления на Auto.ru: цена, характеристики, продавец, описание.
Поиск объявлений на Auto.ru по фильтрам.
Карточка объявления на Авито: цена, характеристики, продавец, описание.
Поиск объявлений на Авито по фильтрам.
Скачать несколько страниц параллельно.
Открыть страницу в браузере и дёрнуть её внутренний API изнутри этой страницы. Нужно там, где API отдаёт 403 на прямой запрос: проверка смотрит на куки и источник запроса, а fetch из самой страницы их несёт.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). LLMs cannot distinguish safe reads from destructive writes. Tools like 'save_result', 'proxies', 'clear_cache' are marked WRITE but lack destructiveHint annotation.
Output schemas not documented. LLMs cannot predict response structure. Tools return JSON via _out() helper but no schema is declared in tool definitions. Agents cannot plan downstream calls or extract fields reliably.
Overloaded 'session' tool with 6 action types (open, click, fill, screenshot, close, eval). Should split into separate tools: open_session, click_element, fill_form, screenshot_page, close_session, eval_script. Violates single-responsibility principle.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Очистить локальный кэш страниц и документов.
Обойти сайт по ссылкам и вернуть содержимое страниц.
Глубокое исследование: поиск, чтение найденного, анализ и синтез ответа.
Извлечь структурированные данные из страницы по описанию на русском.
Извлечь данные из HTML по CSS-селекторам.
Проверка здоровья сервера: версия, доступные модули, кэш, прокси.
Найти источники картинки: где она впервые появилась и где встречается.
Обратный поиск картинки: где она встречается и есть ли версия крупнее.
Поиск картинок по запросу.
Быстро собрать адреса страниц сайта (через карту сайта и ссылки).
Создать или проверить монитор страницы: что изменилось с прошлой проверки.
Разобрать документ (PDF, DOCX, XLSX, CSV) по адресу или загруженный.
Управление прокси: список, добавить, удалить, очистить.
Сохранить результаты в файл (JSON, CSV, XLSX, Markdown).
Скачать страницу и вернуть содержимое в выбранных форматах.
Веб-поиск по многим источникам одновременно со слиянием выдач.
Живая браузерная сессия: открыть страницу, кликнуть, заполнить форму, получить результат.
Универсальный скрап: сам подбирает способ и повышает уровень, пока не получится. Порядок: HTTP с подделкой TLS → браузер разово → живая сессия браузера (проходит JS-челлендж) → настоящий Chrome по CDP. Файлы (PDF, DOCX, XLSX, CSV) определяются по адресу и разбираются как документы.
Error handling lacks recovery guidance. _err() returns generic JSON with 'error' and 'detail' fields but does not tell LLM what to do next. E.g., BlockedError hints 'подожди 10 - 30 минут' but no actionable recovery tool is offered.
Parameter descriptions are minimal (1-2 sentences). E.g., 'formats' param in scrape: 'через запятую, markdown, html, rawHtml, links, images, metadata, json.' lacks guidance on when to use each format or what each returns. Descriptions should be 50-200 chars with actionable context.