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
- 打开 Cursor 设置
- 转到 Features > MCP Servers
- 点击 "+ Add New MCP Server"
- 输入以下内容:
- Name: "firecrawl-mcp" (或您喜欢的名称)
- Type: "command"
- Command:
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp
在 Cursor v0.48.6 中配置 Firecrawl MCP
- 打开 Cursor 设置
- 转到 Features > MCP Servers
- 点击 "+ Add new global MCP server"
- 输入以下代码:
{ "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, // 信用使用量达到此级别时发出严重警报
},
};
这些配置控制:
-
重试行为
- 自动重试由于速率限制而失败的请求
- 使用指数退避以避免压垮 API
- 示例:使用默认设置,将尝试以下重试:
- 第一次重试:1 秒延迟
- 第二次重试:2 秒延迟
- 第三次重试:4 秒延迟(上限为 maxDelay)
-
信用使用监控
- 跟踪云 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
贡献
- Fork 仓库
- 创建您的功能分支
- 运行测试:
npm test - 提交 pull request
许可证
MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件
推荐服务器
mult-fetch-mcp-server
一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。
Knowledge Graph Memory Server
为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。
Hyperbrowser
欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
mcp-perplexity
Perplexity API 的 MCP 服务器。
MCP Web Research Server
一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。
YouTube Translate MCP
一个模型上下文协议服务器,可以通过文字稿、翻译、摘要和各种语言的字幕生成来访问 YouTube 视频内容。
PubMedSearch MCP Server
一个模型内容协议(Model Content Protocol)服务器,提供从 PubMed 数据库搜索和检索学术论文的工具。
mcp-codex-keeper
作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。
Perplexity Deep Research MCP
一个服务器,它允许 AI 助手使用 Perplexity 的 sonar-deep-research 模型进行网络搜索,并提供引用支持。