Firecrawl MCP Skill
Полная интеграция Firecrawl MCP Server с OpenClaw для веб-скрапинга, краулинга и браузерной автоматизации.
Возможности
- 🔍 Search — Поиск в интернете с извлечением контента
- 📝 Scrape — Скрапинг отдельных страниц с опциями
- 🕷️ Crawl — Краулинг всего сайта с ограничениями
- 🤖 Extract — LLM-извлечение структурированных данных
- 🌐 Browser Automation — Интерактивная работа с браузером (click, type, scroll, screenshot)
Требования
- Node.js 18+
- Переменная окружения
FIRECRAWL_API_KEY(должна быть установлена в окружении OpenClaw Gateway) - Доступ к интернету
Конфигурация MCP
Скилл использует STDIO транспорт для связи с Firecrawl MCP Server. Конфигурация находится в mcp.json.
Доступные инструменты
1. firecrawl_search
Поиск в интернете с автоматическим извлечением контента.
Пример использования:
Поищи "Python web scraping libraries 2024" и извлеки названия библиотек и их особенности
Параметры:
query(string, required) — Поисковый запросlimit(number, optional) — Количество результатов (1-10, default: 5)lang(string, optional) — Язык поиска (en, ru, etc.)country(string, optional) — Страна поиска (us, ru, etc.)scrapeOptions(object, optional) — Опции скрапинга результатов
2. firecrawl_scrape
Скрапинг одной страницы с расширенными опциями.
Пример использования:
Скрапь https://example.com/product и извлеки название, цену и описание в JSON формате
Параметры:
url(string, required) — URL страницыformats(array, optional) — Форматы вывода: ["markdown", "json", "html", "branding"]onlyMainContent(boolean, optional) — Только основной контент (default: true)includeTags(array, optional) — Включить только эти тегиexcludeTags(array, optional) — Исключить эти тегиheaders(object, optional) — Кастомные HTTP заголовкиwaitFor(number, optional) — Задержка в мс перед скрапингом
JSON Schema для извлечения:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
}
3. firecrawl_batch_scrape
Пакетный скрапинг нескольких URL с rate limiting.
Пример использования:
Скрапь страницы [url1, url2, url3] и получи markdown контент
Параметры:
urls(array, required) — Массив URLoptions(object, optional) — Опции скрапинга
4. firecrawl_crawl
Краулинг всего сайта или раздела.
⚠️ Внимание: Может вернуть очень много данных! Используйте limit и maxDepth.
Пример использования:
Крауль https://example.com/blog с глубиной 2 и лимитом 50 страниц
Параметры:
url(string, required) — Начальный URLmaxDepth(number, optional) — Максимальная глубина (default: 2)limit(number, optional) — Лимит страниц (default: 10)allowExternalLinks(boolean, optional) — Разрешить внешние ссылкиdeduplicateSimilarURLs(boolean, optional) — Дедупликация URL
5. firecrawl_map
Картирование сайта — получение всех URL на сайте.
Пример использования:
Получи все URL с сайта https://example.com
Параметры:
url(string, required) — URL сайтаsearch(string, optional) — Фильтр поиска
6. firecrawl_extract
Извлечение структурированных данных с помощью LLM.
Пример использования:
Извлеки с https://example.com/products названия товаров и цены в формате JSON
Параметры:
urls(array, required) — Массив URLprompt(string, optional) — Промпт для LLMsystemPrompt(string, optional) — Системный промптschema(object, optional) — JSON schema для структурированного выводаallowExternalLinks(boolean, optional)enableWebSearch(boolean, optional)
7. firecrawl_browser_create
Создание сессии браузера для интерактивной автоматизации.
Пример использования:
Создай браузерную сессию с профилем "my-session" на 10 минут
Параметры:
ttl(number, optional) — Время жизни сессии в секундах (30-3600)activityTtl(number, optional) — Таймаут неактивности (10-3600)streamWebView(boolean, optional) — Включить стриминг видаprofile(object, optional) — Профиль для сохранения состоянияname(string) — Имя профиляsaveChanges(boolean) — Сохранять изменения
8. firecrawl_browser_execute
Выполнение команд в браузерной сессии.
Поддерживаемые команды (bash agent-browser):
agent-browser open <url>— Открыть URLagent-browser snapshot— Получить accessibility tree с clickable refsagent-browser click @e5— Клик по элементу (используй ref из snapshot)agent-browser type @e3 "text"— Ввод текстаagent-browser get title— Получить заголовокagent-browser screenshot— Скриншотagent-browser scroll down— Прокрутка внизagent-browser --help— Справка
Пример использования:
В сессии "session-id" открой https://example.com, сделай скриншот и кликни по кнопке @e5
Параметры:
sessionId(string, required) — ID сессииcode(string, required) — Код для выполненияlanguage(string, optional) — Язык: "bash", "python", "javascript"
9. firecrawl_browser_click
Клик по элементу в браузере.
Пример использования:
Кликни в сессии "session-id" по селектору "#submit-button"
Параметры:
sessionId(string, required)selector(string, required) — CSS селектор или @refx(number, optional) — Координата Xy(number, optional) — Координата Y
10. firecrawl_browser_type
Ввод текста в поле.
Пример использования:
В сессии "session-id" введи "test@example.com" в поле "#email" и нажми Enter
Параметры:
sessionId(string, required)selector(string, required) — CSS селекторtext(string, required) — Текст для вводаsubmit(boolean, optional) — Нажать Enter после ввода
11. firecrawl_browser_scroll
Прокрутка страницы.
Пример использования:
Прокрути в сессии "session-id" вниз на 3 экрана
Параметры:
sessionId(string, required)direction(string, required) — "up", "down", "left", "right"amount(number, optional) — Количество (default: 1)
12. firecrawl_browser_screenshot
Скриншот страницы.
Пример использования:
Сделай скриншот в сессии "session-id" всей страницы
Параметры:
sessionId(string, required)fullPage(boolean, optional) — Полная страница (default: false)selector(string, optional) — Селектор для скриншота элемента
13. firecrawl_browser_wait
Ожидание элемента или времени.
Пример использования:
Подожди в сессии "session-id" 3 секунды
Параметры:
sessionId(string, required)selector(string, optional) — Селектор для ожиданияtime(number, optional) — Время в мс
14. firecrawl_browser_delete
Удаление сессии браузера.
Пример использования:
Удали браузерную сессию "session-id"
Параметры:
sessionId(string, required)
15. firecrawl_check_crawl_status / firecrawl_check_batch_status
Проверка статуса асинхронных операций.
Пример использования:
Проверь статус краула с ID "crawl-id"
Параметры:
id(string, required) — ID операции
Оптимизация затрат
Рекомендации по экономии
- Используйте
onlyMainContent: true— убирает навигацию, футер, рекламу - JSON формат вместо markdown — меньше токенов, точечное извлечение
- Batch операции — дешевле, чем отдельные scrape
- Кеширование — сохраняйте результаты в БД, не скрапьте повторно
- Map перед Crawl — сначала получите URL, потом выберите нужные
Fallback стратегия
Если MCP недоступен, скилл автоматически переключается на HTTP API Firecrawl (требуется тот же API ключ).
Обработка ошибок
- Rate limiting — автоматические retry с exponential backoff (3 попытки)
- Timeout — повторная попытка через 2 секунды
- Invalid URL — проверка URL перед запросом
- MCP недоступен — fallback на HTTP API
Примеры сложных сценариев
Сценарий 1: Авторизация и извлечение данных
1. Создай браузерную сессию
2. Открой страницу логина
3. Введи логин и пароль
4. Кликни "Войти"
5. Дождись загрузки профиля
6. Сделай скриншот для проверки
7. Перейди на страницу данных
8. Извлеки информацию в JSON
9. Удали сессию
Сценарий 2: Поиск + пакетный скрапинг
1. Поищи "Python tutorials"
2. Получи первые 10 URL
3. Скрапь все страницы пакетно
4. Извлеки заголовки и описания
5. Сохрани в БД
Сценарий 3: Мониторинг цен
1. Крауль раздел /products с глубиной 1
2. Проверь статус краула
3. Извлеки цены и названия
4. Сравни с предыдущими ценами
5. Отправь уведомление об изменениях
Безопасность
- API ключ берется только из переменных окружения
- Нет хардкодов в коде
- Поддержка кастомных headers для авторизации
- Возможность использования self-hosted Firecrawl
Логирование
Все операции логируются:
[INFO]— информация о запуске операций[WARNING]— предупреждения (rate limit, credit threshold)[ERROR]— ошибки с деталями
Поддержка
- Документация Firecrawl: https://docs.firecrawl.dev
- MCP Server GitHub: https://github.com/firecrawl/firecrawl-mcp-server
- OpenClaw Skills: https://docs.openclaw.ai/skills