Overview
FirecrawlTools provides web scraping, crawling, mapping, search, batch scraping, and LLM-powered extraction via the Firecrawl API. Use it with an Agent and Task so the model can scrape URLs, crawl sites, search the web, or extract structured data.Required: Set
FIRECRAWL_API_KEY in your environment or .env. Get a key at firecrawl.dev. Install the extra: uv sync --extra custom-tools or pip install firecrawl-py.Basic Usage
Selective Tool Configuration
Available Tools
By default all of the following are enabled; use constructor flags to disable groups:- scrape_url – Scrape a single URL (markdown, HTML, JSON).
- crawl_website – Crawl a site up to a page limit (blocking).
- start_crawl – Start an async crawl job.
- map_website – Discover URLs under a domain.
- search_web – Web search with optional scraping.
- batch_scrape – Scrape multiple URLs (blocking).
- start_batch_scrape – Start async batch scrape.
- extract_data – LLM-powered structured extraction.
- start_extract – Start async extract job.
- get_crawl_status – Poll crawl job status.
- cancel_crawl – Cancel a crawl job.
- get_batch_scrape_status – Poll batch scrape status.
- get_extract_status – Poll extract job status.
markdown, html, rawHtml, links, summary, images.
Parameters
- api_key (str, optional): Firecrawl API key. Defaults to
FIRECRAWL_API_KEYenv var. - api_url (str, optional): Custom API base URL for self-hosted Firecrawl.
- default_formats (list[str], optional): Default scrape formats (default:
["markdown"]). - default_scrape_limit (int): Page limit for crawls (default: 100).
- default_search_limit (int): Result limit for search (default: 5).
- timeout (int): Timeout in seconds for blocking operations (default: 120).
- poll_interval (int): Seconds between job status polls (default: 2).
- enable_scrape (bool): Enable
scrape_url(default: True). - enable_crawl (bool): Enable
crawl_websiteandstart_crawl(default: True). - enable_map (bool): Enable
map_website(default: True). - enable_search (bool): Enable
search_web(default: True). - enable_batch_scrape (bool): Enable batch scrape tools (default: True).
- enable_extract (bool): Enable extract tools (default: True).
- enable_crawl_management (bool): Enable
get_crawl_statusandcancel_crawl(default: True). - enable_batch_management (bool): Enable
get_batch_scrape_status(default: True). - enable_extract_management (bool): Enable
get_extract_status(default: True). - all (bool): Enable every tool regardless of flags (default: False).

