使用说明

项目简介

Firecrawl MCP服务器是一个基于 Model Context Protocol (MCP) 的应用后端,它集成了 Firecrawl 网页抓取 API,为LLM客户端提供强大的网页内容抓取和结构化数据提取功能。通过该服务器,LLM应用可以轻松地从互联网获取信息,并按照预定义的结构进行解析和利用。

主要功能点

  • 网页抓取 (Website Scraping): 支持抓取指定URL的网页内容,并可选择多种输出格式,如 Markdown, HTML, 纯文本。
  • 结构化数据提取 (Structured Data Extraction): 允许用户定义Prompt和Schema,从指定网页中提取符合Schema的结构化数据,方便LLM进行理解和应用。
  • 错误追踪 (Error Tracking): 集成了 Sentry 错误追踪服务,帮助开发者监控和调试服务器运行状态。

安装步骤

  1. 安装依赖: 确保已安装 Node.js 和 npm,然后克隆仓库到本地,并在项目根目录下运行以下命令安装项目依赖:

    npm install
  2. 配置环境变量: 在项目根目录下创建 '.env' 文件,并填入以下环境变量:

    FIRECRAWL_API_TOKEN=您的_Firecrawl_API_令牌
    SENTRY_DSN=您的_Sentry_DSN (可选,用于错误追踪)
    • 'FIRECRAWL_API_TOKEN':必需。您的 Firecrawl API 令牌,用于访问 Firecrawl 服务。请前往 Firecrawl 官网获取。
    • 'SENTRY_DSN':可选。您的 Sentry DSN (Data Source Name),用于错误追踪和性能监控。如果您不需要错误追踪功能,可以忽略此项。
  3. 启动服务器: 在项目根目录下运行以下命令启动 MCP 服务器:

    npm start

    或者,您也可以直接在命令行中设置环境变量并启动服务器:

    FIRECRAWL_API_TOKEN=您的_Firecrawl_API_令牌 npm start

服务器配置 (MCP 客户端)

要使 MCP 客户端连接到 Firecrawl MCP 服务器,您需要提供以下配置信息。以下是一个 JSON 格式的配置示例,您可以将其添加到您的 MCP 客户端配置中:

{
  "serverName": "Firecrawl-MCP-Server",
  "command": "npm",
  "args": ["start"],
  "options": {
    "env": {
      "FIRECRAWL_API_TOKEN": "<请替换为您的 Firecrawl API 令牌>"
      // "SENTRY_DSN": "<请替换为您的 Sentry DSN (可选)>"
    },
    "cwd": "<Firecrawl-MCP-Server 仓库的本地路径>"
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,例如 "Firecrawl-MCP-Server"。
  • 'command': 启动服务器的命令,这里是 'npm',因为我们使用 'npm start' 启动服务器。
  • 'args': 传递给 'command' 的参数,这里是 '["start"]',表示执行 'npm start' 命令。
  • 'options': 可选的配置选项,用于更精细地控制服务器启动环境。
    • 'env': 设置环境变量。请务必将 '<请替换为您的 Firecrawl API 令牌>' 替换为您的实际 Firecrawl API 令牌。 如果您配置了 Sentry,请取消 'SENTRY_DSN' 的注释并替换为您的 Sentry DSN。
    • 'cwd': 请务必将 '<Firecrawl-MCP-Server 仓库的本地路径>' 替换为您本地 Firecrawl-MCP-Server 仓库的绝对路径。 例如 '/Users/yourusername/Documents/mcp-firecrawl-tool'。 这确保 MCP 客户端在正确的目录下启动服务器。

基本使用方法

启动服务器后,您可以使用 MCP 客户端(例如 'mcp-inspector')与 Firecrawl MCP 服务器进行交互,调用其提供的工具。

1. 网页抓取工具 (scrape-website)

该工具用于抓取指定 URL 的网页内容。

参数:

  • 'url' (string, 必需): 要抓取的网页 URL。
  • 'formats' (array of strings, 可选): 期望的输出格式数组,默认为 '["markdown"]'。可选格式包括 '"markdown"', '"html"', '"text"'。

使用示例 (mcp-inspector):

# 基本使用 (默认 Markdown 格式)
mcp-inspector --tool scrape-website --args '{"url": "https://example.com"}'

# 指定多种输出格式
mcp-inspector --tool scrape-website --args '{"url": "https://example.com", "formats": ["markdown", "html", "text"]}'

2. 结构化数据提取工具 (extract-data)

该工具用于从指定 URL 提取结构化数据。

参数:

  • 'urls' (array of strings, 必需): 要提取数据的网页 URL 数组。
  • 'prompt' (string, 必需): 描述需要提取的数据的 Prompt 文本。
  • 'schema' (object, 必需): 描述数据结构的 Schema 定义。Schema 支持 string, boolean, number, 数组和嵌套对象类型。

使用示例 (mcp-inspector):

# 提取公司信息示例
mcp-inspector --tool extract-data --args '{
  "urls": ["https://example.com"],
  "prompt": "提取公司使命、是否支持SSO以及是否开源。",
  "schema": {
    "company_mission": "string",
    "supports_sso": "boolean",
    "is_open_source": "boolean"
  }
}'

# 提取产品信息的复杂示例
mcp-inspector --tool extract-data --args '{
  "urls": ["https://example.com/products", "https://example.com/pricing"],
  "prompt": "提取产品信息,包括名称、价格和特性。",
  "schema": {
    "products": [{
      "name": "string",
      "price": "number",
      "features": ["string"]
    }]
  }
}'

请根据您的实际需求选择合适的工具和参数,并参考 Firecrawl 官方文档了解更多关于 Firecrawl API 的信息。

信息

分类

网页与API