Firecrawl MCP Server enables efficient web scraping, site crawling, data extraction, and site mapping with customizable features
A Model Context Protocol (MCP) server for web scraping, content searching, site crawling, and data extraction using the Firecrawl API.
Web Scraping: Extract content from any webpage with customizable options
Content Search: Intelligent search capabilities
Site Crawling: Advanced web crawling functionality
Site Mapping: Generate site structure maps
Data Extraction: Extract structured data from multiple URLs
# Global installation
npm install -g @modelcontextprotocol/mcp-server-firecrawl
# Local project installation
npm install @modelcontextprotocol/mcp-server-firecrawl
Get your Firecrawl API key from the developer portal
Set your API key:
Unix/Linux/macOS (bash/zsh):
export FIRECRAWL_API_KEY=your-api-key
Windows (Command Prompt):
set FIRECRAWL_API_KEY=your-api-key
Windows (PowerShell):
$env:FIRECRAWL_API_KEY = "your-api-key"
Alternative: Using .env file (recommended for development):
# Install dotenv
npm install dotenv
# Create .env file
echo "FIRECRAWL_API_KEY=your-api-key" > .env
Then in your code:
import dotenv from 'dotenv';
dotenv.config();
Run the server:
mcp-server-firecrawl
Add to your MCP settings:
{
"firecrawl": {
"command": "mcp-server-firecrawl",
"env": {
"FIRECRAWL_API_KEY": "your-api-key"
}
}
}
Add to your MCP configuration:
{
"mcpServers": {
"firecrawl": {
"command": "mcp-server-firecrawl",
"env": {
"FIRECRAWL_API_KEY": "your-api-key"
}
}
}
}
// Basic scraping
{
name: "scrape_url",
arguments: {
url: "https://example.com",
formats: ["markdown"],
onlyMainContent: true
}
}
// Advanced extraction
{
name: "scrape_url",
arguments: {
url: "https://example.com/blog",
jsonOptions: {
prompt: "Extract article content",
schema: {
title: "string",
content: "string"
}
},
mobile: true,
blockAds: true
}
}
// Basic crawling
{
name: "crawl",
arguments: {
url: "https://example.com",
maxDepth: 2,
limit: 100
}
}
// Advanced crawling
{
name: "crawl",
arguments: {
url: "https://example.com",
maxDepth: 3,
includePaths: ["/blog", "/products"],
excludePaths: ["/admin"],
ignoreQueryParameters: true
}
}
// Generate site map
{
name: "map",
arguments: {
url: "https://example.com",
includeSubdomains: true,
limit: 1000
}
}
// Extract structured data
{
name: "extract",
arguments: {
urls: ["https://example.com/product1", "https://example.com/product2"],
prompt: "Extract product details",
schema: {
name: "string",
price: "number",
description: "string"
}
}
}
See configuration guide for detailed setup options.
See API documentation for detailed endpoint specifications.
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Start in development mode
npm run dev
Check the examples directory for more usage examples:
The server implements robust error handling:
See CONTRIBUTING.md for contribution guidelines.
MIT License - see LICENSE for details.
Discover seamless cross-platform e-commerce link conversion and product promotion with Taobao MCP Service supporting Taobao JD and Pinduoduo integrations
Configure and run ORAS MCP Server easily with Docker and VS Code integration
APIs for extreme p-value calculations in R via Python using FastMCP and pyper integration
Integrate and manage Cloudera Machine Learning with Python APIs for jobs, models, experiments, and project management
Discover MCP agent strategies supporting Function Calling and ReAct via HTTP SSE streamable protocols
Real-time and historical cryptocurrency market data via MCP server supporting major exchanges and comprehensive analysis