使用说明

项目简介

Firecrawl MCP Server 是一个基于 Rust 开发的 MCP (Model Context Protocol) 服务器,它基于 Firecrawl SDK,将网页抓取、爬虫和搜索能力通过 MCP 协议暴露出来,使得 LLM 客户端能够以标准化的方式调用这些功能。

主要功能点

  • 提供网页抓取工具 (scrape): 允许 LLM 客户端抓取指定网页的内容,并支持多种输出格式,如 Markdown, HTML 等。
  • 提供批量网页抓取工具 (batch_scrape): 支持批量抓取多个网页,提高效率。
  • 提供网页爬虫工具 (crawl): 允许 LLM 客户端从指定 URL 开始进行网页爬取,并可控制爬取深度和范围。
  • 提供网站地图工具 (map): 允许 LLM 客户端发现网站的 URL 结构,用于网站导航和数据采集。
  • 提供网页搜索工具 (search): 允许 LLM 客户端进行网页搜索,并返回搜索结果或抓取结果。
  • 支持多种传输协议: 支持 Stdio, SSE 等传输协议,方便集成到不同的 LLM 应用环境中。
  • 可配置工具集: 可以根据需要选择启用或禁用特定的工具,例如只包含抓取工具,减少资源占用。

安装步骤

  1. 安装 Rust 和 Cargo: 确保你的开发环境中已安装 Rust 编程语言及其包管理器 Cargo。你可以访问 Rust 官网 按照指引进行安装。

  2. 克隆仓库: 使用 Git 克隆 'firecrawl-sdk' 仓库到本地:

    git clone https://github.com/washanhanzi/firecrawl-sdk.git
    cd firecrawl-sdk
  3. 编译 Firecrawl MCP Server: 根据你希望使用的传输协议和工具集,选择合适的编译命令。

    • 编译包含所有工具的 stdio 传输服务器:

      cargo build --package firecrawl-mcp --bin std_io
    • 编译包含所有工具的 sse 传输服务器:

      cargo build --package firecrawl-mcp --bin sse
    • 编译仅包含 scrape 工具的 sse 传输服务器:

      cargo build --package firecrawl-mcp --bin sse --no-default-features --features scrape

      你可以根据需要调整 '--features' 参数来选择包含的工具,可选 features 包括 'batch_scrape', 'crawl', 'map', 'scrape', 'search'。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 Firecrawl MCP Server 建立连接。以下是不同传输协议和工具配置的示例配置信息 (JSON 格式)。

注意: 你需要将 '<Your Firecrawl API Key>' 替换为你自己的 Firecrawl API Key,并根据需要配置 'PORT' 环境变量。

1. Stdio 传输 (包含所有工具)

{
  "serverName": "firecrawl-mcp-stdio",
  "command": "cargo",
  "args": [
    "run",
    "--package",
    "firecrawl-mcp",
    "--bin",
    "std_io"
  ],
  "env": {
    "FIRECRAWL_API_KEY": "<Your Firecrawl API Key>"
  }
}

参数注释:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动命令,这里使用 'cargo'。
  • 'args': Cargo 运行参数,指定运行 'firecrawl-mcp' 包的 'std_io' 二进制文件。
  • 'env': 环境变量配置,'FIRECRAWL_API_KEY' 必须设置为你的 Firecrawl API Key。

2. SSE 传输 (包含所有工具, 默认端口 3000)

{
  "serverName": "firecrawl-mcp-sse",
  "command": "cargo",
  "args": [
    "run",
    "--package",
    "firecrawl-mcp",
    "--bin",
    "sse"
  ],
  "env": {
    "FIRECRAWL_API_KEY": "<Your Firecrawl API Key>",
    "PORT": "3000"  // 可选,默认端口为 3000
  }
}

参数注释:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动命令,这里使用 'cargo'。
  • 'args': Cargo 运行参数,指定运行 'firecrawl-mcp' 包的 'sse' 二进制文件。
  • 'env': 环境变量配置:
    • 'FIRECRAWL_API_KEY': 必须设置为你的 Firecrawl API Key。
    • 'PORT': 可选,用于指定 SSE 服务器监听的端口,默认为 3000。

3. SSE 传输 (仅包含 scrape 工具, 端口 3001)

{
  "serverName": "firecrawl-mcp-sse-scrape-only",
  "command": "cargo",
  "args": [
    "run",
    "--package",
    "firecrawl-mcp",
    "--bin",
    "sse",
    "--",
    "--no-default-features",
    "--features",
    "scrape"
  ],
  "env": {
    "FIRECRAWL_API_KEY": "<Your Firecrawl API Key>",
    "PORT": "3001" // 自定义端口为 3001
  }
}

参数注释:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动命令,这里使用 'cargo'。
  • 'args': Cargo 运行参数,指定运行 'firecrawl-mcp' 包的 'sse' 二进制文件,并使用 '--no-default-features --features scrape' 参数来仅启用 'scrape' 工具。
  • 'env': 环境变量配置:
    • 'FIRECRAWL_API_KEY': 必须设置为你的 Firecrawl API Key。
    • 'PORT': 可选,自定义 SSE 服务器监听端口为 3001。

基本使用方法

  1. 启动 Firecrawl MCP Server: 根据上述配置,使用 MCP 客户端启动 Firecrawl MCP Server。服务器成功启动后,会监听指定的传输通道(stdio 或 SSE)。

  2. LLM 客户端调用工具: LLM 客户端通过 MCP 协议与 Firecrawl MCP Server 通信,可以调用以下工具:

    • 'firecrawl_scrape': 网页抓取
    • 'firecrawl_batch_scrape': 批量网页抓取
    • 'firecrawl_crawl': 网页爬虫
    • 'firecrawl_map': 网站地图
    • 'firecrawl_search': 网页搜索

    客户端需要构造符合 MCP 协议的 JSON-RPC 请求,指定要调用的工具名称和参数。具体的工具输入参数 schema 可以通过 MCP 的 'listTools' 方法获取。

  3. 接收响应: Firecrawl MCP Server 执行工具后,会将结果封装成 MCP 协议的 JSON-RPC 响应返回给 LLM 客户端。

示例 (假设使用 'firecrawl_scrape' 工具)

LLM 客户端可以发送类似以下的 JSON-RPC 请求来调用 'firecrawl_scrape' 工具:

{
  "jsonrpc": "2.0",
  "method": "callTool",
  "params": {
    "name": "firecrawl_scrape",
    "arguments": {
      "url": "https://example.com",
      "options": {
        "formats": ["markdown"]
      }
    }
  },
  "id": 1
}

Firecrawl MCP Server 会抓取 'https://example.com' 的内容,并以 Markdown 格式返回结果。

请参考 Model Context Protocol (MCP) 官方文档rmcp-rs 仓库 了解更多关于 MCP 协议和 Rust MCP Server 开发的细节。

信息

分类

网页与API