Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SSE_LOCAL | No | Set to 'true' to run the server using Server-Sent Events (SSE) locally instead of stdio transport | |
| FIRECRAWL_API_KEY | No | Your Firecrawl API key (required for cloud API, optional for self-hosted instances) | |
| FIRECRAWL_API_URL | No | Custom API endpoint for self-hosted instances (e.g., https://firecrawl.your-domain.com). If not provided, the cloud API will be used. | |
| FIRECRAWL_RETRY_MAX_DELAY | No | Maximum delay in milliseconds between retries | 10000 |
| FIRECRAWL_RETRY_MAX_ATTEMPTS | No | Maximum number of retry attempts for rate-limited requests | 3 |
| FIRECRAWL_RETRY_INITIAL_DELAY | No | Initial delay in milliseconds before first retry | 1000 |
| FIRECRAWL_RETRY_BACKOFF_FACTOR | No | Exponential backoff multiplier | 2 |
| FIRECRAWL_CREDIT_WARNING_THRESHOLD | No | Credit usage warning threshold | 1000 |
| FIRECRAWL_CREDIT_CRITICAL_THRESHOLD | No | Credit usage critical threshold | 100 |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| firecrawl_scrape | Scrape content from a single URL with advanced options. Best for: Single page content extraction, when you know exactly which page contains the information. Not recommended for: Multiple pages (use batch_scrape), unknown page (use search), structured data (use extract). Common mistakes: Using scrape for a list of URLs (use batch_scrape instead). Prompt Example: "Get the content of the page at https://example.com." Usage Example: {
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown"]
}
} Returns: Markdown, HTML, or other formats as specified. |
| firecrawl_map | Map a website to discover all indexed URLs on the site. Best for: Discovering URLs on a website before deciding what to scrape; finding specific sections of a website. Not recommended for: When you already know which specific URL you need (use scrape or batch_scrape); when you need the content of the pages (use scrape after mapping). Common mistakes: Using crawl to discover URLs instead of map. Prompt Example: "List all URLs on example.com." Usage Example: {
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
} Returns: Array of URLs found on the site. |
| firecrawl_crawl | Starts an asynchronous crawl job on a website and extracts content from all pages. Best for: Extracting content from multiple related pages, when you need comprehensive coverage. Not recommended for: Extracting content from a single page (use scrape); when token limits are a concern (use map + batch_scrape); when you need fast results (crawling can be slow). Warning: Crawl responses can be very large and may exceed token limits. Limit the crawl depth and number of pages, or use map + batch_scrape for better control. Common mistakes: Setting limit or maxDepth too high (causes token overflow); using crawl for a single page (use scrape instead). Prompt Example: "Get all blog posts from the first two levels of example.com/blog." Usage Example: {
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
} Returns: Operation ID for status checking; use firecrawl_check_crawl_status to check progress. |
| firecrawl_check_crawl_status | Check the status of a crawl job. Usage Example: {
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
} Returns: Status and progress of the crawl job, including results if available. |
| firecrawl_search | Search the web and optionally extract content from search results. Best for: Finding specific information across multiple websites, when you don't know which website has the information; when you need the most relevant content for a query. Not recommended for: When you already know which website to scrape (use scrape); when you need comprehensive coverage of a single website (use map or crawl). Common mistakes: Using crawl or map for open-ended questions (use search instead). Prompt Example: "Find the latest research papers on AI published in 2023." Usage Example: {
"name": "firecrawl_search",
"arguments": {
"query": "latest AI research papers 2023",
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
} Returns: Array of search results (with optional scraped content). |
| firecrawl_extract | Extract structured information from web pages using LLM capabilities. Supports both cloud AI and self-hosted LLM extraction. Best for: Extracting specific structured data like prices, names, details. Not recommended for: When you need the full content of a page (use scrape); when you're not looking for specific structured data. Arguments:
{
"name": "firecrawl_extract",
"arguments": {
"urls": ["https://example.com/page1", "https://example.com/page2"],
"prompt": "Extract product information including name, price, and description",
"systemPrompt": "You are a helpful assistant that extracts product information",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
},
"allowExternalLinks": false,
"enableWebSearch": false,
"includeSubdomains": false
}
} Returns: Extracted structured data as defined by your schema. |
| firecrawl_deep_research | Conduct deep web research on a query using intelligent crawling, search, and LLM analysis. Best for: Complex research questions requiring multiple sources, in-depth analysis. Not recommended for: Simple questions that can be answered with a single search; when you need very specific information from a known page (use scrape); when you need results quickly (deep research can take time). Arguments:
{
"name": "firecrawl_deep_research",
"arguments": {
"query": "What are the environmental impacts of electric vehicles compared to gasoline vehicles?",
"maxDepth": 3,
"timeLimit": 120,
"maxUrls": 50
}
} Returns: Final analysis generated by an LLM based on research. (data.finalAnalysis); may also include structured activities and sources used in the research process. |
| firecrawl_generate_llmstxt | Generate a standardized llms.txt (and optionally llms-full.txt) file for a given domain. This file defines how large language models should interact with the site. Best for: Creating machine-readable permission guidelines for AI models. Not recommended for: General content extraction or research. Arguments:
{
"name": "firecrawl_generate_llmstxt",
"arguments": {
"url": "https://example.com",
"maxUrls": 20,
"showFullText": true
}
} Returns: LLMs.txt file contents (and optionally llms-full.txt). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |