home / mcp / firecrawl mcp server
Provides web scraping, discovery, and data extraction via MCP tools for cloud or self-hosted use.
Configuration
View docs{
"mcpServers": {
"jayceetran1995-firecrawl-mcp-server": {
"command": "npx",
"args": [
"-y",
"firecrawl-mcp"
],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}You can run Firecrawl as an MCP server to unlock automated web scraping, discovery, and data extraction capabilities. It integrates with your MCP client so you can issue powerfully configured scraping tasks, manage retries and rate limits, and monitor credit usage across cloud or self-hosted deployments.
Use a compatible MCP client to connect to the Firecrawl MCP server. You will run the MCP server as a local process or via an HTTP-enabled endpoint depending on your setup, then select the Firecrawl tools to perform targeted scraping tasks. Start by configuring your client to point at the Firecrawl MCP instance, supply your API key if you are using the cloud API, and choose the appropriate tool for your task (scrape for a single page, batch_scrape for multiple known URLs, map to discover URLs, search for web results, crawl for breadth, or extract for structured data). You can rely on built-in retry and rate-limiting features to handle transient errors and API limits, and you can monitor credit usage if you are operating with the cloud API.
Prerequisites: Node.js and npm or npx must be available on your system. You will run an MCP server process that exposes a local interface for your MCP client to connect to.
# Install the MCP server globally (example installation method)
npm install -g firecrawl-mcp
# Run the MCP server with your API key if using the cloud API
FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp
# Alternative: run via a local Windsurf/Cursor setup (example JSON-based config is shown in the setup steps below)
# Note: Use the following commands exactly as shown when you configure your MCP client.Configure your MCP client to start the server process with the correct command and environment. You will typically provide the Firecrawl API key in the environment variable FIRECRAWL_API_KEY. If you operate a self-hosted instance, you can point your client to FIRECRAWL_API_URL instead of using the cloud API.
# Minimal stdio-based configuration for an MCP client (example)
{
"name": "firecrawl_mcp",
"type": "stdio",
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}- For a single page: use the scrape tool to retrieve content from a known URL. - For many known URLs: use batch_scrape to process multiple pages efficiently. - To discover URLs on a site before deciding what to scrape: use map. - To find information across the web: use search. - To extract structured data from pages: use extract with a defined schema. - For comprehensive site-wide content: use crawl, but limit depth and pages to avoid large responses.
Keep your API key secure. Do not share the FIRECRAWL_API_KEY in public code or logs. If you are using a self-hosted instance, ensure the API URL is restricted to trusted networks and consider enabling access controls on your MCP client.
If you encounter rate limits, the server will automatically retry with exponential backoff. If a transient error persists, check your API key validity, network access, and that the MCP client is correctly pointing at the Firecrawl MCP endpoint. Monitor log messages for rate limit warnings or connection errors.
The Firecrawl MCP server supports cloud-based API usage and self-hosted deployments. It includes retry logic and credit usage monitoring to help you manage usage and prevent unexpected interruptions.
Extract content from a single known URL with options for formats, main content filtering, and parallel processing.
Fetch content from multiple known URLs efficiently with built-in rate limiting and batch processing.
Discover and list all URLs indexed on a target site to plan scraping efforts.
Start a multi-page crawl to extract content across a site with depth and limit controls.
Query the web to find relevant results and optionally scrape content from those results.
LLM-driven extraction of structured data from pages according to a defined schema.