Skip to content
Install
mcp-registry/Firecrawl MCP Server
Firecrawl MCP Server logo

Firecrawl MCP Server

Author: firecrawl

Description: Official Model Context Protocol (MCP) server for Firecrawl, providing web scraping, crawling, URL discovery (map), web search, batch scraping, structured extraction, an autonomous research agent, and cloud browser sessions for interactive automation. Supports Firecrawl Cloud (via API key) and self-hosted Firecrawl (via custom API URL), with retries, rate limiting/backoff, credit monitoring, and optional SSE/HTTP streamable mode.

Stars: 5.8k

Forks: 643

License: MIT License

Category: Enterprise

Overview

Installation

## Installation / Run
### Run with npx
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
### Manual install (global)
npm install -g firecrawl-mcp
## Client configuration examples
### Cursor (requires Cursor 0.45.6+)
Reference: [https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers](https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers)
**Cursor v0.48.6** (Settings → Features → MCP Servers → “+ Add new global MCP server”):
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
**Cursor v0.45.6** (Settings → Features → MCP Servers → “+ Add New MCP Server”):
- Name: `firecrawl-mcp`
- Type: `command`
- Command:
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp
**Windows workaround (Cursor):**
cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"
API key location (as stated in README): [https://www.firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys)
### Windsurf
Add to `./codeium/windsurf/model_config.json`:
{ "mcpServers": { "mcp-server-firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR_API_KEY" } } } }
### Streamable HTTP Local Mode
Run:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
Then use:
- URL: `http://localhost:3000/mcp`
### Install via Smithery (Legacy) for Claude Desktop
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
### VS Code
Manual configuration (User Settings JSON), add:
{ "mcp": { "inputs": [ { "type": "promptString", "id": "apiKey", "description": "Firecrawl API Key", "password": true } ], "servers": { "firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "${input:apiKey}" } } } } }
(Optionally place equivalent config into `.vscode/mcp.json` in the workspace, per README.)
## Development (from README)
npm install npm run build npm test

FAQs

How does Firecrawl MCP Server's structured data extraction (firecrawl_extract) work compared to manually parsing scraped HTML?

Firecrawl's structured extraction uses LLM-guided parsing to map scraped content directly into defined schemas, eliminating regex patterns and DOM selectors. Instead of writing custom HTML parsers that break when markup changes, you specify the target structure and the LLM interprets rendered content, handling layout variations and nested data without manual XPath or CSS selector maintenance.

What are the credit costs and rate limits for Firecrawl MCP Server's free tier, and how do batch scraping jobs count against them?

The content directs readers to check Firecrawl's pricing page for current credit limits and tier details, without specifying exact free tier allowances or per-operation credit costs. Rate limits and credit consumption per batch job vary by plan tier and job configuration. Consult Firecrawl's official pricing documentation for current free tier credits, per-tool credit costs, and batch job accounting rules.

What are the main differences between MCP servers and traditional API gateways?

MCP servers use JSON-RPC over stdio or SSE for agent-driven tool discovery and invocation, optimized for LLM token efficiency and dynamic capability exposure. Traditional API gateways route REST or gRPC with load balancing, static routing configs, and mature HTTP security policies for general microservice traffic, prioritizing low-latency proxying over AI-native protocol support.

Can Multi-MCP handle different transport modes like STDIO and SSE?

Multi-MCP natively supports both STDIO and SSE simultaneously through its modular architecture. The MCP host can spawn multiple STDIO servers as local subprocesses while maintaining SSE connections to remote endpoints in the same session, using dynamic transport discovery during handshake. Windows environments use named pipes instead of standard Unix STDIO implementation.

How does the Model Context Protocol ensure data security and privacy?

MCP secures connections through OAuth authentication and TLS encryption between clients and servers, with permissions policies controlling data access. Security depends on implementers enforcing least-privilege controls, input validation against prompt injection, continuous monitoring of tool calls, and treating AI agents as unique non-human identities requiring ongoing authorization rather than protocol-native protections.

What are the differences between using Python and JavaScript for building an MCP server?

Both languages use Anthropic's official SDK with similar tool registration patterns. JavaScript typically offers simpler npm packaging and native async handling, while Python provides stronger data science library integration and familiar syntax for ML workflows. Choice depends on existing stack, deployment environment, and whether you need Node.js ecosystem tools or Python's scientific computing libraries for server logic.

License: MIT License
Updated 3/12/2026