firecrawl-mcp-server
firecrawl-mcp-server 是一款基于模型上下文协议(MCP)构建的开源服务,旨在为 Cursor、Claude 等大语言模型客户端赋予强大的网页抓取与搜索能力。它充当了 AI 助手与现实互联网之间的桥梁,让 AI 不再局限于训练数据,而是能够实时访问、爬取并理解最新的网页内容。
这一工具主要解决了大模型无法直接获取实时网络信息以及传统爬虫集成难度高的问题。通过它,用户只需在对话中描述需求,AI 即可自动执行复杂的网页抓取、内容提取、深度研究甚至批量扫描任务,无需手动编写繁琐的爬虫代码或处理反爬机制。
firecrawl-mcp-server 特别适合开发者、数据研究人员以及希望提升 AI 工作流效率的技术人员使用。无论是需要快速收集竞品数据的研究员,还是希望在 IDE 中直接让 AI 辅助查阅最新文档的程序员,都能从中受益。
其技术亮点在于支持云端浏览器会话与智能体自动化,能够模拟真实用户行为以应对动态网页;同时具备自动重试、速率限制控制以及 SSE(服务器发送事件)支持,确保数据采集的稳定性和实时性。此外,它不仅提供云服务接入,也支持本地自部署,兼顾了灵活性与数据隐私安全。配置过程简单,仅需少量命令或 JSON 配置即可在主流 AI 开发环境中启用,极大地降低了将实时网络数据引入大模型应用的门槛。
使用场景
一位市场数据分析师需要在两小时内为 AI 产品撰写一份关于“竞品最新定价策略与功能更新”的深度报告,必须基于数十个竞争对手的官方网站实时数据。
没有 firecrawl-mcp-server 时
- 人工采集效率极低:需要手动打开几十个网页复制粘贴内容,耗时数小时且容易遗漏关键信息。
- 动态内容无法获取:许多竞品网站采用 JavaScript 动态渲染,传统简单的爬虫脚本或复制操作无法抓取完整内容。
- 数据格式混乱难用:抓取的 HTML 代码包含大量噪音,LLM 直接阅读会受干扰,需额外编写清洗脚本。
- 上下文割裂:在编辑器中写报告时,需频繁切换浏览器查找资料,打断创作思路,难以让 AI 助手直接基于最新网页内容生成分析。
使用 firecrawl-mcp-server 后
- 一键批量抓取:在 Cursor 或 Claude 中直接指令“抓取以下 20 个竞品的定价页”,firecrawl-mcp-server 自动并发完成所有页面的爬取与提取。
- 完美渲染动态页面:内置云浏览器会话自动处理 JavaScript 渲染,确保获取到与真实用户所见一致的完整文本和结构化数据。
- 原生洁净数据输入:自动将网页转换为 LLM 易读的 Markdown 格式,去除广告和导航栏噪音,让模型专注于核心业务逻辑分析。
- 工作流无缝闭环:直接在 IDE 内调用工具获取数据并立即生成对比表格和趋势分析,无需离开代码环境,实现“搜索 - 分析 - 写作”一气呵成。
firecrawl-mcp-server 将原本需要数小时的人工调研工作压缩至分钟级,让开发者能直接在编码环境中利用实时全网数据驱动智能决策。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Firecrawl MCP 服务器
一个与 Firecrawl 集成的模型上下文协议 (MCP) 服务器实现,用于网络爬取功能。
非常感谢 @vrknetha 和 @knacklabs 的初始实现!
特性
- 网络爬取、抓取和发现
- 搜索与内容提取
- 深度研究与批量爬取
- 带有代理浏览器自动化的云端浏览器会话
- 自动重试与速率限制
- 云服务与自托管支持
- SSE 支持
您可以在 MCP.so 的 Playground 或 Klavis AI 上体验我们的 MCP 服务器。
安装
使用 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.48.6 中配置 Firecrawl MCP:
- 打开 Cursor 设置
- 转到“功能” > “MCP 服务器”
- 点击“+ 添加新的全局 MCP 服务器”
- 输入以下代码:
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
在 Cursor v0.45.6 中配置 Firecrawl MCP:
- 打开 Cursor 设置
- 转到“功能” > “MCP 服务器”
- 点击“+ 添加新 MCP 服务器”
- 输入以下内容:
- 名称:“firecrawl-mcp”(或您喜欢的名称)
- 类型:“命令”
- 命令:
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 密钥。如果您还没有密钥,可以访问 https://www.firecrawl.dev/app/api-keys 创建账户并获取密钥。
添加完成后,刷新 MCP 服务器列表即可看到新工具。Composer 代理会在适当的时候自动使用 Firecrawl MCP,但您也可以通过描述您的网页抓取需求来明确请求它。通过 Command+L(Mac)打开 Composer,选择提交按钮旁边的“代理”,然后输入您的查询。
在 Windsurf 中运行
将以下内容添加到您的 ./codeium/windsurf/model_config.json 文件中:
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
使用可流式 HTTP 本地模式运行
要使用可流式 HTTP 在本地运行服务器,而不是默认的 stdio 传输方式:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
使用 URL:http://localhost:3000/mcp
通过 Smithery 安装(旧版)
要通过 Smithery 自动为 Claude Desktop 安装 Firecrawl:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
在 VS Code 中运行
如需一键安装,请点击下方的安装按钮之一……
如需手动安装,请将以下 JSON 块添加到 VS Code 的用户设置 (JSON) 文件中。您可以通过按 Ctrl + Shift + P 并输入“Preferences: Open User Settings (JSON)”来完成此操作。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password":true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
}
或者,您可以将其添加到工作区中的 .vscode/mcp.json 文件中。这样就可以与他人共享配置:
{
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password":true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
配置
环境变量
云 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=您的 API 密钥
# 可选的重试配置
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.您的域名.com
# 自托管的可选认证
export FIRECRAWL_API_KEY=您的 API 密钥 # 如果您的实例需要认证
# 自定义重试配置
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": "您的 API 密钥",
"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 内置的速率限制和批处理功能:
- 自动处理速率限制并采用指数退避
- 高效的并行处理用于批处理操作
- 智能请求排队和节流
- 自动重试临时性错误
如何选择工具
请使用本指南来为您的任务选择合适的工具:
- 如果您知道确切的目标 URL:
- 单个 URL:使用 scrape(推荐 JSON 格式以获取结构化数据)
- 多个 URL:使用 batch_scrape
- 如果您需要发现网站上的 URL: 使用 map
- 如果您想在网络上搜索信息: 使用 search
- 如果您需要跨多个未知来源进行复杂研究: 使用 agent
- 如果您需要分析整个网站或部分页面: 使用 crawl(请注意限制!)
- 如果您需要交互式的浏览器自动化操作(点击、输入、导航):使用 scrape + interact
- 如果您需要原始的 CDP 浏览器会话(高级用法):使用 browser(已弃用)
快速参考表
| 工具 | 最适合场景 | 返回结果 |
|---|---|---|
| scrape | 提取单个页面内容 | JSON(推荐)或 Markdown |
| interact | 与已抓取的页面进行交互 | 执行结果 |
| batch_scrape | 提取多个已知 URL 的内容 | JSON(推荐)或 Markdown[] |
| map | 发现网站上的 URL | URL[] |
| crawl | 多页内容提取(有限制) | Markdown/HTML[] |
| search | 在网络上搜索信息 | 搜索结果[] |
| agent | 复杂的多源研究 | JSON(结构化数据) |
| browser | 交互式多步骤自动化(已弃用) | 包含实时浏览器的会话 |
格式选择指南
在使用 scrape 或 batch_scrape 时,请选择合适的格式:
- JSON 格式(大多数情况下推荐): 当您需要从页面中提取特定数据时使用。根据所需内容定义模式,这样可以保持响应较小,并避免上下文窗口溢出。
- Markdown 格式(谨慎使用): 仅在确实需要完整页面内容时使用,例如阅读整篇文章以进行摘要或分析页面结构。
1. 抓取工具(firecrawl_scrape)
从单个 URL 抓取内容,并提供高级选项。
最适合:
- 单页内容提取,当你确切知道哪一页包含所需信息时。
不建议用于:
- 从多个页面提取内容(对于已知 URL,请使用 batch_scrape;若需先发现 URL,则可结合 map 和 batch_scrape;如需完整页面内容,可使用 crawl)
- 当不确定哪一页包含所需信息时(请使用 search)。
常见错误:
- 将 scrape 用于 URL 列表(应改用 batch_scrape)。
- 默认使用 Markdown 格式(应使用 JSON 格式以仅提取所需内容)。
选择合适的格式:
- JSON 格式(推荐): 对于大多数场景,建议使用带有 Schema 的 JSON 格式来提取特定数据。这样可以确保响应聚焦,避免上下文窗口溢出。
- Markdown 格式: 仅在任务确实需要完整页面内容时使用(例如,总结整篇文章或分析页面结构)。
提示示例:
“从 https://example.com/product 获取产品详情。”
使用示例(JSON 格式——推荐):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/product",
"formats": [{
"type": "json",
"prompt": "提取产品信息",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
}
}]
}
}
使用示例(Markdown 格式——当需要完整内容时):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
使用示例(品牌化格式——提取品牌标识):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["branding"]
}
}
品牌化格式: 提取全面的品牌标识(颜色、字体、排版、间距、Logo、UI 组件等),用于设计分析或样式复刻。
返回值:
- 按指定格式返回 JSON 结构化数据、Markdown 内容、品牌档案或其他格式。
2. 批量抓取工具(firecrawl_batch_scrape)
高效抓取多个 URL,内置速率限制和并行处理功能。
最适合:
- 从多个页面获取内容,且你确切知道要抓取哪些页面时。
不建议用于:
- 发现 URL(如果不知道 URL,请先使用 map)。
- 抓取单个页面(请使用 scrape)。
常见错误:
- 一次性使用 batch_scrape 抓取过多 URL(可能导致速率限制或令牌溢出)。
提示示例:
“获取以下三篇博客文章的内容:[url1, url2, url3]。”
使用示例:
{
"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_map)
映射一个网站,以发现该站点上所有已索引的 URL。
最适合:
- 在决定抓取哪些内容之前,先发现网站上的 URL。
- 查找网站的特定部分。
不建议用于:
- 当你已经知道需要的具体 URL 时(请使用 scrape 或 batch_scrape)。
- 当你需要页面内容时(请在映射后使用 scrape)。
常见错误:
- 使用 crawl 来发现 URL,而不是 map。
提示示例:
“列出 example.com 上的所有 URL。”
使用示例:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
返回值:
- 该站点上找到的 URL 数组。
5. 搜索工具(firecrawl_search)
在网络上进行搜索,并可选择性地从搜索结果中提取内容。
最适合:
- 在多个网站上查找特定信息,且不确定哪个网站包含所需信息时。
- 当你需要针对查询的最相关内容时。
不建议用于:
- 当你已经知道要抓取哪个网站时(请使用 scrape)。
- 当你需要对单个网站进行全面覆盖时(请使用 map 或 crawl)。
常见错误:
- 对开放式问题使用 crawl 或 map(应改用 search)。
使用示例:
{
"name": "firecrawl_search",
"arguments": {
"query": "2023 年最新的 AI 研究论文",
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}
返回值:
- 搜索结果数组(可选包含抓取的内容)。
提示示例:
“查找 2023 年发表的最新 AI 研究论文。”
6. 爬取工具(firecrawl_crawl)
启动网站的异步爬取作业,并提取所有页面的内容。
最适合:
- 从多个相关页面提取内容,且需要全面覆盖时。
不建议用于:
- 抓取单个页面(请使用 scrape)。
- 当令牌限制成为问题时(请使用 map + batch_scrape)。
- 当需要快速结果时(爬取可能较慢)。
警告: 爬取响应可能非常庞大,容易超出令牌限制。请限制爬取深度和页面数量,或使用 map + batch_scrape 以更好地控制。
常见错误:
- 设置 limit 或 maxDepth 过高(会导致令牌溢出)。
- 对单个页面使用 crawl(应改用 scrape)。
提示示例:
“获取 example.com/blog 前两层的所有博客文章。”
使用示例:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
返回值:
- 响应包含操作 ID,用于检查状态:
{
"content": [
{
"type": "text",
"text": "已开始对:https://example.com/* 进行爬取,作业 ID:550e8400-e29b-41d4-a716-446655440000。请使用 firecrawl_check_crawl_status 检查进度。"
}
],
"isError": false
}
7. 检查爬取状态(firecrawl_check_crawl_status)
检查爬取作业的状态。
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
返回值:
- 响应包含爬取作业的状态:
8. 提取工具 (firecrawl_extract)
使用大模型能力从网页中提取结构化信息。支持云端AI和自托管的大模型提取。
最适合:
- 提取特定的结构化数据,如价格、名称、详情等。
不推荐用于:
- 需要获取页面全部内容时(请使用scrape)
- 不需要提取特定结构化数据时
参数:
urls: 需要提取信息的URL数组prompt: 用于大模型提取的自定义提示词systemPrompt: 引导大模型的系统提示词schema: 用于结构化数据提取的JSON模式allowExternalLinks: 是否允许从外部链接提取enableWebSearch: 是否启用网络搜索以获取更多上下文includeSubdomains: 是否包含子域名的提取
当使用自托管实例时,提取将使用您配置的大模型。对于云API,则会使用Firecrawl的托管大模型服务。 提示词示例:
“从这些产品页面中提取产品名称、价格和描述。”
使用示例:
{
"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
}
9. 代理工具 (firecrawl_agent)
自主网络研究代理。这是一个独立的AI代理层,能够根据您的查询独立浏览互联网、搜索信息、导航页面并提取结构化数据。
工作原理:
代理会自动执行网络搜索、跟随链接、读取页面并收集数据。此过程是异步的——它会立即返回一个作业ID,您可以轮询firecrawl_agent_status来检查完成状态并获取结果。
异步工作流程:
- 使用您的提示词/模式调用
firecrawl_agent→ 返回作业ID - 在代理进行研究的同时,您可以处理其他任务(复杂查询可能需要几分钟)
- 使用作业ID轮询
firecrawl_agent_status以查看进度 - 当状态为“已完成”时,响应中将包含提取的数据
最适合:
- 复杂的研究任务,且您不知道确切的URL
- 多源数据收集
- 寻找分散在全网的信息
- 您可以在等待结果的同时进行其他工作的任务
不推荐用于:
- 简单的单页抓取,且您已知URL(请使用带有JSON格式的scrape——更快更便宜)
参数:
prompt: 您想要的数据的自然语言描述(必填,最多10,000字符)urls: 可选的URL数组,用于让代理专注于特定页面schema: 可选的结构化输出JSON模式
提示词示例:
“找出Firecrawl的创始人及其背景”
使用示例(启动代理后轮询结果):
{
"name": "firecrawl_agent",
"arguments": {
"prompt": "找出2024年成立的前5家AI初创公司及其融资金额",
"schema": {
"type": "object",
"properties": {
"startups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"funding": { "type": "string" },
"founded": { "type": "string" }
}
}
}
}
}
}
}
然后使用返回的作业ID轮询firecrawl_agent_status。
使用示例(带URL——代理专注于特定页面):
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "比较这些页面的功能和定价信息"
}
}
返回结果:
- 用于检查状态的作业ID。使用
firecrawl_agent_status轮询以获取结果。
10. 检查代理状态 (firecrawl_agent_status)
检查代理作业的状态,并在完成后获取结果。在启动代理后,使用此接口轮询结果。
轮询模式: 对于复杂查询,代理研究可能需要几分钟。请定期(例如每10-30秒)轮询此端点,直到状态变为“已完成”或“失败”。
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
可能的状态:
processing: 代理仍在研究中——稍后再试completed: 研究已完成——响应中包含提取的数据failed: 发生了错误
11. 浏览器创建 (firecrawl_browser_create) — 已弃用
已弃用: 建议改用
firecrawl_scrape+firecrawl_interact。Interact允许您先抓取页面,然后再点击、填写表单并导航,而无需手动管理会话。
创建用于交互式自动化的云端浏览器会话。
参数:
ttl: 会话总生命周期,单位为秒(30-3600,可选)activityTtl: 空闲超时时间,单位为秒(10-3600,可选)streamWebView: 是否启用实时视图流(可选)profile: 保存并跨会话重复使用浏览器状态(可选)name: 配置文件名称(同名会话共享状态)saveChanges: 是否将更改保存回配置文件(默认:是)
使用示例:
{
"name": "firecrawl_browser_create",
"arguments": {
"ttl": 600,
"profile": { "name": "my-profile", "saveChanges": true }
}
}
返回结果:
- 会话ID、CDP URL以及实时视图URL
12. 浏览器执行(firecrawl_browser_execute)—— 已弃用
已弃用:建议改用
firecrawl_scrape+firecrawl_interact。
在浏览器会话中执行代码。支持 agent-browser 命令(bash)、Python 或 JavaScript。
推荐:使用带有 agent-browser 命令的 bash(每个沙盒中均已预装):
{
"name": "firecrawl_browser_execute",
"arguments": {
"sessionId": "session-id-here",
"code": "agent-browser open https://example.com",
"language": "bash"
}
}
常见的 agent-browser 命令:
| 命令 | 描述 |
|---|---|
agent-browser open <url> |
导航到指定 URL |
agent-browser snapshot |
包含可点击引用的无障碍树 |
agent-browser click @e5 |
根据快照中的引用点击元素 |
agent-browser type @e3 "text" |
在元素中输入文本 |
agent-browser get title |
获取页面标题 |
agent-browser screenshot |
截取屏幕截图 |
agent-browser --help |
完整命令参考 |
对于 Playwright 脚本,使用 Python:
{
"name": "firecrawl_browser_execute",
"arguments": {
"sessionId": "session-id-here",
"code": "await page.goto('https://example.com')\ntitle = await page.title()\nprint(title)",
"language": "python"
}
}
13. 浏览器列表(firecrawl_browser_list)—— 已弃用
已弃用:建议改用
firecrawl_scrape+firecrawl_interact。
列出浏览器会话,可选择按状态过滤。
{
"name": "firecrawl_browser_list",
"arguments": {
"status": "active"
}
}
14. 浏览器删除(firecrawl_browser_delete)—— 已弃用
已弃用:建议改用
firecrawl_scrape+firecrawl_interact。
销毁一个浏览器会话。
{
"name": "firecrawl_browser_delete",
"arguments": {
"sessionId": "session-id-here"
}
}
日志系统
服务器包含全面的日志记录功能:
- 操作状态和进度
- 性能指标
- 信用使用监控
- 速率限制跟踪
- 错误情况
日志示例:
[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
贡献
- 分支仓库
- 创建你的功能分支
- 运行测试:
npm test - 提交拉取请求
感谢贡献者
感谢 @vrknetha 和 @cawstudios 的初始实现!
同时感谢 MCP.so 和 Klavis AI 的托管支持,以及 @gstarwd、@xiangkaiz 和 @zihaolin96 对我们服务器的集成工作。
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
版本历史
v3.2.12025/09/26v3.2.02025/09/16v3.0.02025/09/11v2.0.02025/08/23v1.12.02025/07/03v1.7.22025/03/27v1.4.12025/03/02v.1.3.32025/02/21v1.2.42025/02/11v1.2.32025/02/10v1.2.22025/02/05v1.2.12025/01/06v1.2.02025/01/03v1.0.22024/12/07v1.0.12024/12/07v1.0.02024/12/06常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。