Via the Firecrawl MCP (preferred)
This plugin bundles the Firecrawl MCP server. When it's connected, prefer the native firecrawl_scrape tool over the CLI — it needs no local install and authenticates through the plugin's one-time browser sign-in. Pass the same capabilities described below (formats, JSON extraction with a schema, waitFor, proxy/stealth) as tool arguments. The firecrawl CLI commands below are the fallback for when the MCP isn't connected.
Scrape one or more URLs. Returns clean, LLM-optimized markdown. Multiple URLs are scraped concurrently.
Execute an Alexandria capability
firecrawl_scrape also runs Alexandria data providers. Pass alexandria instead of url (exactly one of the two) with the provider, capability, and options that discovery returned, optionally as an array of up to ten calls, and read the results in data.alexandria[]. Check each item for an error with a code; a provider error never fails the batch as a whole. Discovery and contracts come from firecrawl_search (source alexandria) and firecrawl_find_tools; see firecrawl-alexandria for the flow, pricing, and provider terms. In the CLI the same call is firecrawl scrape <provider>/<capability> --options '<json>'.
When to use
- You have a specific URL and want its content
- The page is static or JS-rendered (SPA)
- Step 2 in the workflow escalation pattern: search → scrape → map → crawl → interact
Quick start
# Basic markdown extraction
firecrawl scrape "<url>" -o .firecrawl/page.md
# Main content only, no nav/footer
firecrawl scrape "<url>" --only-main-content -o .firecrawl/page.md
# Wait for JS to render, then scrape
firecrawl scrape "<url>" --wait-for 3000 -o .firecrawl/page.md
# Multiple URLs (each saved to .firecrawl/)
firecrawl scrape https://example.com https://example.com/blog https://example.com/docs
# Get markdown and links together
firecrawl scrape "<url>" --format markdown,links -o .firecrawl/page.json
# Ask a question about the page
firecrawl scrape "https://example.com/pricing" --query "What is the enterprise plan price?"
Options
| Option | Description |
|---|---|
-f, --format <formats> |
Output formats: markdown, html, rawHtml, links, screenshot, json |
-Q, --query <prompt> |
Ask a question about the page content (5 credits) |
-H |
Include HTTP headers in output |
--only-main-content |
Strip nav, footer, sidebar — main content only |
--wait-for <ms> |
Wait for JS rendering before scraping |
--include-tags <tags> |
Only include these HTML tags |
--exclude-tags <tags> |
Exclude these HTML tags |
--redact-pii |
Redact personally identifiable information from output |
-o, --output <path> |
Output file path |
Tips
- Prefer plain scrape over
--query. Scrape to a file, then usegrep,head, or read the markdown directly — you can search and reason over the full content yourself. Use--queryonly when you want a single targeted answer without saving the page (costs 5 extra credits). - Try scrape before interact. Scrape handles static pages and JS-rendered SPAs. Only escalate to
interactwhen you need interaction (clicks, form fills, pagination). - Multiple URLs are scraped concurrently — check
firecrawl --statusfor your concurrency limit. - Single format outputs raw content. Multiple formats (e.g.,
--format markdown,links) output JSON. - Always quote URLs — shell interprets
?and&as special characters. - Naming convention:
.firecrawl/{site}-{path}.md
See also
- firecrawl-alexandria — execute catalogued data providers through scrape
- firecrawl-search — find pages when you don't have a URL
- firecrawl-interact — when scrape can't get the content, use
interactto click, fill forms, etc. - firecrawl-download — bulk download an entire site to local files