Firecrawl MCP — scraper LLM-friendly

Instalat azi (2026-05-28). Firecrawl e un serviciu de scraping care livrează Markdown curat, structurat, gata să fie dat unui LLM — fără HTML noise, fără JS-rendered chaos, fără cookie banners. E ce-ai vrut de fiecare dată când ai zis “Wednesday, scrape-ză pagina asta”.

Cont free tier: 500 credits/lună. Cheia e provisioned, vezi _infra/config/.credentials/firecrawl.env.

Ce face

API SaaS hosted (firecrawl.dev) care:

  1. Vizitează URL-ul cu un browser headless (Playwright pe partea lor)
  2. Aşteaptă să se randeze JS-ul, dismiss-uie banners, scroll-uie pentru lazy load
  3. Extrage main content (article extraction, similar Defuddle)
  4. Convertește în Markdown curat cu link-uri preservate
  5. Întoarce şi metadata (title, description, og:image, lang)

E mai puternic decât WebFetch (care e simplu HTTP GET + parser) şi mai uşor decât Playwright direct (care îţi cere să scrii cod).

Tool-uri exposed (firecrawl-mcp standard set)

  • scrape <url> — single URL → Markdown + metadata. Cel mai folosit.
  • crawl <url> <depth> — recursiv, urmează link-urile dintr-un domain (atenţie la credits!)
  • map <url> — listă de URL-uri descoperite într-un site, fără scraping (rapid sitemap)
  • search <query> — search engine + scrape primele rezultate (mini-research)
  • extract <url> <schema> — extracţie structurată cu un schema JSON dat (ex: titlu, preţ, dată)

Exemple de prompts

  • “Wednesday, citeşte articolul ăsta: https://…” → firecrawl_scrape (returnează Markdown gata)
  • “Scrape-ză toate articolele de pe blog.x.com/ ultimele 10” → firecrawl_crawl cu depth=1
  • “Listează toate paginile de pe site-ul ăsta” → firecrawl_map
  • “Caută online despre ‘Doctrine 338 LLM’ şi scrape primele 5 rezultate” → firecrawl_search
  • “Extrage preţul + numele produsului de pe pagina asta Amazon” → firecrawl_extract cu schema {name: string, price: number}

Credenţiale

_infra/config/.credentials/firecrawl.env:

FIRECRAWL_API_KEY=fc-7874fbf999a54cb08cc9c43cd695c5a8

Cheia e inline şi în ~/.mcp.json (env block), şi în ~/.firecrawl/config pentru CLI-ul global npm. Single source of truth: .env.

Rotate la https://www.firecrawl.dev/app/api-keys dacă e nevoie.

Firecrawl vs alte opţiuni

ToolCând să-l foloseşti
WebFetchURL e .md, sau pagină simplă static HTML, sau API care întoarce JSON
defuddle skillURL e o pagină web normală (blog, article, docs), vrei Markdown extract local
firecrawl MCPPagina e JS-rendered (React/Vue SPA), are cookie banners, ai nevoie de crawl recursiv, sau vrei extracţie structurată
Playwright directAi nevoie să faci click-uri, login-uri, scroll specific — automation, nu doar scraping

Default-ul lui Wednesday: defuddle pentru pagini simple, firecrawl când defuddle eşuează (JS-heavy) sau vrei crawl multi-URL.

CLI-ul global

E şi un CLI: firecrawl-cli (npm global). Util când vrei să rulezi rapid dintr-un terminal fără sesiune Claude:

firecrawl scrape https://example.com/article

Auth e în ~/.firecrawl/config.

Gotchas

  • Free tier = 500 credits/lunăscrape costă 1 credit, crawl costă 1/pagină, extract 5. Atenţie la crawl cu depth mare — poate consuma 100+ credits într-un singur call.
  • Nu funcţionează pentru pagini autentificate — Firecrawl n-are sesiunea ta. Pentru asta foloseşte Playwright cu state file.
  • Latency mai mare ca WebFetch — 5-15 secunde tipic (browser headless + render). Pentru pagini static, WebFetch e mai rapid.
  • Robots.txt + rate limits — Firecrawl respectă robots.txt. Site-urile care blochează cu Cloudflare aggressive (CAPTCHA, JS challenge) pot eşua.
  • extract cu schema — funcţionează cel mai bine pe pagini structurate (e-commerce, articole news). Pentru forum threads / discussion sites, accuracy variabil.
  • Cost real — dacă scape extensiv, upgrade la plan plătit. Free 500/lună e ok pentru research personal sporadic.
  • Confidentialitate — Firecrawl rulează pe serverele lor; URL-urile + content trec prin ei. Pentru lucruri sensibile, foloseşte Playwright local.