freecrawl — это MCP-сервер: он даёт вашему AI-агенту 29 инструментов для работы с интернетом. Сам по себе агент в браузер не ходит. Подключите freecrawl один раз — и можно просто написать «сравни цены у трёх поставщиков и собери таблицу»: агент найдёт страницы, прочитает их, вытащит нужные поля и сохранит файл.
Работает с Claude Code, Cursor, VS Code, Windsurf, Cline, Codex CLI, Gemini CLI и любым другим клиентом, который понимает MCP. Всё считается на вашей машине: ключи API не нужны, платить не за что, данные никуда не уходят. Есть и команда в терминале — тем же самым можно пользоваться руками.
Обычный запрос получил 403, браузер — почти пустую страницу, а живая сессия прошла проверку и вернула 6 214 символов чистого текста. Чем идти, freecrawl решил сам — команда была одна.
Нужен Python 3.10 или новее.
git clone https://github.com/kostya5524/freecrawl.git cd freecrawl pip install -e .
Для сайтов, которые рисуют содержимое скриптами, и для поиска картинок нужен браузер — ставится один раз:
playwright install chromium
Проверить, что всё на месте:
freecrawl health
Выберите свой клиент. Путь D:\freecrawl\mcp_server.py замените на путь к файлу в вашей копии репозитория — на macOS и Linux это что-то вроде /home/user/freecrawl/mcp_server.py.
claude mcp add freecrawl -s user -- python D:\freecrawl\mcp_server.py
Проверка: наберите в сессии /mcp — freecrawl должен быть в списке со статусом connected.
Чтобы инструменты появлялись только в одном проекте и уезжали в репозиторий вместе с кодом — файл .mcp.json рядом с проектом:
{
"mcpServers": {
"freecrawl": {
"command": "python",
"args": ["D:\\freecrawl\\mcp_server.py"]
}
}
}
| клиент | файл настроек |
|---|---|
| Cursor | ~/.cursor/mcp.json — или .cursor/mcp.json внутри проекта |
| VS Code (Copilot) | .vscode/mcp.json внутри проекта |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"freecrawl": {
"command": "python",
"args": ["D:\\freecrawl\\mcp_server.py"]
}
}
}
В VS Code корневой ключ называется servers, а не mcpServers — остальное совпадает.
Cline и Roo Code: MCP Servers → Configure, дальше тот же блок, что для Cursor. Файл лежит по пути .../globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (для Roo Code — rooveterinaryinc.roo-cline).
mcpServers:
- name: freecrawl
command: python
args:
- D:\freecrawl\mcp_server.py
[mcp_servers.freecrawl] command = "python" args = ["D:\\freecrawl\\mcp_server.py"]
{
"mcpServers": {
"freecrawl": {
"command": "python",
"args": ["D:\\freecrawl\\mcp_server.py"]
}
}
}
ChatGPT подключает MCP-серверы по сети, а не запуском файла: поднимите локальный HTTP-мост (например mcp-proxy) поверх mcp_server.py и укажите его адрес в настройках коннектора.
Формулировки, которые сразу работают — инструменты агент подберёт сам:
smart_scrape — страница любым доступным способомscrape — быстрый уровень: страница в выбранных форматахbatch_scrape — несколько страниц параллельноrender — браузер: ожидание элемента, скриншотbrowser_fetch_json — внутренний API изнутри страницыmap_urls — собрать все адреса сайтаcrawl — обход с лимитами и фильтрами путейcrawl_async — тот же обход, но в фонеjobs — состояние фоновых задачsearch — много движков сразу, слияние выдачdeep_research — тема в несколько раундовresearch — GitHub и научные статьиimage_search — картинки по описаниюimage_reverse_search — где ещё есть эта картинкаimage_find_sources — поискать все картинки со страницыextract — разметка сайта или своя схема полейextract_selectors — извлечение по правилам CSSagent — цель словами, шаги выбираются самиparse_file — PDF, DOCX, XLSX, CSV по ссылкеsave_result — результат файлом: JSONL, CSV, XLSX, MDmonitor — наблюдение за изменениями страницыsession — живой браузер: формы, входы, сценарииavito_search, avito_item — пример готового парсераautoru_search, autoru_item — пример готового парсераhealth — что установлено и что доступноproxies — список прокси и проверка живостиclear_cache — очистить локальный кэшНи один способ достать страницу не работает на всём вебе. Простой запрос быстрый, но его отбивает защита. Браузер проходит почти везде, но он в десятки раз тяжелее. Поэтому freecrawl идёт от дешёвого к тяжёлому и останавливается на первом уровне, который дал содержимое.
Что считается успехом. Заглушка защиты бывает многословной: страница «выключите VPN» на 403 по длине текста не отличается от настоящей. Поэтому успех — это и содержимое, и честный статус: код меньше 400 и текста не меньше 400 символов. Иначе включается уровень выше. Если не сработало ничего, вернётся не пустая страница, а ошибка со списком попыток.
chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\Users\Вы\.freecrawl\chrome
Дальше задайте переменную окружения FREECRAWL_CDP_URL=http://localhost:9222 — и этот уровень станет доступен агенту без лишних просьб. Профиль и куки настоящие, поэтому проверки проходят как у обычного посетителя; никакие данные браузера не копируются.
Самый частый способ получить блокировку — не «неправильный» браузер, а спешка. Серия быстрых запросов приводит к блокировке адреса на десятки минут, и смена отпечатка от неё уже не спасает. Поэтому паузы считаются по домену, а не общей очередью, и по умолчанию щадящие: 2,5–5 секунд со случайным разбросом.
Один поисковик индексирует свой срез веба, поэтому запрос уходит во все доступные источники параллельно (DuckDuckGo, Brave, Bing, Mojeek, публичные SearXNG — каждый в двух локалях). Выдачи сливаются взаимно-обратным ранжированием: страница, найденная несколькими движками, поднимается выше. В каждом результате видно, кто её нашёл. Недоступный источник просто выпадает из слияния, а не задерживает ответ.
Подробный разбор — в README на GitHub: чистка HTML, три способа извлечения данных, обратный поиск картинок, наблюдение за изменениями, прокси и ограничения без прикрас.
0 ₽. Ключи API не требуются ни для одной основной возможности; необязательные ключи (дополнительные поисковые источники, LLM для извлечения по схеме) имеют бесплатные тарифы. Единственный настоящий ресурс — ваш IP-адрес: именно он ограничивает объёмы, а не лицензия. Без прокси это десятки-сотни страниц в день, а не тысячи.