使用说明
项目简介
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 应用环境中。
- 可配置工具集: 可以根据需要选择启用或禁用特定的工具,例如只包含抓取工具,减少资源占用。
安装步骤
-
安装 Rust 和 Cargo: 确保你的开发环境中已安装 Rust 编程语言及其包管理器 Cargo。你可以访问 Rust 官网 按照指引进行安装。
-
克隆仓库: 使用 Git 克隆 'firecrawl-sdk' 仓库到本地:
git clone https://github.com/washanhanzi/firecrawl-sdk.git cd firecrawl-sdk -
编译 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。
基本使用方法
-
启动 Firecrawl MCP Server: 根据上述配置,使用 MCP 客户端启动 Firecrawl MCP Server。服务器成功启动后,会监听指定的传输通道(stdio 或 SSE)。
-
LLM 客户端调用工具: LLM 客户端通过 MCP 协议与 Firecrawl MCP Server 通信,可以调用以下工具:
- 'firecrawl_scrape': 网页抓取
- 'firecrawl_batch_scrape': 批量网页抓取
- 'firecrawl_crawl': 网页爬虫
- 'firecrawl_map': 网站地图
- 'firecrawl_search': 网页搜索
客户端需要构造符合 MCP 协议的 JSON-RPC 请求,指定要调用的工具名称和参数。具体的工具输入参数 schema 可以通过 MCP 的 'listTools' 方法获取。
-
接收响应: 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