single-page web content scraping with format selection
Scrapes individual web pages using the Firecrawl SDK's scrapeUrl() method, returning content in either markdown or HTML format. The MCP server wraps the @mendable/firecrawl-js v4.9.3 client with Zod schema validation for parameters, automatically handling retries via exponential backoff (configurable 1-10s delays with 2x multiplier) and rate-limit errors across up to 3 attempts. Clients specify URL and desired output format through standardized MCP tool parameters.
Unique: Exposes Firecrawl's scrapeUrl() through MCP protocol with automatic exponential backoff retry logic (configurable via FIRECRAWL_RETRY_* env vars) and Zod-validated parameter schemas, enabling LLM clients to invoke web scraping without managing HTTP or retry complexity
vs alternatives: Simpler than building custom HTTP+retry logic and more reliable than raw Firecrawl SDK calls because MCP standardizes the interface and FastMCP handles transport negotiation across Cursor, Claude Desktop, and other clients automatically
batch url scraping with asynchronous job tracking
Submits multiple URLs for scraping in a single API call via batchScrapeUrls(), returning a batch_id immediately for asynchronous processing. The server stores no state itself — clients must poll firecrawl_check_batch_status with the returned batch_id to retrieve results as they complete. Internally uses the @mendable/firecrawl-js SDK with exponential backoff retry on submission failures, but does not block waiting for batch completion.
Unique: Implements fire-and-forget batch submission pattern via MCP, returning batch_id immediately without blocking, paired with separate firecrawl_check_batch_status tool for polling — enables agents to submit large jobs and continue reasoning while scraping happens server-side
vs alternatives: More efficient than sequential single-page scraping for 10+ URLs because Firecrawl batches them server-side; more flexible than synchronous batch APIs because clients control polling frequency and can interleave other work
environment-based configuration with cloud/self-hosted api switching
Configures the entire server via environment variables, enabling seamless switching between Firecrawl cloud (api.firecrawl.dev) and self-hosted instances. The server reads FIRECRAWL_API_KEY for cloud authentication and FIRECRAWL_API_URL to override the default endpoint. Additional env vars control retry behavior (FIRECRAWL_RETRY_*), credit monitoring thresholds (FIRECRAWL_CREDIT_WARNING_THRESHOLD, FIRECRAWL_CREDIT_CRITICAL_THRESHOLD), and transport selection. No config files or code changes required for deployment variations.
Unique: Supports both Firecrawl cloud and self-hosted instances via FIRECRAWL_API_URL override, with all configuration (retry, credits, transport) driven by environment variables, enabling single codebase deployment across cloud and on-premise infrastructure
vs alternatives: More flexible than hardcoded endpoints because FIRECRAWL_API_URL enables self-hosted switching; more portable than config files because env vars work across Docker, Kubernetes, and serverless platforms without file mounts
zod schema validation for tool parameters with type safety
Validates all tool parameters using Zod v4.1.5 schemas defined in src/index.ts, ensuring type correctness and required field presence before submitting to Firecrawl API. Each of the 8 tools has a Zod schema (e.g., URL validation, format enum validation, schema object validation) that FastMCP applies automatically. Invalid parameters are rejected with descriptive error messages before API calls, reducing wasted requests and improving error clarity.
Unique: Uses Zod v4.1.5 schemas for all 8 Firecrawl tools, validating parameters before API submission and providing type-safe interfaces through MCP, reducing invalid requests and improving error clarity
vs alternatives: More robust than no validation because it catches errors before API calls; more flexible than TypeScript-only validation because Zod works with MCP's JSON-based parameter passing
web search with result ranking and snippet extraction
Executes web searches via Firecrawl's search() method, returning ranked results with snippets, URLs, and metadata. The MCP server validates search query parameters using Zod schemas and applies exponential backoff retry logic (up to 3 attempts) on transient failures. Results are returned as a structured array suitable for LLM context injection or further processing.
Unique: Wraps Firecrawl's search() API through MCP protocol with Zod parameter validation and automatic exponential backoff, enabling LLM clients to invoke web search without managing HTTP clients or retry logic, integrated seamlessly with scraping tools for discovery-to-extraction workflows
vs alternatives: Simpler than integrating multiple search APIs (Google, Bing, DuckDuckGo) because Firecrawl abstracts provider selection; more reliable than raw API calls because MCP+FastMCP handles transport and retry automatically
site url discovery and mapping via crawl indexing
Maps all discoverable URLs on a domain using Firecrawl's mapUrl() method, which crawls the site structure and returns a flat list of URLs. The server wraps this with Zod validation and exponential backoff retry (up to 3 attempts). Useful for discovering site structure before selective scraping or batch operations. Returns a simple URL array without content.
Unique: Exposes Firecrawl's mapUrl() through MCP with automatic retry logic, enabling agents to dynamically discover site structure without manual URL lists or sitemaps, paired with batch scraping for efficient multi-page extraction workflows
vs alternatives: More dynamic than static sitemaps because it discovers actual crawlable URLs; more efficient than sequential scraping because it identifies targets before extraction, reducing wasted API calls on non-existent pages
structured data extraction with json schema validation
Extracts structured data from web pages using Firecrawl's extract() method with user-defined JSON schemas. The server accepts a URL and a Zod-validated schema parameter, sends both to Firecrawl's LLM-powered extraction engine, and returns parsed JSON matching the schema. Includes exponential backoff retry (up to 3 attempts) and validates schema format before submission.
Unique: Wraps Firecrawl's LLM-powered extract() method through MCP with Zod schema validation for parameters, enabling agents to define extraction schemas declaratively and receive structured JSON without writing parsing logic, integrated with retry logic for reliability
vs alternatives: More flexible than regex-based extraction because it understands semantic content; more reliable than manual CSS selectors because it uses LLM reasoning to find data even when page structure changes, though less deterministic than rule-based approaches
multi-page site crawling with asynchronous job management
Initiates a full-site crawl via Firecrawl's crawlUrl() method, returning a job_id immediately for asynchronous processing. The server does not block — clients must poll firecrawl_check_crawl_status with the job_id to retrieve crawl progress and results. Internally applies exponential backoff retry on job submission. Crawls respect robots.txt and site rate limits configured in Firecrawl.
Unique: Implements fire-and-forget crawl submission via MCP, returning job_id immediately without blocking, paired with firecrawl_check_crawl_status for polling — enables agents to initiate large crawls and continue reasoning while Firecrawl processes pages server-side
vs alternatives: More efficient than sequential page scraping because Firecrawl crawls in parallel server-side; more flexible than synchronous crawl APIs because clients control polling frequency and can interleave other work without blocking
+4 more capabilities