mcpField
F
firecrawl-scraper

firecrawl-scraper

github.com/secondskyData & databases240228 installsUpdated 5w ago
Repository

About firecrawl-scraper

A skill for using Firecrawl to scrape and extract web content for developers building data pipelines or AI applications. It covers single-page scraping, site crawling, URL discovery, and schema-based extraction, including browser actions and Workers REST API guidance.

Key features

  1. 01Scrape pages as markdown, HTML, or screenshots
  2. 02Crawl sites with domain and depth controls
  3. 03Discover site URLs
  4. 04Extract data using a schema
  5. 05Run browser actions during scraping

Use cases

  1. 01Collect documentation for a knowledge base
  2. 02Extract product names and prices
  3. 03Scrape news article content
  4. 04Discover pages before a site crawl

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/secondsky/claude-skills --skill firecrawl-scraper

After installing, type/firecrawl-scraperin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
common-patterns.md
endpoints.md
templates/
firecrawl-crawl-example.py
firecrawl-scrape-python.py
firecrawl-scrape-typescript.ts
firecrawl-worker-fetch.ts

Details

From the project README

Firecrawl Web Scraper Skill

Status: Production Ready ✅ Last Updated: 2026-08-03 Official Docs: https://docs.firecrawl.dev API Version: v2.5


What is Firecrawl?

Firecrawl is a Web Data API for AI that turns entire websites into LLM-ready markdown or structured data. It handles:

  • JavaScript rendering - Executes client-side JavaScript to capture dynamic content
  • Anti-bot bypass - Gets past CAPTCHA and bot detection systems
  • Format conversion - Outputs as markdown, JSON, or structured data
  • Screenshot capture - Saves visual representations of pages
  • Browser automation - Full headless browser capabilities

API Endpoints

1. /v2/scrape - Single Page Scraping

Scrapes a single webpage and returns clean, structured content.

Use Cases:

  • Extract article content
  • Get product details
  • Scrape specific pages
  • Convert HTML to markdown

Key Options:

  • formats: ["markdown", "html", "screenshot"]
  • onlyMainContent: true/false (removes nav, footer, ads)
  • waitFor: milliseconds to wait before scraping
  • actions: browser automation actions (click, scroll, etc.)
2. /v2/crawl - Full Site Crawling

Crawls all accessible pages from a starting URL.

Use Cases:

  • Index entire documentation sites
  • Archive website content
  • Build knowledge bases
  • Scrape multi-page content

Key Options:

  • limit: max pages to crawl
  • maxDepth: how many links deep to follow
  • allowedDomains: restrict to specific domains
  • excludePaths: skip certain URL patterns
3. /v2/map - URL Discovery

Maps all URLs on a website without scraping content.

Use Cases:

  • Find sitemap
  • Discover all pages
  • Plan crawling strategy
  • Audit website structure
4. /v2/extract - Structured Data Extraction

Uses AI to extract specific data fields from pages.

Use Cases:

  • Extract product prices and names
  • Parse contact information
  • Build structured datasets
  • Custom data schemas

Key Options:

  • schema: Zod or JSON schema defining desired structure
  • systemPrompt: guide AI extraction behavior

Authentication

Firecrawl requires an API key for all requests.

Get API Key
  1. Sign up at https://www.firecrawl.dev
  2. Go to dashboard → API Keys
  3. Copy your API key (starts with fc-)
Store Securely

NEVER hardcode API keys in code!

# .env file
FIRECRAWL_API_KEY=fc-your-api-key-here
# .env.local (for local development)
FIRECRAWL_API_KEY=fc-your-api-key-here

SDK Quick Start

Python
pip install firecrawl-py  # v4.5.0+
from firecrawl import FirecrawlApp
import os

app = FirecrawlApp(api_key=os.environ.get("FIRECRAWL_API_KEY"))
result = app.scrape_url("https://example.com", params={"formats": ["markdown"], "onlyMainContent": True})
print(result.get("markdown"))
TypeScript/Node.js
bun add @mendable/firecrawl-js  # v4.32.0+
import FirecrawlApp from '@mendable/firecrawl-js';

const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const result = await app.scrapeUrl('https://example.com', { formats: ['markdown'], onlyMainContent: true });
console.log(result.markdown);

See: templates/ for crawl, extract, and advanced examples


Common Use Cases

Use CaseEndpointKey Options
Documentation scrapingcrawl_url()limit: 500, allowedDomains
Product data extractionextract()Zod schema + systemPrompt
News article scrapingscrape_url()onlyMainContent: true, removeBase64Images
URL discoverymap()Find all pages before crawling

See: references/common-patterns.md for complete examples.


Error Handling

# Python
try:
    result = app.scrape_url("https://example.com")
except FirecrawlException as e:
    print(f"Firecrawl error: {e}")
// TypeScript
try {
  const result = await app.scrapeUrl('https://example.com');
} catch (error) {
  console.error('Error:', error.message);
}

Rate Limits & Best Practices

Best PracticeWhy
Use onlyMainContent: trueReduces credits, cleaner output
Set reasonable limitAvoid excessive costs
Use map endpoint firstPlan crawling strategy
Cache resultsAvoid re-scraping
Batch extract callsMore efficient for multiple URLs

Credits: Free tier = 500/month, paid tiers higher.


Cloudflare Workers Integration

⚠️ SDK cannot run in Workers (Node.js dependencies). Use direct REST API:

const response = await fetch('https://api.firecrawl.dev/v2/scrape', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${env.FIRECRAWL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ url, formats: ['markdown'], onlyMainContent: true })
});

See: references/common-patterns.md for complete Workers example with caching.


When to Use This Skill

✅ Use Firecrawl❌ Don't Use
Modern JS-rendered sitesSimple static HTML (use cheerio)
Clean markdown for LLMsExisting Puppeteer setup works
RAG/chatbot contentDirect API available
Structured data extractionBudget constraints
Bot protection bypass

Common Issues

IssueCauseFix
"Invalid API Key"Key not setCheck $FIRECRAWL_API_KEY starts with fc-
"Rate limit exceeded"Monthly credits usedCheck dashboard, upgrade plan
"Timeout error"Page slow to loadAdd waitFor: 10000
"Content is empty"JS loads lateAdd actions: [{type: "wait", milliseconds: 3000}]

Advanced Features

FeatureUsage
Browser actionsactions: [{type: "click", selector: "button"}]
Custom headersheaders: {"User-Agent": "Custom Bot"}
Webhookswebhook: "https://your-domain.com/webhook"
Screenshotsformats: ["screenshot"]

See: references/endpoints.md for complete API reference.


When to Load References

ReferenceLoad When...
endpoints.mdNeed complete API endpoint documentation
common-patterns.mdCloudflare Workers, caching, batch processing, error handling

Package Versions

PackageVersion
firecrawl-py4.5.0+
@mendable/firecrawl-js4.32.0+
APIv2

Note: Node.js SDK requires Node.js >=22.0.0, cannot run in Workers.


Official Docs: https://docs.firecrawl.dev | GitHub: https://github.com/mendableai/firecrawl

Token Savings: ~60% | Production Ready: ✅

Comments

Markdown supported