This guide explains how to configure and customize the Firecrawl MCP server for different environments and use cases.
-
FIRECRAWL_API_KEY
: Your Firecrawl API key (required)export FIRECRAWL_API_KEY=your-api-key-here
-
FIRECRAWL_API_BASE_URL
: Override the default API endpointexport FIRECRAWL_API_BASE_URL=https://custom-api.firecrawl.dev/v1
-
FIRECRAWL_TIMEOUT
: Request timeout in millisecondsexport FIRECRAWL_TIMEOUT=30000 # 30 seconds
-
FIRECRAWL_MAX_RETRIES
: Maximum retry attempts for failed requestsexport FIRECRAWL_MAX_RETRIES=3
-
FIRECRAWL_RETRY_DELAY
: Initial delay between retries (milliseconds)export FIRECRAWL_RETRY_DELAY=1000 # 1 second
-
FIRECRAWL_BACKOFF_MULTIPLIER
: Multiplier for exponential backoffexport FIRECRAWL_BACKOFF_MULTIPLIER=2
-
FIRECRAWL_MAX_BACKOFF
: Maximum delay between retries (milliseconds)export FIRECRAWL_BACKOFF_MULTIPLIER=8000 # 8 seconds
-
DEBUG
: Enable debug loggingexport DEBUG=true
-
FIRECRAWL_VALIDATE_REQUESTS
: Enable request validationexport FIRECRAWL_VALIDATE_REQUESTS=true
-
FIRECRAWL_ALLOWED_DOMAINS
: List of allowed domains (JSON array)export FIRECRAWL_ALLOWED_DOMAINS='["example.com","api.example.com"]'
Install the server globally to run it from anywhere:
npm install -g @modelcontextprotocol/mcp-server-firecrawl
Then run:
mcp-server-firecrawl
Install as a project dependency:
npm install @modelcontextprotocol/mcp-server-firecrawl
Add to your package.json scripts:
{
"scripts": {
"start-mcp": "mcp-server-firecrawl"
}
}
-
Open Claude desktop app settings
-
Navigate to MCP Server settings
-
Add new server configuration:
{ "firecrawl": { "command": "mcp-server-firecrawl", "env": { "FIRECRAWL_API_KEY": "your-api-key", "DEBUG": "true" } } }
-
Open VSCode settings
-
Search for "Claude MCP Settings"
-
Add server configuration:
{ "mcpServers": { "firecrawl": { "command": "mcp-server-firecrawl", "env": { "FIRECRAWL_API_KEY": "your-api-key", "DEBUG": "true" } } } }
Add custom headers to API requests:
export FIRECRAWL_CUSTOM_HEADERS='{"X-Custom-Header": "value"}'
The server implements intelligent rate limiting with exponential backoff. Configure behavior with:
export FIRECRAWL_MAX_RETRIES=3
export FIRECRAWL_RETRY_DELAY=1000 # milliseconds
export FIRECRAWL_BACKOFF_MULTIPLIER=2
export FIRECRAWL_MAX_BACKOFF=8000 # milliseconds
Configure proxy settings using standard Node.js environment variables:
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
Customize logging behavior:
# Log levels: error, warn, info, debug
export FIRECRAWL_LOG_LEVEL=debug
# Log to file
export FIRECRAWL_LOG_FILE=/path/to/firecrawl.log
When developing or testing, you can use the sandbox environment:
export FIRECRAWL_SANDBOX=true
export FIRECRAWL_API_KEY=test-key
-
API Key Security:
- Store in environment variables or secure secrets management
- Never commit to version control
- Rotate keys periodically
-
Request Validation:
export FIRECRAWL_VALIDATE_REQUESTS=true export FIRECRAWL_ALLOWED_DOMAINS='["trusted-domain.com"]'
-
Rate Limiting:
- Configure appropriate retry limits
- Use exponential backoff
- Monitor usage patterns
Enable comprehensive logging and monitoring:
# Debug logging
export DEBUG=true
# Detailed error logging
export FIRECRAWL_LOG_LEVEL=debug
# Error tracking
export FIRECRAWL_ERROR_TRACKING=true
Optimize performance for your use case:
# Increase timeouts for large operations
export FIRECRAWL_TIMEOUT=60000
# Adjust concurrent request limits
export FIRECRAWL_MAX_CONCURRENT=5
# Configure batch processing
export FIRECRAWL_BATCH_SIZE=10
export FIRECRAWL_BATCH_DELAY=1000
When running in Docker, configure environment variables in your docker-compose.yml:
version: '3'
services:
firecrawl-mcp:
image: mcp-server-firecrawl
environment:
- FIRECRAWL_API_KEY=your-api-key
- DEBUG=true
- FIRECRAWL_TIMEOUT=30000
volumes:
- ./logs:/app/logs
Or use a .env file:
FIRECRAWL_API_KEY=your-api-key
DEBUG=true
FIRECRAWL_TIMEOUT=30000