mcpField
C
CrawlForge MCP Server

CrawlForge MCP Server

已认证精选本地服务
crawlforge.devAI 与智能体61 天前更新

关于 CrawlForge MCP Server

CrawlForge MCP Server 为 MCP 客户端提供网页抓取、爬取、搜索、研究和提取工具。它输出 Markdown 与结构化数据,并支持使用本地 Ollama 进行 LLM 提取。

主要功能

  1. 01网页抓取与爬取
  2. 02实时搜索与深度研究
  3. 03提取 Markdown 和 JSON
  4. 04使用 Ollama 提取 LLM 数据
  5. 05浏览器自动化与隐身访问

适用场景

  1. 01将网页内容提取为 Markdown
  2. 02批量处理多个 URL
  3. 03用自然语言开展研究与提取

MCP 相关

向 MCP 客户端提供抓取、爬取、搜索、研究和提取等工具,可从 Claude Desktop、Claude Code、Cursor 等客户端连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"crawlforge": {
"command": "npx",
"args": [
"-y",
"crawlforge-mcp-server"
],
"env": {
"CRAWLFORGE_API_KEY": "<CRAWLFORGE_API_KEY>",
"DATAFORSEO_LOGIN": "<DATAFORSEO_LOGIN>",
"DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>"
}
}
}
}
启动命令npx -y crawlforge-mcp-server
需要配置的环境变量
CRAWLFORGE_API_KEY密钥CrawlForge API key for authentication and usage/credit tracking. Get a free key at https://www.crawlforge.dev
DATAFORSEO_LOGIN密钥DataForSEO account login. Optional — only needed to enable the serp_rank tool (real Google organic rank lookups); billed separately to the caller's own DataForSEO account.
DATAFORSEO_PASSWORD密钥DataForSEO account password. Optional — only needed to enable the serp_rank tool.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcrawlforge-mcp-server6.24.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CrawlForge MCP 服务

为 Claude、Cursor 和任意 MCP 客户端提供 31 种网页抓取、爬取、深度研究和自主提取工具。
从任意网站获取整洁的 Markdown 和结构化 JSON。立即开始并领取 1,000 个免费积分——无需信用卡。

许可证:MIT Node.js 版本 MCP 协议 npm 版本 npm 下载量 GitHub 星标

⭐ 在 GitHub 上为我们点星,持续关注项目动态——这确实有助于更多人发现这个项目。

目录

🎯 为什么选择 CrawlForge?

  • 31 种原生支持 MCP 的工具——网页抓取、爬取、搜索、真实 Google SERP 排名跟踪、深度研究、自主 agent、统一的多格式 scrape、文档处理、隐身浏览、有状态浏览器会话等,可直接从 AI 助手调用。
  • 慷慨的免费额度——立即开始即可获得 1,000 个积分,无需信用卡。这是一次性赠送,而非每月发放,且积分永不过期。
  • 默认使用本地 LLM——extract_with_llm 开箱即用,可调用本地 Ollama 模型:无需 LLM API 密钥、无需按 Token 付费,数据也不会离开你的设备。云端服务(OpenAI/Anthropic)为可选项。
  • 适配 LLM 的输出——一次抓取即可获得整洁的 Markdown、结构化 JSON(由 Schema 驱动)、截图、链接和元数据。
  • 自主 agent——用自然语言描述需求;它会规划、收集并整理答案,同时由编排器强制执行硬性限制(最大步骤数、URL 数和运行时长)——无需提供 URL。
  • 强化安全防护——每次请求均有 SSRF 防护、默认拒绝的后端允许列表、经过审核的浏览器自动化操作允许列表,以及按工具进行的积分门控。
  • 支持所有 MCP 客户端——Claude Desktop、Claude Code、Cursor 和其他任何支持 MCP 的客户端,只需一条命令即可完成配置。

📊 CrawlForge 与其他方案的对比

CrawlForge MCPFirecrawl原始抓取 API
原生 MCP 服务✅ 31 个工具✅❌
免费套餐✅ 1,000 点数,一次性发放,永不过期有限不定
可自托管 / 本地 LLM 提取(Ollama)✅ 默认启用,$0/令牌❌❌
自主 Agent(无需 URL)✅ agent✅❌
带来源验证的深度研究✅ deep_research部分支持❌
浏览器自动化 / 操作✅ scrape_with_actions✅不定
隐身 / 反检测引擎✅ Chromium + Camoufox✅附加项
预构建站点模板✅ 10 个站点❌❌
许可证MITAGPL-3.0专有

本对比反映了撰写时公开文档中记载的功能。CrawlForge 采用 MIT 许可证,并以 MCP 为先——可直接接入 AI 编码助手。

🚀 快速开始(2 分钟)

1. 从 NPM 安装
npm install -g crawlforge-mcp-server
2. 设置 API 密钥(必需)

每个工具都需要 CrawlForge API 密钥——新账户注册后即可获得 1,000 点免费试用额度。推荐的方式会通过浏览器登录,因此无需将密钥粘贴到终端中(编码 Agent 可以代你运行此命令并转发 URL):

crawlforge login

命令会输出一个审批 URL;打开该 URL 并批准后,密钥便会保存到 ~/.crawlforge/config.json。然后运行 crawlforge init,将 MCP 服务注册到客户端。也可以使用交互式向导,它还会配置你的客户端:

npx crawlforge-setup

此向导将:

  • 引导你获取免费的 API 密钥
  • 安全地配置你的凭据
  • 自动配置 Claude Code 和 Cursor(如果已安装)
  • 验证设置是否正常运行

没有 API 密钥? 可在 https://www.crawlforge.dev/signup 免费获取

一步完成设置(v4.6.0+): crawlforge init 会检测你的 API 密钥、安装 Agent 技能,并将 MCP 配置段幂等合并到 Claude Code、Claude Desktop 和 Cursor 中。使用 crawlforge init --all --yes 可用非交互方式配置所有检测到的客户端。

3. 配置 IDE(若未自动配置)
🤖 适用于 Claude Desktop

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "crawlforge": {
      "command": "npx",
      "args": ["-y", "crawlforge-mcp-server"]
    }
  }
}

位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

重启 Claude Desktop 以启用。

🖥️ 适用于 Claude Code CLI(自动配置)

设置向导会自动将以下内容添加到 ~/.claude.json,以配置 Claude Code:

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

设置完成后,重启 Claude Code 以启用。

💻 适用于 Cursor IDE(自动配置)

设置向导会自动将以下内容添加到 ~/.cursor/mcp.json,以配置 Cursor:

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

重启 Cursor 以启用。

🔁 适用于 n8n(工作流自动化)

n8n 内置的 MCP Client Tool 节点通过 Streamable HTTP 连接(适用于 n8n Cloud 和自托管环境)。以 HTTP 模式运行服务:

export CRAWLFORGE_API_KEY=your_api_key
npm run start:http    # Streamable HTTP endpoint at http://localhost:10000/mcp

然后将 MCP Client Tool 节点指向 http://<host>:10000/mcp,传输方式设为 HTTP Streamable,并使用与 API 密钥相同的密钥设置 Bearer 凭据。对于自托管的 n8n,也可以通过 STDIO 使用社区版 n8n-nodes-mcp 节点(npx -y crawlforge-mcp-server)。

完整指南:docs/n8n-integration.md

使用哪个启动命令? npx -y crawlforge-mcp-server 无需全局安装,且始终运行已发布的版本(推荐用于 Claude Desktop)。若要全局安装(npm i -g crawlforge-mcp-server),请使用专用的 crawlforge-mcp 可执行文件——它会通过你的 PATH 解析,因此切换 Node/nvm 版本后仍可使用。MCP 客户端通过 stdio 启动服务时,裸命令 crawlforge 仍会启动服务(向后兼容 v4.2.5 之前创建的配置);在交互模式下,它是 CLI——运行 crawlforge mcp 可手动启动服务。

📊 可用工具

CrawlForge 需要 CrawlForge API 密钥——每项工具均按使用量计费并消耗额度。新账户可获得 1,000 个免费试用额度。请访问 crawlforge.dev/signup 获取密钥。

所有工具(需要 API 密钥)

工具积分功能
fetch_url1获取任意 URL 的内容
extract_text1(启用 escalate: true 时预计为 6;普通抓取成功时收费 1)提取网页中的纯净文本
extract_links1(启用 escalate: true 时预计为 6;普通抓取成功时收费 1)获取页面中的所有链接
extract_metadata1提取页面元数据(标题、OG 标签、schema.org)
scrape_template1从知名网站(Amazon、GitHub、LinkedIn、YouTube、Reddit、Hacker News、npm 等)提取结构化数据,无需编写选择器
list_ollama_models1列出本地安装的 Ollama 模型(帮助你为 extract_with_llm 选择 model)
get_batch_results1按 batchId 获取 batch_scrape 任务的分页结果
read_result1搜索、截取、读取某个工具返回的结果中的行或 JSON 路径;该结果需带有 truncated: true 和 result_handle(仅在你自己的机器上保留 1 小时)——无需再次抓取页面
scrape2统一的单次抓取、多格式提取工具。 传入 formats 数组(markdown/html/rawHtml/text/links/metadata/screenshot/json-schema,以及 {type:"highlights",query} 和 {type:"question",question},仅返回匹配的句子、表格行和代码块,并保留原文及其在 markdown 中的偏移量:每次调用额外收取 1 积分;mode:"model" 额外收取 3 积分),以及 onlyMainContent;一次抓取即可提供所有请求的格式,并针对每种格式给出部分成功警告。escalate:true 会在普通抓取受阻时通过隐身浏览器重试一次,并返回页面而非拦截信息(预计最高收费为 5 积分;若普通抓取成功且未执行升级,则费用降回 2 积分)
scrape_structured2使用 CSS 选择器提取结构化数据
extract_embedded_state2(启用 escalate: true 时预计为 7;普通抓取成功时收费 2)读取页面中嵌入的 JavaScript 状态——__NEXT_DATA__、React Server Component 负载(解析行间引用,并提供 data_rows 索引)、Nuxt(解码 Nuxt 3 的 __NUXT_DATA__)、SvelteKit、Apollo、Redux、ytInitialData、Inertia、Shopify、JSON data-* 属性、<script type="application/json">——可通过 path 限定结果范围,通过 keys_only: true 查看前两层键,或通过 find: "<key>" 获取该字段名所在的所有路径。escalate: true 会通过隐身浏览器重新读取受限页面,运行相同的解析器,并读取 window 中的框架全局变量(window_state)。提取过程不使用 LLM
extract_content2增强内容提取
map_site2发现并映射网站结构(可选的 search= 会为发现的 URL 排序)
process_document2多格式文档处理
localization2查询某个国家/地区的区域设置(Accept-Language、时区、货币),以便传递给其他工具;仅返回值,不应用任何设置
track_changes3监控内容随时间的变化
analyze_content3全面分析内容
extract_structured3由 LLM 驱动、基于 schema 的提取(使用你自己的 LLM 密钥或本地 Ollama)
extract_with_llm3自然语言提取。默认使用本地 Ollama 模型;传入 provider: "openai" | "anthropic" 和对应的密钥即可使用云端模型(外部 LLM 的费用由你的服务提供商收取)
browser_session3可在多次调用间保持打开状态的浏览器页面,并保留 Cookie 和登录状态。对 URL 执行 open 以开启会话,通过 snapshot 将交互元素列为稳定引用(@e1、@e2),对引用执行 act,通过 read 读取内容,通过 close 关闭会话。按操作计费:open 为 3 积分,read 为 2 积分,snapshot/act/screenshot/close/list 各为 1 积分。当你必须先查看页面再决定点击什么、操作流程跨越多次调用,或登录状态必须在后续读取中保持时,使用此工具;若要在单个页面上执行固定的操作链,请使用 scrape_with_actions
summarize_content4生成智能摘要
crawl_deep4深度抓取整个网站
search_web5搜索实时网络(通过 CrawlForge API 使用 Brave Search API)
reddit_search5搜索 Reddit 帖子/评论,或读取完整讨论串——reddit.com 会阻止直接抓取,因此此工具会读取 Arctic Shift 社区档案(免费,无需 Reddit 凭据)。全 Reddit 范围的搜索会使用一次网络搜索来发现帖子,因此按 search_web 定价。可选:使用你自己的 Reddit 应用凭据(REDDIT_CLIENT_ID/REDDIT_CLIENT_SECRET)时,帖子搜索和讨论串读取会优先使用 Reddit 官方 API(实时分数、完整评论树),并在必要时回退到档案;价格不变。Reddit 不再发放未经审批工单的新凭据,详见 docs/reddit-access-and-oauth.md
serp_rank5检查某个域名针对某个关键词在 Google 真实自然搜索结果页(SERP) 中的排名(此排名无法通过 search_web 获取)。由 DataForSEO 提供支持(使用 DATAFORSEO_LOGIN/DATAFORSEO_PASSWORD,费用计入你自己的 DataForSEO 账户)。在完成配置前返回 { configured:false },且收费为 0 积分
batch_scrape5同时处理多个 URL
scrape_with_actions5浏览器自动化操作链
generate_llms_txt5生成 AI 交互指南
stealth_mode5管理防检测浏览器
agent8(每次成功获取页面的隐身重试额外收取 +5,最多 2 次)根据自然语言提示词自主研究/提取——无需提供 URL。 在严格的安全限制下规划、收集并组织答案(由编排器强制执行步骤数/URL 数/耗时上限,而非由 LLM 执行)。若普通抓取受到页面限制,会自动通过隐身浏览器重试——优先处理你指定的 URL——并将该证据标记为 via: "stealth";每次执行的重试额外收取 5 积分
deep_research10多阶段研究并核实来源
十个工具(scrape、fetch_url、extract_content、crawl_deep、batch_scrape、stealth_mode、scrape_with_actions、process_document、deep_research、extract_embedded_state)支持 max_inline_chars(默认值为 40,000;环境变量为 CRAWLFORGE_MAX_INLINE_CHARS):如果结果超过此限制,返回内容将包含 preview 和供 read_result 使用的 result_handle。完整结果会在你自己的机器上保留 1 小时,存放于 ~/.crawlforge/results/ 下,不会上传任何内容。

如需查看完整的权威功能参考(所有工具、CLI 命令、隐蔽引擎、研究工作流),请参阅 SKILL.md。

↑ 返回顶部

💳 定价

每个工具都按用量计费,并且需要 API 密钥。 新账户可获得 1,000 个免费试用额度,无需信用卡即可开始使用。

方案额度适用场景
免费一次性 1,000测试和个人项目
爱好者($19)每月 5,000小型项目和开发
专业版($99)每月 50,000专业用途和生产环境
商业版($399)每月 250,000大规模运营

所有方案均包含:

  • 使用全部 31 个工具
  • 额度永不过期;付费方案的额度可结转至下个月
  • API 访问和 webhook 通知

查看完整定价

🔧 高级配置

环境变量
# Optional: Set API key via environment
export CRAWLFORGE_API_KEY="cf_live_your_api_key_here"

# Optional: Custom API endpoint (for enterprise)
export CRAWLFORGE_API_URL="https://api.crawlforge.dev"
# As of v3.0.18, this variable is validated against an allow-list of CrawlForge backend hosts.

# Optional: Local LLM (Ollama) overrides — extract_with_llm, extract_structured
# and deep_research all use Ollama when no cloud key is set
export OLLAMA_BASE_URL="http://localhost:11434"   # default; set https://ollama.com for Ollama Cloud
export OLLAMA_DEFAULT_MODEL="gemma3:4b"            # optional; unset = pick the best installed model automatically
                                                   # deep_research judges claims with gemma3:12b when it is installed (ollama pull gemma3:12b);
                                                   # conflict detection is on only with that model, or a cloud provider
export OLLAMA_EMBEDDING_MODEL="nomic-embed-text"   # default: OLLAMA_DEFAULT_MODEL; used for semantic ranking in deep_research
export OLLAMA_API_KEY="..."                        # only for authenticated endpoints (required by Ollama Cloud; a local instance needs none)
export DISABLE_OLLAMA="true"                       # skip Ollama entirely and use CSS/keyword fallbacks

# Optional: Cloud LLM keys — only needed when you pass provider: "openai" or "anthropic"
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: limit which tools this client sees — by name, by group, or both (comma-separated)
export CRAWLFORGE_TOOLS="scrape,search_web,extract_content"
export CRAWLFORGE_TOOL_GROUPS="basic,search,scrape"   # unset = all tools; unknown names/groups are ignored with a warning

# Optional: deep_research stealth extraction fallback (v4.6.6) — see below
export RESEARCH_STEALTH_ENGINE="auto"      # auto (default) | camoufox | chromium
export RESEARCH_STEALTH_FALLBACK="true"    # set to "false" to disable entirely
export RESEARCH_MAX_STEALTH_RETRIES="8"    # cap on stealth retries per research run

# Optional: your own proxies for the stealth paths that have no caller to ask —
# the scrape escalation stage, the deep_research retry, the agent, browser_session.
# Comma-separated; a proxy passed on a call always wins. CrawlForge supplies none.
export CRAWLFORGE_STEALTH_PROXIES="http://user:[email protected]:8080"
# Unrelated to the PROXY_ROTATION_* variables, which belong to the localization tool.

# Optional: turn off the clearance jar (on by default) — see "Stealth engines and proxies"
export CRAWLFORGE_CLEARANCE_JAR="off"

# Optional: also refuse private networks (RFC1918, ULA, CGNAT, ...) — see "Security & Approvals"
export SSRF_STRICT="true"

# Optional: the only directories process_document may read local files from (":"-separated, ";" on Windows)
export CRAWLFORGE_ALLOWED_DIRS="$HOME/Documents:$HOME/Downloads"
MCP 规范功能

CrawlForge 跟进当前 MCP 规范(2025-06-18)以及部分实验性扩展:

  • 结构化输出 — scrape、map_site、serp_rank、reddit_search、search_web、extract_structured 和 crawl_deep 除常规文本外,还会返回可供机器解析的 structuredContent,并根据已发布的 outputSchema 进行校验;旧版客户端仍可使用文本。
  • 可自我纠正的错误 — 现在,无效的工具输入会作为 isError: true 结果返回,调用模型可以读取并据此重试,而不再是原始 JSON-RPC 协议错误。
  • JSON Schema 2020-12 工具架构、确定性的 tools/list 排序(便于客户端提示词缓存),以及只读工具的结果可缓存提示。
  • 服务、工具和提示词均支持图标。
  • 异步任务(实验性)适用于四个长时间运行的工具 — crawl_deep、batch_scrape、deep_research、agent — 供支持轮询的客户端使用;不支持的客户端仍会收到同步结果。

线级示例和客户端兼容性说明,请参阅 docs/mcp-spec-adoption.md。

本地大模型快速入门(使用 Ollama 的 extract_with_llm)

extract_with_llm 默认使用本地 Ollama 模型,无需大模型提供商密钥、无需支付按 Token 计费的大模型费用,数据也不会离开你的机器(但仍会扣除 CrawlForge 额度)。

# 1. Install Ollama:  https://ollama.com
# 2. Pull any model from https://ollama.com/library
ollama pull llama3.2

# 3. Discover what's installed (from your MCP client)
#    list_ollama_models()

# 4. Extract — defaults to Ollama with the model from step 2
#    extract_with_llm({ url: "https://example.com", prompt: "…", model: "llama3.2" })
隐身引擎和代理

每个隐身入口点——scrape(设置 escalate: true)、stealth_mode、browser_session、scrape_with_actions 和 deep_research 重试——现在默认使用 auto:如果已安装 Camoufox(二次开发的 Firefox),则使用它;否则回退到 Chromium,并在结果的 warnings[] 中说明原因。每个结果都会注明实际运行的引擎。显式指定引擎时,行为一如既往——camoufox 会直接报错而不回退;chromium 和 playwright 是同一个引擎(对于 scrape 的 escalate_engine,请写作 playwright)。

在 browser_session 和 scrape_with_actions 中,只有设置 stealth: true 时才会应用引擎——常规路径使用标准 Chromium 池。

auto 并非没有代价。2026-09-21 在 Apple Silicon Mac 上各测量一次(启动,加上一个上下文和一个空白页面):Chromium 为 148 毫秒、253 MB;Camoufox 为 946 毫秒、667 MB——每次隐身调用大约多耗时 0.8 秒、多占用 400 MB。对于不会拦截的站点上的高流量任务,请固定使用 engine: "playwright"。

CrawlForge 不提供代理,而数据中心代理无法解决拦截问题:Cloudflare 会在运行任何 JavaScript 之前评估 IP 的 ASN 和 TLS/HTTP2 握手,因此浏览器端的补丁无法弥补数据中心地址的问题。请通过 CRAWLFORGE_STEALTH_PROXIES(逗号分隔的 URL)提供自己的住宅网络出口。调用方未传入代理时,升级阶段、stealth_mode、browser_session、scrape_with_actions、deep_research 重试以及 agent 工具的自动隐身重试都会使用该代理;调用时传入的代理始终优先。使用代理时,Camoufox 会根据出口 IP 推导时区、地区设置和地理位置。

**一次解决的验证挑战不会重复解决。**隐身渲染成功通过 Cloudflare 或 DataDome 验证墙后,供应商的通行 Cookie(cf_clearance、__cf_bm、datadome——不包括其他 Cookie)会保存在 ~/.crawlforge/stealth-clearance.json(权限模式为 0600)中,并在后续隐身上下文中重放,但仅限引擎、User-Agent 和代理均相同的情况,且最长不超过 Cookie 自身的有效期,绝不会超过 24 小时。如果渲染仍然遇到验证墙,则会删除这些 Cookie。设置 CRAWLFORGE_CLEARANCE_JAR=off 可禁用此功能。

详情、测量数据和来源:docs/stealth-engines.md。

deep_research 的隐身提取(Camoufox)

deep_research 会自动重试那些会阻止常规抓取路径的来源(Reddit、Quora、论坛以及受 Cloudflare/DataDome 保护的页面会返回 HTTP 403),改用带有真实浏览器指纹的浏览器,然后从渲染后的 HTML 中重新提取内容。重试次数有限(RESEARCH_MAX_STEALTH_RETRIES,默认值为 8,另有单页超时设置),并且按需加载——只有来源确实被阻止时才会加载浏览器组件。

引擎选择(RESEARCH_STEALTH_ENGINE):

  • auto(默认)——优先使用 Camoufox(Firefox 反检测),然后回退到 Chromium 隐身引擎,最后回退到普通抓取。
  • camoufox ——强制使用 Camoufox。
  • chromium ——强制使用 Chromium 隐身引擎。

Camoufox 能通过阻止无头 Chromium 的防护:在 2026-09-21 使用住宅 IP 进行的一次基准测试中,它是唯一成功通过 Cloudflare Turnstile(indeed.com)和 Akamai(harrods.com)的引擎,这两个站点都阻止了 Chromium 隐身引擎。两个引擎都未能通过 DataDome 或交互式 Turnstile,因此这只是更好的抓取路径,并非绕过防护。要启用它,请安装可选依赖并执行一次性二进制文件下载:

# Camoufox is declared as an optional dependency, so a normal install already pulls it.
# If you installed with --no-optional, add it explicitly:
npm install camoufox

# One-time download of the Camoufox Firefox binary (~130 MB):
npx camoufox fetch

如果没有 Camoufox 二进制文件,deep_research 会静默回退到 Chromium 隐身引擎,然后回退到普通抓取——不会报错,但在防护严格的网站上恢复能力会较弱。设置 RESEARCH_STEALTH_FALLBACK=false 可禁用整个回退机制。

注意: IP 信誉导致的严格封锁(例如 Reddit 边缘节点返回的 403)无法通过来自任何 IP 的无头隐身方式解决,需要使用住宅/移动代理;CrawlForge 不提供此类代理——请通过 CRAWLFORGE_STEALTH_PROXIES 配置服务器使用你自己的代理。详情请参阅 docs/stealth-engines.md。

手动配置

你的配置存储在 ~/.crawlforge/config.json 中:

{
  "apiKey": "cf_live_...",
  "userId": "user_...",
  "email": "[email protected]"
}

📖 使用示例

配置完成后,可在 AI 助手中使用这些工具:

"Search for the latest AI news"
"Extract all links from example.com"
"Crawl the documentation site and summarize it"
"Monitor this page for changes"
"Extract product prices from this e-commerce site"

🔒 安全与隐私

  • 安全认证:所有计量工具都需要 API 密钥
  • 本地存储:API 密钥安全地存储在 ~/.crawlforge/config.json 中
  • 仅使用 HTTPS:所有连接均使用加密的 HTTPS
  • 不保留数据:我们不存储抓取的数据,仅存储使用日志
  • 速率限制:内置防滥用保护
  • 合规性:遵守 robots.txt 和 GDPR 要求
安全与审批
  • SSRF 防护:每个抓取的 URL 都会在发送请求前经过验证,每次连接(包括每次重定向跳转,最多 5 次)都会根据实际连接到的地址进行检查;仅允许 http/https,拒绝云元数据主机名(GCP、Azure)。分为两个级别:
    • **默认(Stage 1)**会拦截环回地址(127.0.0.0/8、::1)、未指定地址(0.0.0.0/8、::)、链路本地地址和云元数据地址(169.254.0.0/16,包括 169.254.169.254、fe80::/10)。允许私有网络(RFC1918 10/8、172.16/12、192.168/16、IPv6 ULA):在你自己的机器上运行时,服务代表你执行操作;读取路由器页面、NAS 或局域网上的内网文档站点是合理用途,而更严格的级别会阻止这些操作。
    • **SSRF_STRICT=true**会额外拦截所有私有和保留地址范围:RFC1918、ULA(fc00::/7)、CGNAT(100.64/10)、组播、保留地址、IPv4 兼容地址(::/96)和 NAT64(64:ff9b::/96)IPv6。如果 Agent 会读取不可信页面(并可能遭受提示词注入,从而被诱导去抓取局域网地址),且不应访问你的本地网络,或者服务器由多人共用,请设置此项。
  • 本地文件(通过 sourceType 为 file 或 pdf_file 的 process_document 处理;如果服务面向网络提供服务,则一律拒绝):路径根据 realpath 判断,因此符号链接按其目标路径处理。只读取 .pdf、.docx、.txt、.md、.html 和 .htm 文件,且不会读取点目录中的任何内容(~/.ssh、~/.aws、~/.config、~/.crawlforge 等)。设置 CRAWLFORGE_ALLOWED_DIRS(目录之间以 : 分隔;Windows 上使用 ;)可将读取范围限制在这些目录内;这些目录中的点目录限制会解除,但扩展名限制仍然生效。
  • 后端端点防护(v3.0.18):服务器自身对 CrawlForge.dev 的调用使用单独的失败时拒绝允许列表({crawlforge.dev, www.crawlforge.dev, api.crawlforge.dev},必须使用 HTTPS)。在解析时会拦截将 CRAWLFORGE_API_URL 设置为任意主机的操作。
  • 操作允许列表:scrape_with_actions 仅接受 11 种操作类型(snapshot、wait、click、type、press、scroll、screenshot、executeJavaScript、select、hover、navigate)。不存在下载、写入文件或任意跨页面导航的原语;navigate 和初始 URL 一样,受 SSRF 和 robots.txt 限制。
  • JavaScript 防护:默认情况下,executeJavaScript 操作会抛出异常。部署时设置 ALLOW_JAVASCRIPT_EXECUTION=true 可启用此操作(不建议在生产环境中启用)。
  • MCP Elicitation(v3.6.0):有四种工具会在执行开销较大的操作前请求用户确认:deep_research(>50 个 URL)、batch_scrape(同步模式,>25 个 URL)、crawl_deep(预计超过 500 个页面)、extract_structured(未配置 LLM 且架构包含超过 3 个必填字段)。积分不足时也会请求确认。确认机制尽力而为:如果 MCP 客户端不支持 elicitation,工具仍会继续执行(失败时放行)。
  • 逐工具积分限制:每种工具都由 withAuth() 封装并计量;执行前会检查并扣除积分,且每种工具都必须提供有效的 API key(自 v3.0.18 起,失败时拒绝)。

完整说明请参阅 docs/sandboxing-and-approvals.md。

安全更新

v3.0.3(2025-10-01):已修复身份验证绕过漏洞。所有用户都必须使用有效的 API key 进行身份验证。

完整的安全策略及漏洞报告方式请参阅 SECURITY.md。

↑ 返回顶部

🆘 支持

📄 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

🤝 参与贡献

欢迎参与贡献!请先阅读我们的贡献指南。


由 CrawlForge 团队倾情打造 ❤️

网站 | 文档 | API 参考

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。