Firecrawl MCP Server

Firecrawl MCP Server

一个模型上下文协议服务器,它使 AI 助手能够通过 Firecrawl API 执行高级网络抓取、爬行、搜索和数据提取。

远程shell执行
内容获取
数据与应用分析
访问服务器

README

Firecrawl MCP 服务器

一个模型上下文协议 (MCP) 服务器实现,它与 Firecrawl 集成,以实现网络抓取功能。

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

功能

  • 支持抓取、爬取、搜索、提取、深度研究和批量抓取
  • 使用 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 中配置 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

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

your-api-key 替换为您的 FireCrawl API 密钥。

添加后,刷新 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_HERE"
      }
    }
  }
}

通过 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": "您的搜索查询",
    "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": "提取产品信息,包括名称、价格和描述",
    "systemPrompt": "您是一个有用的助手,可以提取产品信息",
    "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": "示例产品",
        "price": 99.99,
        "description": "这是一个示例产品描述"
      }
    }
  ],
  "isError": false
}

提取工具选项:

  • urls: 要从中提取信息的 URL 数组
  • prompt: 用于 LLM 提取的自定义提示
  • systemPrompt: 用于指导 LLM 的系统提示
  • schema: 用于结构化数据提取的 JSON 模式
  • allowExternalLinks: 允许从外部链接提取
  • enableWebSearch: 启用网络搜索以获取更多上下文
  • includeSubdomains: 在提取中包含子域

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

日志系统

服务器包括全面的日志记录:

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

示例日志消息:

[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 文件

推荐服务器

VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
mult-fetch-mcp-server

mult-fetch-mcp-server

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

精选
本地
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

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

精选
本地
Hyperbrowser

Hyperbrowser

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

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选
Exa MCP Server

Exa MCP Server

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

精选
BigQuery MCP Server

BigQuery MCP Server

这是一个服务器,可以让你的大型语言模型(LLM,比如Claude)直接与你的BigQuery数据对话!可以把它想象成一个友好的翻译器,它位于你的AI助手和数据库之间,确保它们可以安全高效地进行交流。

精选