一个与 Firecrawl 集成的 Model Context Protocol (MCP) 服务器实现,用于网络爬取能力。
感谢 @vrknetha,@knacklabs 的初始实现!
在 MCP.so 的游乐场 或 Klavis AI 上尝试我们的 MCP 服务器。
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
npm install -g firecrawl-mcp
配置 Cursor 🖥️ 注意:需要 Cursor 版本 0.45.6+ 有关最新的配置说明,请参阅官方的 Cursor 文档中的 MCP 服务器配置指南: Cursor MCP 服务器配置指南
在 Cursor v0.48.6 中配置 Firecrawl MCP
{
"mcpServers": {
"firecrawl-mcp": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR-API-KEY"
}
}
}
}
在 Cursor v0.45.6 中配置 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,选择提交按钮旁边的“代理”,然后输入您的查询。
将以下内容添加到您的 ./codeium/windsurf/model_config.json 文件中:
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
要使用可流式传输的 HTTP 本地模式而不是默认的 stdio 传输运行服务器:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
使用 URL:http://localhost:3000/mcp
要通过 Smithery 自动安装 Firecrawl for Claude Desktop:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
单击一键安装按钮之一...
手动安装时,在 VS Code 的用户设置(JSON)文件中添加以下 JSON 块。可以通过按 Ctrl + Shift + P 并键入 首选项:打开用户设置(JSON) 来完成此操作。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API 密钥",
"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 密钥",
"password": true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
FIRECRAWL_API_KEY:您的 Firecrawl API 密钥
FIRECRAWL_API_URL 时可选FIRECRAWL_API_URL(可选):自托管实例的自定义 API 端点
https://firecrawl.your-domain.comFIRECRAWL_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_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, // 当信用使用达到此水平时发出临界警报
},
};
这些配置控制:
重试行为
信用使用监控
服务器利用 Firecrawl 内置的速率限制和批处理能力:
使用此指南选择适合任务的工具:
| 工具 | 最适合的场景 | 返回值 |
|---|---|---|
| scrape | 单页内容提取 | markdown/html |
| batch_scrape | 多个已知 URL 的内容提取 | markdown/html[] |
| map | 发现网站上的 URL | URL[] |
| crawl | 多页提取(带限制) | markdown/html[] |
| search | 网络搜索 | 结果[] |
| extract | 从页面中提取结构化数据 | JSON |
firecrawl_scrape)从单个 URL 抓取内容,具有高级选项。
最适合:
不推荐用于:
常见错误:
提示示例:
"获取 https://example.com 页面的内容。"
使用示例:
{
"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
}
}
返回:
firecrawl_batch_scrape)高效地抓取多个 URL,内置速率限制和并行处理。
最适合:
不推荐用于:
常见错误:
提示示例:
"获取这三个博客文章的内容:[url1, url2, url3]。"
使用示例:
{
"name": "firecrawl_batch_scrape",
"arguments": {
"urls": ["https://example1.com", "https://example2.com"],
"options": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}
返回:
{
"content": [
{
"type": "text",
"text": "批量操作已排队,ID 为:batch_1。使用 firecrawl_check_batch_status 检查进度。"
}
],
"isError": false
}
firecrawl_check_batch_status)检查批量操作的状态。
{
"name": "firecrawl_check_batch_status",
"arguments": {
"id": "batch_1"
}
}
firecrawl_map)映射网站以发现该网站上的所有索引 URL。
最适合:
**不推荐