Сервер Firecrawl MCP
Реализация сервера Model Context Protocol (MCP), которая интегрируется с Firecrawl для обеспечения возможностей веб-скрапинга.
Большое спасибо @vrknetha и @knacklabs за первоначальную реализацию!
Функции
Веб-скрапинг, сканирование и обнаружение
Поиск и извлечение контента
Глубокое исследование и пакетный сбор данных
Автоматические повторные попытки и ограничение скорости
Поддержка в облаке и на собственном хостинге
Поддержка SSE
Поэкспериментируйте с нашим MCP-сервером на игровой площадке MCP.so или на Klavis AI .
Related MCP server: WebSearch
Установка
Работает с npx
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcpРучная установка
npm install -g firecrawl-mcpРаботает на курсоре
Настройка Cursor 🖥️ Примечание: требуется Cursor версии 0.45.6+. Для получения самых последних инструкций по настройке обратитесь к официальной документации Cursor по настройке серверов MCP: Руководство по настройке сервера Cursor MCP
Чтобы настроить Firecrawl MCP в Cursor v0.48.6
Открыть настройки курсора
Перейти к разделу «Функции» > «Серверы MCP»
Нажмите «+ Добавить новый глобальный сервер MCP»
Введите следующий код:
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
Чтобы настроить Firecrawl MCP в Cursor v0.45.6
Открыть настройки курсора
Перейти к разделу «Функции» > «Серверы MCP»
Нажмите «+ Добавить новый сервер MCP»
Введите следующее:
Имя: "firecrawl-mcp" (или другое предпочитаемое вами имя)
Тип: "команда"
Команда:
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, чтобы увидеть новые инструменты. Composer Agent автоматически использует Firecrawl MCP, когда это уместно, но вы можете явно запросить его, описав свои потребности в веб-скрапинге. Откройте Composer с помощью Command+L (Mac), выберите «Agent» рядом с кнопкой «Отправить» и введите свой запрос.
Бег на виндсерфинге
Добавьте это в ваш ./codeium/windsurf/model_config.json :
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}Работает в локальном режиме SSE
Чтобы запустить сервер с использованием Server-Sent Events (SSE) локально вместо транспорта stdio по умолчанию:
env SSE_LOCAL=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcpИспользуйте URL: http://localhost:3000/sse
Установка через Smithery (Legacy)
Чтобы автоматически установить Firecrawl для Claude Desktop через Smithery :
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claudeРаботает на VS Code
Для установки в один клик нажмите одну из кнопок установки ниже...
Для ручной установки добавьте следующий блок JSON в файл настроек пользователя (JSON) в VS Code. Это можно сделать, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (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 в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими:
{
"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}"
}
}
}
}Конфигурация
Переменные среды
Требуется для облачного API
FIRECRAWL_API_KEY: Ваш ключ API FirecrawlТребуется при использовании облачного API (по умолчанию)
Необязательно при использовании размещенного на собственном сервере экземпляра с
FIRECRAWL_API_URL
FIRECRAWL_API_URL(необязательно): конечная точка пользовательского API для экземпляров, размещенных на собственном сервереПример:
https://firecrawl.your-domain.comЕсли не указано иное, будет использоваться облачный API (требуется ключ API)
Дополнительная конфигурация
Повторить конфигурацию
FIRECRAWL_RETRY_MAX_ATTEMPTS: Максимальное количество повторных попыток (по умолчанию: 3)FIRECRAWL_RETRY_INITIAL_DELAY: Начальная задержка в миллисекундах перед первой повторной попыткой (по умолчанию: 1000)FIRECRAWL_RETRY_MAX_DELAY: Максимальная задержка в миллисекундах между повторными попытками (по умолчанию: 10000)FIRECRAWL_RETRY_BACKOFF_FACTOR: Экспоненциальный множитель задержки (по умолчанию: 2)
Мониторинг использования кредита
FIRECRAWL_CREDIT_WARNING_THRESHOLD: Порог предупреждения об использовании кредита (по умолчанию: 1000)FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: Критический порог использования кредита (по умолчанию: 100)
Примеры конфигурации
Для использования облачного API с настраиваемыми повторными попытками и кредитным мониторингом:
# Required for cloud API
export FIRECRAWL_API_KEY=your-api-key
# Optional retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5 # Increase max retry attempts
export FIRECRAWL_RETRY_INITIAL_DELAY=2000 # Start with 2s delay
export FIRECRAWL_RETRY_MAX_DELAY=30000 # Maximum 30s delay
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3 # More aggressive backoff
# Optional credit monitoring
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000 # Warning at 2000 credits
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500 # Critical at 500 creditsДля экземпляра, размещенного самостоятельно:
# Required for self-hosted
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com
# Optional authentication for self-hosted
export FIRECRAWL_API_KEY=your-api-key # If your instance requires auth
# Custom retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500 # Start with faster retriesИспользование с Claude Desktop
Добавьте это в ваш claude_desktop_config.json :
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE",
"FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
"FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
"FIRECRAWL_RETRY_MAX_DELAY": "30000",
"FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",
"FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
"FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
}
}
}
}Конфигурация системы
Сервер включает несколько настраиваемых параметров, которые можно задать через переменные среды. Вот значения по умолчанию, если они не настроены:
const CONFIG = {
retry: {
maxAttempts: 3, // Number of retry attempts for rate-limited requests
initialDelay: 1000, // Initial delay before first retry (in milliseconds)
maxDelay: 10000, // Maximum delay between retries (in milliseconds)
backoffFactor: 2, // Multiplier for exponential backoff
},
credit: {
warningThreshold: 1000, // Warn when credit usage reaches this level
criticalThreshold: 100, // Critical alert when credit usage reaches this level
},
};Эти конфигурации контролируют:
Повторное поведение
Автоматически повторяет неудачные запросы из-за ограничений по скорости
Использует экспоненциальную задержку, чтобы избежать перегрузки API.
Пример: При настройках по умолчанию повторные попытки будут предприняты в:
1-я повторная попытка: задержка 1 секунда
2-я повторная попытка: задержка 2 секунды
3-я повторная попытка: задержка 4 секунды (ограничено maxDelay)
Мониторинг использования кредита
Отслеживает потребление кредита API для использования облачного API
Выдает предупреждения при достижении определенных пороговых значений
Помогает предотвратить неожиданные перебои в обслуживании
Пример: С настройками по умолчанию:
Предупреждение об оставшихся 1000 кредитах
Критическая тревога при оставшихся 100 кредитах
Ограничение скорости и пакетная обработка
Сервер использует встроенные возможности Firecrawl по ограничению скорости и пакетной обработке:
Автоматическая обработка ограничения скорости с экспоненциальным откатом
Эффективная параллельная обработка для пакетных операций
Интеллектуальная очередь запросов и регулирование
Автоматические повторные попытки при временных ошибках
Доступные инструменты
1. Инструмент для скрейпинга ( firecrawl_scrape )
Извлекайте контент из одного URL-адреса с помощью расширенных параметров.
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown"],
"onlyMainContent": true,
"waitFor": 1000,
"timeout": 30000,
"mobile": false,
"includeTags": ["article", "main"],
"excludeTags": ["nav", "footer"],
"skipTlsVerification": false
}
}2. Инструмент пакетной обработки данных ( firecrawl_batch_scrape )
Эффективно сканируйте несколько URL-адресов с помощью встроенного ограничения скорости и параллельной обработки.
{
"name": "firecrawl_batch_scrape",
"arguments": {
"urls": ["https://example1.com", "https://example2.com"],
"options": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}Ответ включает идентификатор операции для проверки статуса:
{
"content": [
{
"type": "text",
"text": "Batch operation queued with ID: batch_1. Use firecrawl_check_batch_status to check progress."
}
],
"isError": false
}3. Проверьте статус партии ( firecrawl_check_batch_status )
Проверьте статус пакетной операции.
{
"name": "firecrawl_check_batch_status",
"arguments": {
"id": "batch_1"
}
}4. Инструмент поиска ( firecrawl_search )
Поиск в Интернете и, при необходимости, извлечение контента из результатов поиска.
{
"name": "firecrawl_search",
"arguments": {
"query": "your search query",
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}5. Инструмент сканирования ( firecrawl_crawl )
Запустите асинхронное сканирование с расширенными параметрами.
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}6. Инструмент извлечения ( firecrawl_extract )
Извлечение структурированной информации из веб-страниц с использованием возможностей LLM. Поддерживает как облачное ИИ, так и самостоятельное извлечение LLM.
{
"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
}
}Пример ответа:
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}Параметры инструмента извлечения:
urls: Массив URL-адресов для извлечения информацииprompt: Пользовательский запрос для извлечения LLMsystemPrompt: системное приглашение для руководства LLMschema: схема JSON для извлечения структурированных данныхallowExternalLinks: Разрешить извлечение из внешних ссылокenableWebSearch: включить веб-поиск для дополнительного контекстаincludeSubdomains: Включить поддомены в извлечение
При использовании экземпляра self-hosted извлечение будет использовать ваш настроенный LLM. Для облачного API используется управляемая служба LLM Firecrawl.
7. Инструмент глубокого исследования (firecrawl_deep_research)
Проведите глубокое веб-исследование по запросу с использованием интеллектуального сканирования, поиска и анализа LLM.
{
"name": "firecrawl_deep_research",
"arguments": {
"query": "how does carbon capture technology work?",
"maxDepth": 3,
"timeLimit": 120,
"maxUrls": 50
}
}Аргументы:
запрос (строка, обязательно): исследовательский вопрос или тема для изучения.
maxDepth (число, необязательно): максимальная рекурсивная глубина сканирования/поиска (по умолчанию: 3).
timeLimit (число, необязательно): ограничение времени в секундах для сеанса исследования (по умолчанию: 120).
maxUrls (число, необязательно): максимальное количество URL-адресов для анализа (по умолчанию: 50).
Возврат:
Окончательный анализ, выполненный LLM на основе исследования. (data.finalAnalysis)
Может также включать структурированные мероприятия и источники, используемые в процессе исследования.
8. Инструмент создания LLMs.txt (firecrawl_generate_llmstxt)
Сгенерировать стандартизированный файл llms.txt (и опционально llms-full.txt) для данного домена. Этот файл определяет, как большие языковые модели должны взаимодействовать с сайтом.
{
"name": "firecrawl_generate_llmstxt",
"arguments": {
"url": "https://example.com",
"maxUrls": 20,
"showFullText": true
}
}Аргументы:
url (строка, обязательно): базовый URL-адрес веб-сайта для анализа.
maxUrls (число, необязательно): максимальное количество включаемых URL-адресов (по умолчанию: 10).
showFullText (логическое значение, необязательно): включать ли содержимое llms-full.txt в ответ.
Возврат:
Сгенерированное содержимое файла llms.txt и, опционально, llms-full.txt (data.llmstxt и/или data.llmsfulltxt)
Система регистрации
Сервер включает в себя комплексное ведение журнала:
Статус и ход операции
Показатели производительности
Мониторинг использования кредита
Отслеживание лимита скорости
Ошибочные состояния
Примеры сообщений журнала:
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[INFO] Batch operation queued with ID: batch_1
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...Обработка ошибок
Сервер обеспечивает надежную обработку ошибок:
Автоматические повторные попытки при временных ошибках
Обработка ограничения скорости с отсрочкой
Подробные сообщения об ошибках
Предупреждения об использовании кредита
Устойчивость сети
Пример ответа об ошибке:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}Разработка
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm testВнося вклад
Форк репозитория
Создайте свою ветку функций
Запуск тестов:
npm testОтправить запрос на извлечение
Спасибо всем, кто внес свой вклад
Спасибо @vrknetha , @cawstudios за первоначальную реализацию!
Благодарим MCP.so и Klavis AI за хостинг, а также @gstarwd , @xiangkaiz и @zihaolin96 за интеграцию нашего сервера.
Лицензия
Лицензия MIT — подробности см. в файле LICENSE