Skip to content

MCP Server

New Feature

Connect Firecrawl to Claude, Cursor, VS Code, Windsurf, n8n, and other AI tools via MCP (Model Context Protocol).

Overview

Firecrawl provides an open-source MCP server that exposes all 12 Firecrawl tools to any MCP-compatible client. Available as a hosted remote server or local npx package.

Installation Options

Remote Hosted (Simplest)

No local install needed — connect directly to Firecrawl's hosted MCP endpoint:

https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp

Local via npx

bash
# Run directly
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

# Install globally
npm install -g firecrawl-mcp

# HTTP Streamable mode (for n8n, etc.)
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
# Endpoint: http://localhost:3000/v2/mcp

Platform Setup

Claude Code

bash
claude mcp add firecrawl -e FIRECRAWL_API_KEY=fc-YOUR-API-KEY -- npx -y firecrawl-mcp

Claude Desktop

json
{
  "mcpServers": {
    "firecrawl": {
      "url": "https://mcp.firecrawl.dev/v2/mcp",
      "headers": { "Authorization": "Bearer fc-YOUR-API-KEY" }
    }
  }
}

Cursor (v0.48.6+)

Add to .cursor/mcp.json:

json
{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": { "FIRECRAWL_API_KEY": "fc-YOUR-API-KEY" }
    }
  }
}

VS Code

Add to User Settings JSON:

json
{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": { "FIRECRAWL_API_KEY": "fc-YOUR-API-KEY" }
    }
  }
}

Windsurf

Add to ./codeium/windsurf/model_config.json:

json
{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": { "FIRECRAWL_API_KEY": "fc-YOUR-API-KEY" }
    }
  }
}

n8n (HTTP Streamable)

  1. Start the MCP server in HTTP mode:
    bash
    env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
  2. In n8n, use the MCP Client Tool node
  3. Set the endpoint to http://localhost:3000/v2/mcp

Available MCP Tools (12 Total)

ToolDescription
firecrawl_scrapeSingle URL scraping
firecrawl_mapURL discovery for a domain
firecrawl_searchWeb search with optional scraping
firecrawl_crawlAsync site crawl
firecrawl_check_crawl_statusPoll crawl job status
firecrawl_extractStructured extraction (legacy)
firecrawl_agentAutonomous research agent
firecrawl_agent_statusPoll agent job status
firecrawl_browser_createLaunch browser session
firecrawl_browser_executeRun code in browser session
firecrawl_browser_deleteClose browser session
firecrawl_browser_listList active/destroyed sessions

Environment Variables

Required

VariableDescription
FIRECRAWL_API_KEYYour Firecrawl API key

Optional

VariableDefaultDescription
FIRECRAWL_API_URLhttps://api.firecrawl.devCustom API URL (self-hosted)
HTTP_STREAMABLE_SERVERfalseEnable HTTP Streamable mode

Retry Configuration

VariableDefaultDescription
FIRECRAWL_RETRY_MAX_ATTEMPTS3Max retry attempts
FIRECRAWL_RETRY_INITIAL_DELAY1000msInitial retry delay
FIRECRAWL_RETRY_MAX_DELAY10000msMaximum retry delay
FIRECRAWL_RETRY_BACKOFF_FACTOR2Exponential backoff factor

Credit Monitoring

VariableDefaultDescription
FIRECRAWL_CREDIT_WARNING_THRESHOLD1000Warning when credits below this
FIRECRAWL_CREDIT_CRITICAL_THRESHOLD100Critical alert threshold

Self-Hosted Firecrawl

Point the MCP server at your own Firecrawl instance:

bash
env FIRECRAWL_API_KEY=fc-YOUR_KEY FIRECRAWL_API_URL=https://your-firecrawl.example.com npx -y firecrawl-mcp

Or use the FIRECRAWL_API_URL env var in any platform config above.

Verification

After setup, test that the MCP server is working:

python
# In Claude Code, just ask:
# "Use firecrawl to scrape https://example.com"

# Or test directly:
import subprocess
result = subprocess.run(
    ["npx", "-y", "firecrawl-mcp", "--version"],
    capture_output=True, text=True
)
print(result.stdout)

← Back to Features