
MCP-сервер, предоставляющий возможности веб-скрапинга, обхода и поиска для AI-агентов. Поддерживает извлечение структурированных данных, интерактивный просмотр и углублённое исследование через единый API.
Сервер Model Context Protocol (MCP), который приносит Firecrawl в AI-агентов, совместимых с MCP — поиск, парсинг и взаимодействие с живой сетью для чистого, готового для агентов контекста.
Большое спасибо @vrknetha и @knacklabs за первоначальную реализацию!
Поиграйтесь с нашим MCP-сервером на площадке MCP.so или на Klavis AI.
Подключитесь к удалённому хостинг-серверу без настройки:``` https://mcp.firecrawl.dev/v2/mcp
На бесплатном уровне без ключа `scrape`, `search` и `interact` работают без API-ключа (с ограничением скорости). Другие инструменты, такие как `crawl`, `map`, `agent` и `extract`, по-прежнему требуют ключ.
Предпочитайте API-ключ или OAuth, если человек может зарегистрироваться. Это открывает полный набор инструментов и более высокие лимиты. С ключом используйте:```
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
См. документацию MCP сервера и руководство по онбордингу агентов для получения информации о настройке.
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
### Ручная установка```bash
npm install -g firecrawl-mcp
Настройка Cursor 🖥️ Примечание: Требуется версия Cursor 0.45.6+ Актуальные инструкции по настройке см. в официальной документации Cursor по настройке MCP-серверов: Руководство по настройке MCP-серверов Cursor
Чтобы настроить Firecrawl MCP в Cursor v0.48.6
Чтобы настроить Firecrawl MCP в Cursor v0.45.6
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcpЕсли вы используете Windows и у вас возникли проблемы, попробуйте
cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"
Замените your-api-key на ваш ключ API Firecrawl. Если у вас его еще нет, вы можете создать учетную запись и получить его по адресу https://www.firecrawl.dev/app/api-keys
После добавления обновите список MCP-серверов, чтобы увидеть новые инструменты. Композерный агент будет автоматически использовать Firecrawl MCP, когда это необходимо, но вы можете явно запросить его, описав свои потребности в веб-скрапинге. Откройте Композер через Command+L (Mac), выберите "Agent" рядом с кнопкой отправки и введите ваш запрос.
Добавьте это в ваш ./codeium/windsurf/model_config.json:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
### Запуск с Streamable HTTP в локальном режиме
Для запуска сервера с использованием Streamable HTTP локально вместо транспортного протокола stdio по умолчанию:```bash
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
Чтобы установить Firecrawl for Claude Desktop автоматически через Smithery:```bash npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
### Запуск в VS Code
Для установки в один клик нажмите одну из кнопок установки ниже...
[](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D&quality=insiders)
Для ручной установки добавьте следующий блок JSON в файл User Settings (JSON) в VS Code. Для этого нажмите `Ctrl + Shift + P` и введите `Preferences: Open User Settings (JSON)`.```json
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password": true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
}
При желании вы можете добавить его в файл .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими:```json
{
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password": true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
## Конфигурация
### Переменные среды
#### Необходимые для Cloud API
- `FIRECRAWL_API_KEY`: Ваш ключ API Firecrawl
- Требуется при использовании облачного API (по умолчанию)
- Необязательно при использовании собственного экземпляра с `FIRECRAWL_API_URL`
- `FIRECRAWL_API_URL` (Необязательно): Пользовательская конечная точка API для собственных экземпляров
- Пример: `https://firecrawl.your-domain.com`
- Если не указано, будет использоваться облачный API (требуется ключ API)
#### MCP OAuth (токены доступа Bearer)
Хостируемый Firecrawl может выдавать OAuth **токены доступа** (`fco_…`) через сервер авторизации на [firecrawl.dev](https://firecrawl.dev). Этот MCP-сервер передаёт любые учётные данные, которые он разрешает, в API Firecrawl как `Authorization: Bearer …`.
- **Транспорты HTTP stream** (`CLOUD_SERVICE=true`, `HTTP_STREAMABLE_SERVER=true` или `SSE_LOCAL=true`): Клиенты должны отправлять `Authorization: Bearer <fco_access_token>` в MCP-запросах. Токен Bearer OAuth имеет приоритет над `x-firecrawl-api-key` / `x-api-key`, если присутствуют оба.
- **stdio:** Используйте `FIRECRAWL_OAUTH_TOKEN` для статического токена доступа или продолжайте использовать `FIRECRAWL_API_KEY` для ключа API.
Используйте только **токены доступа** (`fco_…`). Токены обновления (`fcr_…`) должны быть обменены на конечной точке токена, а не передаваться в API scrape/search.
### Примеры конфигурации
Для использования облачного API:```bash
export FIRECRAWL_API_KEY=your-api-key
Для самостоятельного экземпляра:```bash
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com
export FIRECRAWL_API_KEY=your-api-key # If your instance requires auth
### Использование с Claude Desktop
Добавьте это в ваш `claude_desktop_config.json`:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Используйте это руководство, чтобы подобрать правильный инструмент для вашей задачи:
При использовании scrape выберите подходящий формат:
firecrawl_scrape)Извлечение содержимого с одного URL с расширенными возможностями.
Лучше всего подходит для:
Не рекомендуется для:
Частые ошибки:
Выбор подходящего формата:
Пример запроса:
"Получите информацию о товаре с https://example.com/product."
Пример использования (JSON - предпочтительный):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com/product", "formats": [ { "type": "json", "prompt": "Extract the product information", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": "number" }, "description": { "type": "string" } }, "required": ["name", "price"] } } ] } }
**Пример использования (формат markdown - когда требуется полное содержание):**```json
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
Пример использования (формат брендирования - извлечение идентичности бренда):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com", "formats": ["branding"] } }
**Branding format:** Извлекает всестороннюю идентичность бренда (цвета, шрифты, типографику, отступы, логотип, компоненты интерфейса) для анализа дизайна или повторения стиля.
**Privacy:** Установите `redactPII: true`, чтобы вернуть контент с удаленной личной информацией.
**Returns:**
- Структурированные данные JSON, markdown, профиль бренда или другие форматы по запросу.
### 2. Map Tool (`firecrawl_map`)
Картографирование веб-сайта для обнаружения всех индексированных URL на сайте.
**Подходит для:**
- Обнаружения URL на веб-сайте перед решением, что сканировать
- Поиска конкретных разделов сайта
**Не рекомендуется для:**
- Когда вы уже знаете, какой конкретный URL вам нужен (используйте scrape)
- Когда вам нужно содержимое страниц (используйте scrape после картографирования)
**Распространенные ошибки:**
- Использование crawl для обнаружения URL вместо map
**Пример запроса:**
> "Перечислите все URL на example.com."
**Пример использования:**```json
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
Возвращает:
firecrawl_search)Выполняет поиск в интернете и опционально извлекает содержимое из результатов поиска.
Лучше всего подходит для:
Не рекомендуется для:
Распространенные ошибки:
Пример использования:```json { "name": "firecrawl_search", "arguments": { "query": "latest AI research papers 2023", "limit": 5, "lang": "en", "country": "us", "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true, "redactPII": true } } }
**Возвращает:**
- Массив результатов поиска (с возможным извлеченным содержимым), а также поле `id`. Передайте этот `id` в `firecrawl_search_feedback` после использования результатов, чтобы вернуть 1 кредит (поиск стоит 2) и улучшить качество поиска.
**Пример запроса:**
> "Найдите последние исследовательские статьи по ИИ, опубликованные в 2023 году."
### 3b. Инструмент обратной связи по поиску (`firecrawl_search_feedback`)
Отправляет структурированную обратную связь по предыдущему результату `firecrawl_search`. Первая обратная связь для каждого идентификатора поиска возвращает 1 кредит и улучшает качество поиска Firecrawl. Идемпотентно для каждого идентификатора поиска.
**Вызывайте это после каждого поиска, который вы фактически используете** (или который не помог). Плохая/частичная обратная связь с `missingContent` так же ценна, как и хорошая.
**Отказ:** установите `FIRECRAWL_NO_SEARCH_FEEDBACK=1` (или `FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1`) в окружении при запуске MCP-сервера. Инструмент `firecrawl_search_feedback` не будет зарегистрирован, поэтому агенты не смогут его вызвать. Администраторы команды также могут отключить обратную связь на стороне сервера; в этом случае инструмент регистрируется, но всегда возвращает `feedbackErrorCode: "TEAM_OPTED_OUT"`.
**Наиболее важное поле:** `missingContent`. Это массив конкретных фрагментов содержимого, которые агент ожидал найти, но не нашел. Одна запись на отсутствующую тему — они агрегируются по командам и говорят нам, что индексировать дальше.
**Ежедневный лимит возврата (на команду, за UTC-сутки, по умолчанию 100 кредитов).** Как только `creditsRefundedToday` команды достигает `dailyRefundCap`, дальнейшие отправки по-прежнему записывают обратную связь, но больше не возвращают кредиты. В ответе устанавливается `dailyCapReached: true`. Агенты должны прекратить вызывать этот инструмент до конца UTC-суток, когда они видят этот флаг.
**Пример использования:**```json
{
"name": "firecrawl_search_feedback",
"arguments": {
"searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
"rating": "good",
"valuableSources": [
{
"url": "https://docs.firecrawl.dev/features/search",
"reason": "Most up-to-date description of /search."
}
],
"missingContent": [
{
"topic": "Pricing for the search endpoint",
"description": "No pricing tier table for /search specifically."
},
{ "topic": "Per-team rate limits" }
],
"querySuggestions": "Boost docs.firecrawl.dev for queries that mention 'firecrawl'"
}
}
Returns:
{ success, feedbackId, creditsRefunded, alreadySubmitted? } JSON.firecrawl_feedback)Отправляет структурированную обратную связь для завершённой задачи конечной точки v2 через /v2/feedback.
Используйте это для обратной связи на уровне конечной точки по задачам scrape, parse, map или search.
Что касается качества результатов поиска, предпочтительнее использовать firecrawl_search_feedback, так как он включает рекомендации, специфичные для поиска.
Делайте обратную связь краткой: используйте коды проблем, теги, короткие заметки, URL-адреса, номера страниц и небольшие объекты метаданных. Не включайте необработанные выходные данные scrape/parse.
Отказ: установите FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (или FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) в окружении при запуске MCP-сервера. Инструмент firecrawl_feedback не будет зарегистрирован, поэтому агенты не смогут его вызвать.
Пример использования:```json { "name": "firecrawl_feedback", "arguments": { "endpoint": "scrape", "jobId": "0193f6c5-1234-7890-abcd-1234567890ab", "rating": "partial", "issues": ["missing_markdown"], "tags": ["docs"], "note": "The pricing table was missing from the markdown output.", "url": "https://example.com/pricing", "pageNumbers": [1], "metadata": { "format": "markdown" } } }
**Returns:**
- `{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }` JSON.
### 4. Инструмент обхода (`firecrawl_crawl`)
Запускает задание обхода, опрашивает его до достижения конечного состояния и возвращает итоговый статус/данные обхода.
**Лучше всего подходит для:**
- Извлечения содержимого с нескольких связанных страниц, когда требуется полный охват.
**Не рекомендуется для:**
- Извлечения содержимого с одной страницы (используйте scrape)
- Когда важны лимиты токенов (используйте map + scrape для более точного контроля)
- Когда нужны быстрые результаты (обход может быть медленным)
**Предупреждение:** Ответы от обхода могут быть очень большими и превышать лимиты токенов. Ограничьте глубину обхода и количество страниц или используйте map + scrape для более точного контроля.
**Распространённые ошибки:**
- Установка слишком большого значения limit или maxDiscoveryDepth (приводит к переполнению токенов)
- Использование обхода для одной страницы (лучше использовать scrape)
**Пример промпта:**
> «Получить все записи блога с первых двух уровней example.com/blog.»
**Пример использования:**```json
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Возвращает:
id, status, completed, total, creditsUsed, expiresAt, next и data. Используйте возвращённый id с firecrawl_check_crawl_status, если вам нужно позже повторно проверить задание.firecrawl_check_crawl_status)Проверьте статус и результаты существующего задания краулинга по ID.```json { "name": "firecrawl_check_crawl_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**Возвращает:**
- Ответ включает статус задания обхода:
### 6. Инструмент Parse (`firecrawl_parse`)
Анализирует локальные файлы или ссылки на загруженные файлы с помощью конечной точки `/v2/parse` Firecrawl.
**Лучше всего подходит для:** PDF-файлов, документов Word, электронных таблиц, HTML-файлов и других документов, которые требуют вывода в формате markdown или структурированного JSON. Хостированный MCP поддерживает двухэтапный поток с ссылкой на загрузку; локальное чтение файлов напрямую требует самостоятельного размещения `FIRECRAWL_API_URL`.
**Не рекомендуется для:** удаленных URL (используйте scrape), нескольких файлов в одном вызове (вызывайте parse один раз на файл), или действий только в браузере, таких как скриншоты и клики.
**Поток хостированного MCP:** Хостированный MCP не может напрямую читать файловую систему вызывающего. Вызовите `firecrawl_parse` с `filePath`, чтобы получить кратковременную команду загрузки и `nextToolCall`, загрузите файл локально, затем снова вызовите `firecrawl_parse` с полученным `uploadRef`. Создание URL загрузки хостированным способом требует авторизации Firecrawl или права доступа без ключа. В локальном режиме `npx firecrawl-mcp` прямое чтение файлов в настоящее время требует `FIRECRAWL_API_URL`, указывающего на самостоятельно размещенный API Firecrawl; обычный локальный сервер только с облачным ключом API не может читать и загружать файлы через этот инструмент.
**Пример использования:**```json
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
Returns: Parsed document content or hosted upload instructions with a nextToolCall.
firecrawl_extract)Извлекает структурированную информацию из веб-страниц с помощью возможностей LLM. Поддерживает как облачный ИИ, так и самостоятельное извлечение LLM.
Подходит для:
Не рекомендуется для:
Аргументы:
urls: Массив URL-адресов для извлечения информацииprompt: Пользовательский промпт для извлечения LLMsystemPrompt: Системный промпт для управления LLMschema: JSON-схема для извлечения структурированных данныхallowExternalLinks: Разрешить извлечение из внешних ссылокenableWebSearch: Включить веб-поиск для дополнительного контекстаincludeSubdomains: Включить поддомены в извлечениеПри использовании самостоятельного экземпляра извлечение будет использовать вашу настроенную LLM. Для облачного API используется управляемый сервис LLM Firecrawl. Пример промпта:
"Извлеките название продукта, цену и описание с этих страниц товаров."
Пример использования:```json { "name": "firecrawl_extract", "arguments": { "urls": ["https://example.com/page1", "https://example.com/page2"], "prompt": "Extract product information including name, price, and description", "systemPrompt": "You are a helpful assistant that extracts product information", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": "number" }, "description": { "type": "string" } }, "required": ["name", "price"] }, "allowExternalLinks": false, "enableWebSearch": false, "includeSubdomains": false } }
**Возвращает:**
- Извлечённые структурированные данные, как определено вашей схемой```json
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
firecrawl_agent)Автономный веб-исследовательский агент. Это отдельный слой ИИ-агента, который самостоятельно просматривает интернет, ищет информацию, переходит по страницам и извлекает структурированные данные на основе вашего запроса.
Как это работает:
Агент выполняет веб-поиск, переходит по ссылкам, читает страницы и автономно собирает данные. Этот процесс работает асинхронно — он немедленно возвращает ID задачи, а вы опрашиваете firecrawl_agent_status, чтобы узнать, когда он завершится, и получить результаты.
Асинхронный рабочий процесс:
firecrawl_agent с вашим запросом/схемой → возвращает ID задачиfirecrawl_agent_status с ID задачи, чтобы отслеживать прогрессЛучше всего подходит для:
Не рекомендуется для:
Аргументы:
prompt: Описание данных на естественном языке (обязательно, максимум 10 000 символов)urls: Необязательный массив URL для фокусировки агента на определённых страницахschema: Необязательная JSON-схема для структурированного выводаПример запроса:
"Найти основателей Firecrawl и их истории"
Пример использования (запуск агента, затем опрос результатов):```json { "name": "firecrawl_agent", "arguments": { "prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts", "schema": { "type": "object", "properties": { "startups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "funding": { "type": "string" }, "founded": { "type": "string" } } } } } } } }
Затем опрашивайте с помощью `firecrawl_agent_status`, используя возвращённый идентификатор задания.
**Пример использования (с URL-адресами — агент фокусируется на конкретных страницах):**```json
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
Возвращает:
firecrawl_agent_status для опроса результатов.firecrawl_agent_status)Проверьте статус задания агента и получите результаты после завершения. Используйте это для опроса результатов после запуска агента.
Шаблон опроса: Исследование агента может занимать минуты для сложных запросов. Периодически опрашивайте эту конечную точку (например, каждые 10-30 секунд), пока статус не станет "completed" или "failed".```json { "name": "firecrawl_agent_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**Возможные статусы:**
- `processing`: Агент всё ещё исследует — проверьте позже
- `completed`: Исследование завершено — ответ содержит извлечённые данные
- `failed`: Произошла ошибка
### 10. Инструмент взаимодействия (`firecrawl_interact`)
Взаимодействуйте с новым URL-адресом или со страницей, которая уже была открыта с помощью `firecrawl_scrape`.
**Лучше всего подходит для:** Кликов, ввода текста, навигации и извлечения состояния из динамических страниц без восстановления устаревших инструментов браузера.
**Варианты использования:**
- Передайте `url`, чтобы парсить и открыть страницу для взаимодействия за один MCP-вызов.
- Передайте `scrapeId`, чтобы продолжить взаимодействие с уже распарсенной страницей.
- Передайте ровно один из параметров `url` или `scrapeId` плюс либо `prompt`, либо `code`.
**Пример использования:**```json
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
Возвращает: Результат взаимодействия и, для режима URL, полученный scrapeId для последующих действий или очистки.
firecrawl_interact_stop)Останавливает сеанс взаимодействия с извлеченной страницей, когда вы закончили взаимодействие.```json { "name": "firecrawl_interact_stop", "arguments": { "scrapeId": "scrape-id-here" } }
### 12. Инструменты исследований (`firecrawl_research_*`)
Поиск и просмотр статей и репозиториев GitHub через исследовательские MCP-инструменты.
**Доступные инструменты исследований:**
- `firecrawl_research_search_papers`: поиск научных статей.
- `firecrawl_research_inspect_paper`: просмотр одной статьи.
- `firecrawl_research_related_papers`: поиск связанных статей.
- `firecrawl_research_read_paper`: чтение содержимого статьи.
- `firecrawl_research_search_github`: поиск репозиториев GitHub.
**Лучше всего подходит для:** Обзора литературы, поиска статей и обнаружения репозиториев в рабочих процессах, где агенту требуется сфокусированная исследовательская поверхность вместо общего веб-скрапинга.
### 13. Инструменты мониторинга (`firecrawl_monitor_*`)
Создавайте и управляйте повторяющимися мониторами страниц. Мониторы выполняют запланированные сканирования или обходы, сравнивают каждый результат с последним сохранённым снимком и могут уведомлять через вебхук или по электронной почте.
**Лучше всего подходит для:**
- Наблюдения за одной или несколькими страницами в течение времени
- Оповещения о значимых изменениях с использованием цели на простом английском языке
- Отслеживания истории проверок и различий на уровне страниц
**Рекомендуемый шаблон создания:**
Используйте `page` или `pages` вместе с `goal`. MCP-сервер создаёт запрос монитора с 30-минутным расписанием, а API автоматически включает оценку значимых изменений.
Оценка значимых изменений выполняется автоматически, когда установлен `goal`. Вебхуки страниц предоставляют `isMeaningful` и `judgment` в событиях `monitor.page`.
Формулируйте цели как краткие инструкции монитора из 2-3 предложений. Укажите, что должно вызывать оповещение, сохраняйте любую область действия, указанную пользователем, и включайте исключения, специфичные для намерения, только если они очевидны из запроса. Общий шум, такой как пробелы, изменения только форматирования, идентификаторы запросов, параметры отслеживания, общие метаданные и нерелевантный хром страницы, уже обрабатывается оценщиком, поэтому не повторяйте это в каждой цели. Если пользователь неопределён, оставьте цель широкой; если он просит широкий мониторинг или «любые изменения», сохраните это. Если пользователь говорит, что его что-то не волнует, включите это явно.```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Множество страниц с вебхуками:```json { "name": "firecrawl_monitor_create", "arguments": { "pages": ["https://example.com/pricing", "https://example.com/changelog"], "goal": "Alert when pricing, packaging, or launch messaging changes.", "webhookUrl": "https://example.com/webhooks/firecrawl" } }
**Расширенные запросы на создание:**
Передайте `body`, когда вам нужны цели сканирования, отслеживание изменений JSON, настраиваемое хранение или явный контроль `judgeEnabled`.```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"body": {
"name": "Docs monitor",
"schedule": { "text": "hourly", "timezone": "UTC" },
"goal": "Alert when docs pages add, remove, or materially change API behavior.",
"targets": [{ "type": "crawl", "url": "https://example.com/docs" }]
}
}
}
Другие инструменты мониторинга:
firecrawl_monitor_list: список мониторов.firecrawl_monitor_get: получить один монитор.firecrawl_monitor_update: обновить поля, включая goal, judgeEnabled, webhook и notification.firecrawl_monitor_run: запустить проверку сейчас.firecrawl_monitor_delete: удалить монитор (разрушительно; вызывать только когда пользователь намерен удалить его).firecrawl_monitor_checks: список проверок, опционально отфильтрованных по статусу.firecrawl_monitor_check: получить результаты на уровне страницы, включая diff, snapshot, и .Сервер включает комплексное логирование:
Пример сообщений логов:``` [INFO] Firecrawl MCP Server initialized successfully [INFO] Starting scrape for URL: https://example.com [ERROR] Rate limit exceeded
## Обработка ошибок
Сервер обеспечивает надежную обработку ошибок:
- Ошибки ограничения частоты запросов API, передаваемые клиенту MCP
- Подробные сообщения об ошибках
- Устойчивость к сетевым сбоям
Пример ответа с ошибкой:```json
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded"
}
],
"isError": true
}
npm install
npm run build
npm test
### Вклад в проект
1. Сделайте форк репозитория
2. Создайте ветку для вашей функции
3. Запустите тесты: `npm test`
4. Отправьте pull request
### Благодарности участникам
Спасибо [@vrknetha](https://github.com/vrknetha), [@cawstudios](https://caw.tech) за первоначальную реализацию!
Спасибо MCP.so и Klavis AI за хостинг, а также [@gstarwd](https://github.com/gstarwd), [@xiangkaiz](https://github.com/xiangkaiz) и [@zihaolin96](https://github.com/zihaolin96) за интеграцию нашего сервера.
## Лицензия
Лицензия MIT - подробности в файле LICENSE
| Инструмент | Лучше всего подходит для | Возвращает |
|---|
| scrape | Извлечение содержимого одной страницы | JSON (предпочтительно) или markdown |
| interact | Взаимодействие с URL или спарсенной страницей | Результат выполнения + scrapeId для режима URL |
| map | Обнаружение URL-адресов на сайте | URL[] |
| crawl | Многостраничное извлечение (с ограничениями) | Финальные статус/данные crawl после внутреннего опроса |
| parse | Файлы и ссылки на загруженные объекты | markdown, JSON или документ |
| extract | Структурированное извлечение из URL | JSON структурированные данные |
| search | Поиск информации в интернете | results[] |
| agent | Комплексное многоисточниковое исследование | JSON (структурированные данные) |
| monitor | Периодические проверки страниц | Метаданные проверки и различия |
| research | Исследование статей и репозиториев GitHub | Результаты исследования и совпадения репозиториев |
judgment.meaningfuljudgment.meaningfulChanges