mcp-server-firecrawl

mcp-server-firecrawl

一个实现了模型上下文协议 (MCP) 的服务器,并集成了 FireCrawl 以提供高级网页抓取功能。

内容获取
访问服务器

Tools

firecrawl_scrape

Scrape a single webpage with advanced options for content extraction. Supports various formats including markdown, HTML, and screenshots. Can execute custom actions like clicking or scrolling before scraping.

firecrawl_map

Discover URLs from a starting point. Can use both sitemap.xml and HTML link discovery.

firecrawl_crawl

Start an asynchronous crawl of multiple pages from a starting URL. Supports depth control, path filtering, and webhook notifications.

firecrawl_batch_scrape

Scrape multiple URLs in batch mode. Returns a job ID that can be used to check status.

firecrawl_check_batch_status

Check the status of a batch scraping job.

firecrawl_check_crawl_status

Check the status of a crawl job.

firecrawl_search

Search and retrieve content from web pages with optional scraping. Returns SERP results by default (url, title, description) or full page content when scrapeOptions are provided.

firecrawl_extract

Extract structured information from web pages using LLM. Supports both cloud AI and self-hosted LLM extraction.

firecrawl_deep_research

Conduct deep research on a query using web crawling, search, and AI analysis.

README

Firecrawl MCP 服务器

一个模型上下文协议 (MCP) 服务器实现,集成了 Firecrawl,用于提供网页抓取功能。

非常感谢 @vrknetha, @cawstudios 的初始实现!

您也可以在 MCP.so 的 playground 上试用我们的 MCP 服务器。感谢 MCP.so 的托管以及 @gstarwd 集成我们的服务器。

功能

  • 支持抓取、爬取、搜索、提取、深度研究和批量抓取
  • 支持 JS 渲染的网页抓取
  • URL 发现和爬取
  • 带有内容提取的网页搜索
  • 自动重试与指数退避
    • 通过内置速率限制实现高效的批量处理
  • 云 API 的信用使用监控
  • 完善的日志系统
  • 支持云端和自托管 Firecrawl 实例
  • 移动/桌面视口支持
  • 智能内容过滤,支持标签包含/排除

安装

使用 npx 运行

env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

手动安装

npm install -g firecrawl-mcp

在 Cursor 上运行

配置 Cursor 🖥️ 注意:需要 Cursor 版本 0.45.6+ 有关最新的配置说明,请参阅官方 Cursor 文档中关于配置 MCP 服务器的部分: Cursor MCP 服务器配置指南

在 Cursor v0.45.6 中配置 Firecrawl MCP

  1. 打开 Cursor 设置
  2. 转到 Features > MCP Servers
  3. 点击 "+ Add New MCP Server"
  4. 输入以下内容:
    • Name: "firecrawl-mcp" (或您喜欢的名称)
    • Type: "command"
    • Command: env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp

在 Cursor v0.48.6 中配置 Firecrawl MCP

  1. 打开 Cursor 设置
  2. 转到 Features > MCP Servers
  3. 点击 "+ Add new global MCP server"
  4. 输入以下代码:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    

如果您使用的是 Windows 并且遇到问题,请尝试 cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"

your-api-key 替换为您的 Firecrawl API 密钥。如果您还没有密钥,可以创建一个帐户并从 https://www.firecrawl.dev/app/api-keys 获取。

添加后,刷新 MCP 服务器列表以查看新工具。Composer Agent 将在适当的时候自动使用 Firecrawl MCP,但您可以通过描述您的网页抓取需求来显式请求它。通过 Command+L (Mac) 访问 Composer,选择提交按钮旁边的 "Agent",然后输入您的查询。

在 Windsurf 上运行

将其添加到您的 ./codeium/windsurf/model_config.json 中:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

通过 Smithery 安装 (Legacy)

要通过 Smithery 为 Claude Desktop 自动安装 Firecrawl:

npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

配置

环境变量

云 API 必需

  • FIRECRAWL_API_KEY: 您的 Firecrawl API 密钥
    • 使用云 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 使用:

# 云 API 必需
export FIRECRAWL_API_KEY=your-api-key

# 可选重试配置
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5        # 增加最大重试次数
export FIRECRAWL_RETRY_INITIAL_DELAY=2000    # 从 2 秒延迟开始
export FIRECRAWL_RETRY_MAX_DELAY=30000       # 最大 30 秒延迟
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3      # 更激进的退避

# 可选信用监控
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000    # 警告阈值为 2000 信用点
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500    # 临界阈值为 500 信用点

对于自托管实例:

# 自托管必需
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# 自托管的可选身份验证
export FIRECRAWL_API_KEY=your-api-key  # 如果您的实例需要身份验证

# 自定义重试配置
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500     # 从更快的重试开始

与 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, // 速率限制请求的重试次数
    initialDelay: 1000, // 首次重试前的初始延迟(毫秒)
    maxDelay: 10000, // 重试之间的最大延迟(毫秒)
    backoffFactor: 2, // 指数退避的乘数
  },
  credit: {
    warningThreshold: 1000, // 信用使用量达到此级别时发出警告
    criticalThreshold: 100, // 信用使用量达到此级别时发出严重警报
  },
};

这些配置控制:

  1. 重试行为

    • 自动重试由于速率限制而失败的请求
    • 使用指数退避以避免压垮 API
    • 示例:使用默认设置,将尝试以下重试:
      • 第一次重试:1 秒延迟
      • 第二次重试:2 秒延迟
      • 第三次重试:4 秒延迟(上限为 maxDelay)
  2. 信用使用监控

    • 跟踪云 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
    }
  }
}

响应包括用于状态检查的操作 ID:

{
  "content": [
    {
      "type": "text",
      "text": "批量操作已排队,ID 为:batch_1。使用 firecrawl_check_batch_status 检查进度。"
    }
  ],
  "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 功能从网页中提取结构化信息。支持云 AI 和自托管 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: 用于 LLM 提取的自定义提示
  • systemPrompt: 用于指导 LLM 的系统提示
  • schema: 用于结构化数据提取的 JSON 模式
  • allowExternalLinks: 允许从外部链接提取
  • enableWebSearch: 启用网络搜索以获取更多上下文
  • includeSubdomains: 在提取中包含子域

使用自托管实例时,提取将使用您配置的 LLM。对于云 API,它使用 Firecrawl 的托管 LLM 服务。

7. 深度研究工具 (firecrawl_deep_research)

使用智能爬取、搜索和 LLM 分析对查询进行深度网络研究。

{
  "name": "firecrawl_deep_research",
  "arguments": {
    "query": "how does carbon capture technology work?",
    "maxDepth": 3,
    "timeLimit": 120,
    "maxUrls": 50
  }
}

参数:

  • query (string, required): 要探索的研究问题或主题。
  • maxDepth (number, optional): 爬取/搜索的最大递归深度(默认值:3)。
  • timeLimit (number, optional): 研究会话的时间限制(秒)(默认值:120)。
  • maxUrls (number, optional): 要分析的最大 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 (string, required): 要分析的网站的基本 URL。
  • maxUrls (number, optional): 要包含的最大 URL 数(默认值:10)。
  • showFullText (boolean, optional): 是否在响应中包含 llms-full.txt 内容。

返回:

  • 生成的 llms.txt 文件内容以及可选的 llms-full.txt(data.llmstxt 和/或 data.llmsfulltxt)

日志系统

服务器包含完善的日志记录:

  • 操作状态和进度
  • 性能指标
  • 信用使用监控
  • 速率限制跟踪
  • 错误情况

示例日志消息:

[INFO] Firecrawl MCP 服务器已成功初始化
[INFO] 开始抓取 URL:https://example.com
[INFO] 批量操作已排队,ID 为:batch_1
[WARNING] 信用使用量已达到警告阈值
[ERROR] 超出速率限制,将在 2 秒后重试...

错误处理

服务器提供强大的错误处理:

  • 瞬时错误的自动重试
  • 具有退避的速率限制处理
  • 详细的错误消息
  • 信用使用警告
  • 网络弹性

示例错误响应:

{
  "content": [
    {
      "type": "text",
      "text": "错误:超出速率限制。将在 2 秒后重试..."
    }
  ],
  "isError": true
}

开发

# 安装依赖
npm install

# 构建
npm run build

# 运行测试
npm test

贡献

  1. Fork 仓库
  2. 创建您的功能分支
  3. 运行测试: npm test
  4. 提交 pull request

许可证

MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件

推荐服务器

mult-fetch-mcp-server

mult-fetch-mcp-server

一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
mcp-perplexity

mcp-perplexity

Perplexity API 的 MCP 服务器。

精选
MCP Web Research Server

MCP Web Research Server

一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。

精选
YouTube Translate MCP

YouTube Translate MCP

一个模型上下文协议服务器,可以通过文字稿、翻译、摘要和各种语言的字幕生成来访问 YouTube 视频内容。

精选
PubMedSearch MCP Server

PubMedSearch MCP Server

一个模型内容协议(Model Content Protocol)服务器,提供从 PubMed 数据库搜索和检索学术论文的工具。

精选
mcp-codex-keeper

mcp-codex-keeper

作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。

精选
Perplexity Deep Research MCP

Perplexity Deep Research MCP

一个服务器,它允许 AI 助手使用 Perplexity 的 sonar-deep-research 模型进行网络搜索,并提供引用支持。

精选